[*] Binary protection state of libmount.so.1.1.0

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


[*] Function fprintf tear down of libmount.so.1.1.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/lib/libmount.so.1.1.0 @ 0x9634 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00009634 ()                                      | void fcn_00009634 (int32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00009634 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x00009638 ldr sb, [pc, 0x16c]                               |     sb = *(0x000097ac);
    0x0000963c subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00009640 add sb, pc, sb                                    |     sb = pc + sb;
                                                                 |     if (r4 != r0) {
    0x00009644 bne 0x9668                                        |         goto label_1;
                                                                 |     }
    0x00009648 ldr r3, [pc, 0x160]                               |     r3 = *(0x97ac);
    0x0000964c ldr r1, [pc, 0x160]                               |     r1 = *(0x97b0);
    0x00009650 ldr r0, [pc, 0x160]                               |     r0 = *(0x97b4);
    0x00009654 add r3, pc, r3                                    |     r3 = pc + r3;
    0x00009658 mov r2, 0xb4                                      |     r2 = 0xb4;
    0x0000965c add r1, pc, r1                                    |     r1 = pc + r1;
    0x00009660 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
                                                                 | label_0:
    0x00009664 bl 0x908c                                         |         assert ();
                                                                 | label_1:
    0x00009668 cmp r2, 0                                         |         
    0x0000966c mov r6, r2                                        |         r6 = r2;
                                                                 |         if (r2 != 0) {
    0x00009670 bne 0x9694                                        |             goto label_2;
                                                                 |         }
    0x00009674 ldr r3, [pc, 0x140]                               |         r3 = *(0x97b8);
    0x00009678 ldr r1, [pc, 0x140]                               |         r1 = *(0x97bc);
    0x0000967c ldr r0, [pc, 0x140]                               |         r0 = *(0x97c0);
    0x00009680 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00009684 mov r2, 0xb5                                      |         r2 = 0xb5;
    0x00009688 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000968c add r0, pc, r0                                    |         r0 = pc + r0;
    0x00009690 b 0x9664                                          |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x00009694 cmp r1, 0                                         |     
    0x00009698 mov r7, r1                                        |     r7 = r1;
                                                                 |     if (r1 == 0) {
    0x0000969c bne 0x96c0                                        |         
    0x000096a0 ldr r3, [pc, 0x120]                               |         r3 = *(0x97c4);
    0x000096a4 ldr r1, [pc, 0x120]                               |         r1 = *(0x97c8);
    0x000096a8 ldr r0, [pc, 0x120]                               |         r0 = *(0x97cc);
    0x000096ac add r3, pc, r3                                    |         r3 = pc + r3;
    0x000096b0 mov r2, 0xb6                                      |         r2 = 0xb6;
    0x000096b4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x000096b8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x000096bc b 0x9664                                          |         goto label_0;
                                                                 |     }
    0x000096c0 mov r8, r3                                        |     r8 = r3;
    0x000096c4 ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x000096c8 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x000096cc cmp r5, r3                                        |     
                                                                 |     if (r5 == r3) {
    0x000096d0 bne 0x96fc                                        |         
    0x000096d4 mov r3, 0xc                                       |         r3 = 0xc;
    0x000096d8 add r5, r5, 0x80                                  |         r5 += 0x80;
    0x000096dc mul r1, r5, r3                                    |         r1 = r5 * r3;
    0x000096e0 ldr r0, [r4]                                      |         r0 = *(r4);
    0x000096e4 bl 0x89cc                                         |         r0 = realloc (r0, r1);
    0x000096e8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000096ec mvneq r0, 0xb                                     |             r0 = ~0xb;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x000096f0 beq 0x9798                                        |             goto label_3;
                                                                 |         }
    0x000096f4 str r0, [r4]                                      |         *(r4) = r0;
    0x000096f8 str r5, [r4, 8]                                   |         *((r4 + 8)) = r5;
                                                                 |     }
    0x000096fc ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00009700 mov r2, 0xc                                       |     r2 = 0xc;
    0x00009704 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00009708 mul ip, r3, r2                                    |     
    0x0000970c add r3, r3, 1                                     |     r3++;
    0x00009710 add r1, r0, ip                                    |     r1 = r0 + ip;
    0x00009714 str r7, [r0, ip]                                  |     *((r0 + ip)) = r7;
    0x00009718 stmib r1, {r6, r8}                                |     __asm ("stmib r1, {r6, r8}");
    0x0000971c str r3, [r4, 4]                                   |     *((r4 + 4)) = r3;
    0x00009720 ldr r3, [pc, 0xac]                                |     r3 = *(0x97d0);
    0x00009724 ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x00009728 ldr r0, [r3]                                      |     r0 = *(0x97d0);
    0x0000972c ands r0, r0, 4                                    |     r0 &= 4;
                                                                 |     if (r0 == r0) {
    0x00009730 beq 0x9798                                        |         goto label_3;
                                                                 |     }
    0x00009734 ldr r3, [pc, 0x9c]                                |     r3 = *(0x97d4);
    0x00009738 ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x0000973c ldr r5, [r3]                                      |     r5 = *(0x97d4);
    0x00009740 bl 0x8204                                         |     getpid ();
    0x00009744 ldr r3, [pc, 0x90]                                |     r3 = *(0x97d8);
    0x00009748 ldr r1, [pc, 0x90]                                |     r1 = *(0x97dc);
    0x0000974c add r3, pc, r3                                    |     r3 = pc + r3;
    0x00009750 str r3, [sp]                                      |     *(sp) = r3;
    0x00009754 ldr r3, [pc, 0x88]                                |     r3 = *(0x97e0);
    0x00009758 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000975c add r3, pc, r3                                    |     r3 = pc + r3;
    0x00009760 mov r2, r0                                        |     r2 = r0;
    0x00009764 mov r0, r5                                        |     r0 = r5;
    0x00009768 bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x0000976c tst r8, 4                                         |     
    0x00009770 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
                                                                 |     if ((r8 & 4) == 0) {
    0x00009774 beq 0x97a0                                        |         goto label_4;
                                                                 |     }
    0x00009778 ldr r3, [pc, 0x68]                                |     r3 = *(0x97e4);
    0x0000977c add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x00009780 ldr r1, [pc, 0x64]                                |         r1 = *(0x97e8);
    0x00009784 mov r0, r4                                        |         r0 = r4;
    0x00009788 stm sp, {r6, r7}                                  |         *(sp) = r6;
                                                                 |         *((sp + 4)) = r7;
    0x0000978c add r1, pc, r1                                    |         r1 = pc + r1;
    0x00009790 bl 0x94bc                                         |         fcn_000094bc (r0);
    0x00009794 mov r0, 0                                         |         r0 = 0;
                                                                 | label_3:
    0x00009798 add sp, sp, 0xc                                   |         
    0x0000979c pop {r4, r5, r6, r7, r8, sb, pc}                  |         
                                                                 | label_4:
    0x000097a0 ldr r3, [pc, 0x48]                                |         r3 = *(0x97ec);
    0x000097a4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000097a8 b 0x9780                                          |         
                                                                 |     } 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/lib/libmount.so.1.1.0 @ 0x9964 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00009964 ()                      | void fcn_00009964 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00009964 ldr r3, [pc, 0xf0]                |     r3 = *(0x9a58);
    0x00009968 ldr r2, [pc, 0xf0]                |     r2 = *(0x9a5c);
    0x0000996c add r3, pc, r3                    |     r3 = pc + r3;
    0x00009970 push {r0, r1, r4, r5, r6, lr}     |     
    0x00009974 ldr r2, [r3, r2]                  |     
    0x00009978 mov r5, r0                        |     r5 = r0;
    0x0000997c ldr r2, [r2]                      |     r2 = *(0x9a58);
    0x00009980 mov r6, r1                        |     r6 = r1;
    0x00009984 tst r2, 4                         |     
                                                 |     if ((r2 & 4) != 0) {
    0x00009988 beq 0x99d8                        |         
    0x0000998c ldr r2, [pc, 0xd0]                |         r2 = *(0x9a60);
    0x00009990 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x00009994 ldr r4, [r3]                      |         r4 = *(r3);
    0x00009998 bl 0x8204                         |         getpid ();
    0x0000999c ldr r3, [pc, 0xc4]                |         r3 = *(0x9a64);
    0x000099a0 ldr r1, [pc, 0xc4]                |         r1 = *(0x9a68);
    0x000099a4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000099a8 str r3, [sp]                      |         *(sp) = r3;
    0x000099ac ldr r3, [pc, 0xbc]                |         r3 = *(0x9a6c);
    0x000099b0 add r1, pc, r1                    |         r1 = pc + r1;
    0x000099b4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000099b8 mov r2, r0                        |         r2 = r0;
    0x000099bc mov r0, r4                        |         r0 = r4;
    0x000099c0 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x000099c4 ldr r1, [pc, 0xa8]                |         r1 = *(0x9a70);
    0x000099c8 mov r2, r5                        |         r2 = r5;
    0x000099cc add r1, pc, r1                    |         r1 = pc + r1;
    0x000099d0 mov r0, r6                        |         r0 = r6;
    0x000099d4 bl 0x94bc                         |         fcn_000094bc (r0);
                                                 |     }
    0x000099d8 mov r0, r5                        |     r0 = r5;
    0x000099dc bl 0x29984                        |     r0 = fcn_00029984 (r0);
    0x000099e0 cmp r0, 0                         |     
    0x000099e4 cmpne r6, 0                       |     __asm ("cmpne r6, 0");
    0x000099e8 mov r4, r0                        |     r4 = r0;
                                                 |     if (r0 != 0) {
    0x000099ec beq 0x9a50                        |         
    0x000099f0 mov r1, r0                        |         r1 = r0;
    0x000099f4 mov r0, r5                        |         r0 = r5;
    0x000099f8 bl 0x8cb4                         |         r0 = strcmp (r0, r1);
    0x000099fc cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00009a00 moveq r5, r4                      |             r5 = r4;
                                                 |         }
                                                 |         if (r0 != 0) {
    0x00009a04 beq 0x9a18                        |             
    0x00009a08 mov r0, r5                        |             r0 = r5;
    0x00009a0c bl 0x8ae0                         |             r0 = strdup (r0);
    0x00009a10 subs r5, r0, 0                    |             r5 = r0 - 0;
                                                 |             if (r5 == r0) {
    0x00009a14 beq 0x9a3c                        |                 goto label_0;
                                                 |             }
                                                 |         }
    0x00009a18 mov r3, 4                         |         r3 = 4;
    0x00009a1c mov r2, r4                        |         r2 = r4;
    0x00009a20 mov r1, r5                        |         r1 = r5;
    0x00009a24 mov r0, r6                        |         r0 = r6;
    0x00009a28 bl 0x9634                         |         r0 = fcn_00009634 (r0, r1);
    0x00009a2c cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00009a30 beq 0x9a50                        |             goto label_1;
                                                 |         }
    0x00009a34 cmp r4, r5                        |         
                                                 |         if (r4 != r5) {
    0x00009a38 beq 0x9a44                        |             
                                                 | label_0:
    0x00009a3c mov r0, r4                        |             r0 = r4;
    0x00009a40 bl 0x91c4                         |             free (r0);
                                                 |         }
    0x00009a44 mov r0, r5                        |         r0 = r5;
    0x00009a48 bl 0x91c4                         |         free (r0);
    0x00009a4c mov r4, 0                         |         r4 = 0;
                                                 |     }
                                                 | label_1:
    0x00009a50 mov r0, r4                        |     r0 = r4;
    0x00009a54 add sp, sp, 8                     |     
    0x00009a58 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/lib/libmount.so.1.1.0 @ 0xa8f0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000a8f0 ()                      | void fcn_0000a8f0 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0000a8f0 push {r1, r2, r3}                 |     
    0x0000a8f4 ldr r3, [pc, 0xa8]                |     r3 = *(0xa9a0);
    0x0000a8f8 push {r0, r1, r2, r4, lr}         |     
    0x0000a8fc ldr r1, [pc, 0xa4]                |     r1 = *(0xa9a4);
    0x0000a900 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000a904 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0000a908 ldr r4, [r3, r1]                  |     r4 = *(0xa9a0);
                                                 |     if (r2 != r0) {
    0x0000a90c beq 0xa934                        |         
    0x0000a910 ldr r1, [pc, 0x94]                |         r1 = *(0xa9a8);
    0x0000a914 ldr r3, [r3, r1]                  |         r3 = *((r3 + r1));
    0x0000a918 ldr r3, [r3]                      |         r3 = *(r3);
    0x0000a91c tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0000a920 bne 0xa934                        |             goto label_1;
                                                 |         }
    0x0000a924 ldr r1, [pc, 0x84]                |         r1 = *(0xa9ac);
    0x0000a928 ldr r0, [r4]                      |         r0 = *(r4);
    0x0000a92c add r1, pc, r1                    |         r1 = pc + r1;
    0x0000a930 bl 0x8798                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0000a934 ldr r1, [pc, 0x78]                |     r1 = *(0xa9b0);
    0x0000a938 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0000a93c add r1, pc, r1                    |     r1 = pc + r1;
    0x0000a940 ldr r0, [r4]                      |     r0 = *(r4);
    0x0000a944 str r2, [sp, 4]                   |     var_4h = r2;
    0x0000a948 bl 0x91a0                         |     vfprintf (r0, r1, r2)
    0x0000a94c ldr r1, [r4]                      |     r1 = *(r4);
    0x0000a950 ldr r3, [r1, 0x34]                |     r3 = *(0xa9e4);
    0x0000a954 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0000a958 beq 0xa998                        |         goto label_2;
                                                 |     }
    0x0000a95c ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0000a960 ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0000a964 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0000a968 bhs 0xa98c                        |         goto label_3;
                                                 |     }
    0x0000a96c add r2, r3, 1                     |     r2 = r3 + 1;
    0x0000a970 str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0000a974 mov r2, 0xa                       |     r2 = 0xa;
    0x0000a978 strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0000a97c add sp, sp, 0xc                   |         
    0x0000a980 pop {r4, lr}                      |         
    0x0000a984 add sp, sp, 0xc                   |         
    0x0000a988 bx lr                             |         return;
                                                 | label_3:
    0x0000a98c mov r0, 0xa                       |         r0 = 0xa;
    0x0000a990 bl 0x91dc                         |         fputc_unlocked ();
    0x0000a994 b 0xa97c                          |         
                                                 |     } while (1);
                                                 | label_2:
    0x0000a998 mov r0, 0xa                       |     r0 = 0xa;
    0x0000a99c bl 0x8ea0                         |     fputc (r0, r1);
    0x0000a9a0 b 0xa97c                          |     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/lib/libmount.so.1.1.0 @ 0xc708 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000c708 ()                      | void fcn_0000c708 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0000c708 push {r1, r2, r3}                 |     
    0x0000c70c ldr r3, [pc, 0xa4]                |     r3 = *(0xc7b4);
    0x0000c710 push {r0, r1, r2, r4, lr}         |     
    0x0000c714 ldr r1, [pc, 0xa0]                |     r1 = *(0xc7b8);
    0x0000c718 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000c71c subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0000c720 ldr r4, [r3, r1]                  |     r4 = *(0xc7b4);
                                                 |     if (r2 != r0) {
    0x0000c724 beq 0xc74c                        |         
    0x0000c728 ldr r1, [pc, 0x90]                |         r1 = *(0xc7bc);
    0x0000c72c ldr r3, [r3, r1]                  |         r3 = *((r3 + r1));
    0x0000c730 ldr r3, [r3]                      |         r3 = *(r3);
    0x0000c734 tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0000c738 bne 0xc74c                        |             goto label_1;
                                                 |         }
    0x0000c73c ldr r1, [pc, 0x80]                |         r1 = *(0xc7c0);
    0x0000c740 ldr r0, [r4]                      |         r0 = *(r4);
    0x0000c744 add r1, pc, r1                    |         r1 = pc + r1;
    0x0000c748 bl 0x8798                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0000c74c add r2, sp, 0x18                  |     r2 += var_18h;
    0x0000c750 ldr r1, [sp, 0x14]                |     r1 = format;
    0x0000c754 ldr r0, [r4]                      |     r0 = *(r4);
    0x0000c758 str r2, [sp, 4]                   |     var_4h = r2;
    0x0000c75c bl 0x91a0                         |     vfprintf (r0, r1, r2)
    0x0000c760 ldr r1, [r4]                      |     r1 = *(r4);
    0x0000c764 ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0000c768 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0000c76c beq 0xc7ac                        |         goto label_2;
                                                 |     }
    0x0000c770 ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0000c774 ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0000c778 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0000c77c bhs 0xc7a0                        |         goto label_3;
                                                 |     }
    0x0000c780 add r2, r3, 1                     |     r2 = r3 + 1;
    0x0000c784 str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0000c788 mov r2, 0xa                       |     r2 = 0xa;
    0x0000c78c strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0000c790 add sp, sp, 0xc                   |         
    0x0000c794 pop {r4, lr}                      |         
    0x0000c798 add sp, sp, 0xc                   |         
    0x0000c79c bx lr                             |         return;
                                                 | label_3:
    0x0000c7a0 mov r0, 0xa                       |         r0 = 0xa;
    0x0000c7a4 bl 0x91dc                         |         fputc_unlocked ();
    0x0000c7a8 b 0xc790                          |         
                                                 |     } while (1);
                                                 | label_2:
    0x0000c7ac mov r0, 0xa                       |     r0 = 0xa;
    0x0000c7b0 bl 0x8ea0                         |     fputc (r0, r1);
    0x0000c7b4 b 0xc790                          |     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/lib/libmount.so.1.1.0 @ 0xcb3c */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.0000cb3c ()                                  | void fcn_0000cb3c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000cb3c push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0000cb40 ldr r6, [pc, 0x1d0]                           |     r6 = *(0xcd14);
    0x0000cb44 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0000cb48 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 == r0) {
    0x0000cb4c beq 0xcd10                                    |         goto label_3;
                                                             |     }
    0x0000cb50 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0000cb54 mov r5, r1                                    |     r5 = r1;
    0x0000cb58 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000cb5c bne 0xcb80                                    |         goto label_4;
                                                             |     }
    0x0000cb60 ldr r3, [pc, 0x1b4]                           |     r3 = *(0xcd18);
    0x0000cb64 ldr r1, [pc, 0x1b4]                           |     r1 = *(0xcd1c);
    0x0000cb68 ldr r0, [pc, 0x1b4]                           |     r0 = *(0xcd20);
    0x0000cb6c add r3, pc, r3                                |     r3 = pc + r3;
    0x0000cb70 mov r2, 0x8f                                  |     r2 = 0x8f;
    0x0000cb74 add r1, pc, r1                                |     r1 = pc + r1;
    0x0000cb78 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
    0x0000cb7c bl 0x908c                                     |         assert ();
                                                             | label_4:
    0x0000cb80 ldr r3, [pc, 0x1a0]                           |         r3 = *(0xcd24);
    0x0000cb84 ldr r8, [r6, r3]                              |         r8 = *((r6 + r3));
    0x0000cb88 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0000cb8c tst r3, 0x10                                  |         
                                                             |         if ((r3 & 0x10) != 0) {
    0x0000cb90 beq 0xcbec                                    |             
    0x0000cb94 ldr r3, [pc, 0x190]                           |             r3 = *(0xcd28);
    0x0000cb98 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0000cb9c ldr r7, [r3]                                  |             r7 = *(0xcd28);
    0x0000cba0 bl 0x8204                                     |             getpid ();
    0x0000cba4 ldr r3, [pc, 0x184]                           |             r3 = *(0xcd2c);
    0x0000cba8 ldr r1, [pc, 0x184]                           |             r1 = *(0xcd30);
    0x0000cbac add r3, pc, r3                                |             r3 = pc + r3;
    0x0000cbb0 str r3, [sp]                                  |             *(sp) = r3;
    0x0000cbb4 ldr r3, [pc, 0x17c]                           |             r3 = *(0xcd34);
    0x0000cbb8 add r1, pc, r1                                |             r1 = pc + r1;
    0x0000cbbc add r3, pc, r3                                |             r3 = pc + r3;
    0x0000cbc0 mov r2, r0                                    |             r2 = r0;
    0x0000cbc4 mov r0, r7                                    |             r0 = r7;
    0x0000cbc8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0000cbcc cmp r5, 0                                     |             
                                                             |             if (r5 != 0) {
    0x0000cbd0 bne 0xcc38                                    |                 goto label_5;
                                                             |             }
    0x0000cbd4 ldr r2, [pc, 0x160]                           |             r2 = *(0xcd38);
    0x0000cbd8 add r2, pc, r2                                |             r2 = pc + r2;
                                                             | label_0:
    0x0000cbdc ldr r1, [pc, 0x15c]                           |             r1 = *(0xcd3c);
    0x0000cbe0 mov r0, r4                                    |             r0 = r4;
    0x0000cbe4 add r1, pc, r1                                |             r1 = pc + r1;
    0x0000cbe8 bl 0xc708                                     |             fcn_0000c708 (r0);
                                                             |         }
    0x0000cbec ldrb r3, [r4, 0xc]                            |         r3 = *((r4 + 0xc));
    0x0000cbf0 adds r1, r5, 0                                |         r1 = r5 + 0;
    0x0000cbf4 ldr r7, [r4]                                  |         r7 = *(r4);
                                                             |         if (r1 == r5) {
    0x0000cbf8 movne r1, 1                                   |             r1 = 1;
                                                             |         }
    0x0000cbfc bic r5, r3, 4                                 |         r5 = BIT_MASK (r3, 4);
    0x0000cc00 orr r5, r5, r1, lsl 2                         |         r5 |= (r1 << 2);
    0x0000cc04 strb r5, [r4, 0xc]                            |         *((r4 + 0xc)) = r5;
    0x0000cc08 mov r0, r7                                    |         r0 = r7;
    0x0000cc0c bl 0x905c                                     |         r0 = strlen (r0);
    0x0000cc10 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 != r0) {
    0x0000cc14 bne 0xcc44                                    |             goto label_6;
                                                             |         }
    0x0000cc18 ldr r3, [pc, 0x124]                           |         r3 = *(0xcd40);
    0x0000cc1c ldr r1, [pc, 0x124]                           |         r1 = *(0xcd44);
    0x0000cc20 ldr r0, [pc, 0x124]                           |         r0 = *(0xcd48);
    0x0000cc24 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000cc28 mov r2, 0x95                                  |         r2 = 0x95;
    0x0000cc2c add r1, pc, r1                                |         r1 = pc + r1;
    0x0000cc30 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000cc34 b 0xcb7c                                      |         
                                                             |     } while (1);
                                                             | label_5:
    0x0000cc38 ldr r2, [pc, 0x110]                           |     r2 = *(0xcd4c);
    0x0000cc3c add r2, pc, r2                                |     r2 = pc + r2;
    0x0000cc40 b 0xcbdc                                      |     goto label_0;
                                                             | label_6:
    0x0000cc44 ldrb r3, [r4, 0xc]                            |     r3 = *((r4 + 0xc));
    0x0000cc48 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x0000cc4c beq 0xcce4                                    |         goto label_7;
                                                             |     }
    0x0000cc50 ldr r1, [pc, 0xfc]                            |     r1 = *(0xcd50);
    0x0000cc54 mov r0, r7                                    |     r0 = r7;
    0x0000cc58 add r1, pc, r1                                |     r1 = pc + r1;
    0x0000cc5c bl 0xc7c8                                     |     r0 = fcn_0000c7c8 (r0, r1);
    0x0000cc60 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000cc64 beq 0xcc80                                    |         goto label_8;
                                                             |     }
    0x0000cc68 ldr r1, [pc, 0xe8]                            |     r1 = *(0xcd54);
    0x0000cc6c sub r0, r5, 1                                 |     r0 = r5 - 1;
    0x0000cc70 mov r2, 6                                     |     r2 = 6;
    0x0000cc74 add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_1:
    0x0000cc78 add r0, r7, r0                                |     r0 = r7 + r0;
    0x0000cc7c bl 0x82a0                                     |     memcpy (r0, r1, r2);
                                                             |     do {
                                                             | label_8:
    0x0000cc80 ldr r0, [r8]                                  |         r0 = *(r8);
    0x0000cc84 ands r0, r0, 0x10                             |         r0 &= 0x10;
                                                             |         if (r0 != r0) {
    0x0000cc88 beq 0xccdc                                    |             
    0x0000cc8c ldr r3, [pc, 0x98]                            |             r3 = *(0xcd28);
    0x0000cc90 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0000cc94 ldr r5, [r3]                                  |             r5 = *(0xcd28);
    0x0000cc98 bl 0x8204                                     |             getpid ();
    0x0000cc9c ldr r3, [pc, 0xb8]                            |             r3 = *(0xcd58);
    0x0000cca0 ldr r1, [pc, 0xb8]                            |             r1 = *(0xcd5c);
    0x0000cca4 add r3, pc, r3                                |             r3 = pc + r3;
    0x0000cca8 str r3, [sp]                                  |             *(sp) = r3;
    0x0000ccac ldr r3, [pc, 0xb0]                            |             r3 = *(0xcd60);
    0x0000ccb0 add r1, pc, r1                                |             r1 = pc + r1;
    0x0000ccb4 add r3, pc, r3                                |             r3 = pc + r3;
    0x0000ccb8 mov r2, r0                                    |             r2 = r0;
    0x0000ccbc mov r0, r5                                    |             r0 = r5;
    0x0000ccc0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0000ccc4 ldr r1, [pc, 0x9c]                            |             r1 = *(0xcd64);
    0x0000ccc8 mov r0, r4                                    |             r0 = r4;
    0x0000cccc ldr r2, [r4]                                  |             r2 = *(r4);
    0x0000ccd0 add r1, pc, r1                                |             r1 = pc + r1;
    0x0000ccd4 bl 0xc708                                     |             fcn_0000c708 (r0);
    0x0000ccd8 mov r0, 0                                     |             r0 = 0;
                                                             |         }
                                                             | label_2:
    0x0000ccdc add sp, sp, 8                                 |         
    0x0000cce0 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_7:
    0x0000cce4 ldr r1, [pc, 0x80]                            |         r1 = *(0xcd68);
    0x0000cce8 mov r0, r7                                    |         r0 = r7;
    0x0000ccec add r1, pc, r1                                |         r1 = pc + r1;
    0x0000ccf0 bl 0xc7c8                                     |         r0 = fcn_0000c7c8 (r0, r1);
    0x0000ccf4 cmp r0, 0                                     |         
    0x0000ccf8 beq 0xcc80                                    |         
                                                             |     } while (r0 == 0);
    0x0000ccfc ldr r1, [pc, 0x6c]                            |     r1 = *(0xcd6c);
    0x0000cd00 sub r0, r5, 5                                 |     r0 = r5 - 5;
    0x0000cd04 mov r2, 2                                     |     r2 = 2;
    0x0000cd08 add r1, pc, r1                                |     r1 = pc + r1;
    0x0000cd0c b 0xcc78                                      |     goto label_1;
                                                             | label_3:
    0x0000cd10 mvn r0, 0x15                                  |     r0 = ~0x15;
    0x0000cd14 b 0xccdc                                      |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0xd9b8 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0000d9b8 ()                                                  | void fcn_0000d9b8 (int32_t arg_30h, int32_t arg1, uint32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0000d9b8 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000d9bc ldr sb, [pc, 0x1f8]                                           |     sb = *(0x0000dbbc);
    0x0000d9c0 subs fp, r0, 0                                                |     
    0x0000d9c4 add sb, pc, sb                                                |     sb = pc + sb;
    0x0000d9c8 ldr r7, [sp, 0x30]                                            |     r7 = *(arg_30h);
                                                                             |     if (fp != arg_30h) {
    0x0000d9cc bne 0xd9f0                                                    |         goto label_4;
                                                                             |     }
    0x0000d9d0 ldr r3, [pc, 0x1e8]                                           |     r3 = *(0xdbbc);
    0x0000d9d4 ldr r1, [pc, 0x1e8]                                           |     r1 = *(0xdbc0);
    0x0000d9d8 ldr r0, [pc, 0x1e8]                                           |     r0 = *(0xdbc4);
    0x0000d9dc add r3, pc, r3                                                |     r3 = pc + r3;
    0x0000d9e0 mov r2, 0x3c                                                  |     r2 = 0x3c;
    0x0000d9e4 add r1, pc, r1                                                |     r1 = pc + r1;
    0x0000d9e8 add r0, pc, r0                                                |     r0 = pc + r0;
                                                                             |     do {
    0x0000d9ec bl 0x908c                                                     |         assert ();
                                                                             | label_4:
    0x0000d9f0 ldr lr, [fp]                                                  |         
    0x0000d9f4 cmp lr, 0                                                     |         
                                                                             |         if (lr != 0) {
    0x0000d9f8 bne 0xda1c                                                    |             goto label_5;
                                                                             |         }
    0x0000d9fc ldr r3, [pc, 0x1c8]                                           |         r3 = *(0xdbc8);
    0x0000da00 ldr r1, [pc, 0x1c8]                                           |         r1 = *(0xdbcc);
    0x0000da04 ldr r0, [pc, 0x1c8]                                           |         r0 = *(0xdbd0);
    0x0000da08 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000da0c mov r2, 0x3d                                                  |         r2 = 0x3d;
    0x0000da10 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0000da14 add r0, pc, r0                                                |         r0 = pc + r0;
    0x0000da18 b 0xd9ec                                                      |         
                                                                             |     } while (1);
                                                                             | label_5:
    0x0000da1c cmp r1, 0                                                     |     
                                                                             |     if (r1 == 0) {
    0x0000da20 movne r0, 0                                                   |         r0 = 0;
                                                                             |     }
                                                                             |     if (r1 == 0) {
    0x0000da24 strne r0, [r1]                                                |         *(r1) = r0;
                                                                             |     }
    0x0000da28 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x0000da2c movne r0, 0                                                   |         r0 = 0;
                                                                             |     }
                                                                             |     if (r2 == 0) {
    0x0000da30 strne r0, [r2]                                                |         *(r2) = r0;
                                                                             |     }
    0x0000da34 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x0000da38 movne r0, 0                                                   |         r0 = 0;
                                                                             |     }
                                                                             |     if (r3 == 0) {
    0x0000da3c strne r0, [r3]                                                |         *(r3) = r0;
                                                                             |     }
    0x0000da40 cmp r7, 0                                                     |     
                                                                             |     if (r7 == 0) {
    0x0000da44 movne r0, 0                                                   |         r0 = 0;
                                                                             |     }
                                                                             |     if (r7 == 0) {
    0x0000da48 strne r0, [r7]                                                |         *(r7) = r0;
                                                                             |     }
                                                                             | label_0:
    0x0000da4c ldrsb ip, [lr]                                                |     ip = *(lr);
    0x0000da50 mov r6, lr                                                    |     r6 = lr;
    0x0000da54 cmp ip, 0x2c                                                  |     
    0x0000da58 add r0, lr, 1                                                 |     r0 = lr + 1;
                                                                             |     if (ip == 0x2c) {
    0x0000da5c beq 0xdb30                                                    |         goto label_6;
                                                                             |     }
    0x0000da60 mov r5, 0                                                     |     r5 = 0;
    0x0000da64 mov r4, r5                                                    |     r4 = r5;
    0x0000da68 mov r0, r5                                                    |     r0 = r5;
                                                                             |     do {
                                                                             | label_3:
    0x0000da6c subs ip, lr, 0                                                |         
                                                                             |         if (ip == lr) {
    0x0000da70 beq 0xdb38                                                    |             goto label_7;
                                                                             |         }
    0x0000da74 ldrsb r8, [lr], 1                                             |         r8 = *(lr);
                                                                             |         lr++;
    0x0000da78 cmp r8, 0                                                     |         
                                                                             |         if (r8 == 0) {
    0x0000da7c beq 0xdb38                                                    |             goto label_7;
                                                                             |         }
    0x0000da80 cmp r4, 0                                                     |         
                                                                             |         if (r4 != 0) {
    0x0000da84 moveq r4, ip                                                  |             r4 = ip;
                                                                             |         }
    0x0000da88 cmp r8, 0x22                                                  |         
                                                                             |         if (r8 != 0x22) {
    0x0000da8c eoreq r0, r0, 1                                               |             r0 ^= 1;
                                                                             |         }
    0x0000da90 cmp r0, 0                                                     |         
    0x0000da94 bne 0xda6c                                                    |         
                                                                             |     } while (r0 != 0);
    0x0000da98 cmp r4, ip                                                    |     
                                                                             |     if (r4 < ip) {
    0x0000da9c movhs sl, 0                                                   |         sl = 0;
                                                                             |     }
                                                                             |     if (r4 >= ip) {
    0x0000daa0 movlo sl, 1                                                   |         sl = 1;
                                                                             |     }
    0x0000daa4 cmp r5, 0                                                     |     
                                                                             |     if (r5 == 0) {
    0x0000daa8 movne sl, 0                                                   |         sl = 0;
                                                                             |     }
    0x0000daac cmp sl, 0                                                     |     
                                                                             |     if (sl != 0) {
    0x0000dab0 beq 0xdac0                                                    |         
    0x0000dab4 cmp r8, 0x3d                                                  |         
                                                                             |         if (r8 == 0x3d) {
    0x0000dab8 beq 0xdb40                                                    |             goto label_8;
                                                                             |         }
    0x0000dabc mov r5, r0                                                    |         r5 = r0;
                                                                             |     }
    0x0000dac0 cmp r8, 0x2c                                                  |     
                                                                             |     if (r8 != 0x2c) {
    0x0000dac4 bne 0xdb44                                                    |         goto label_9;
                                                                             |     }
                                                                             | label_2:
    0x0000dac8 cmp r4, ip                                                    |     
                                                                             |     if (r4 >= ip) {
    0x0000dacc bhs 0xdb58                                                    |         goto label_10;
                                                                             |     }
    0x0000dad0 cmp r1, 0                                                     |     
                                                                             |     if (r1 == 0) {
    0x0000dad4 strne r4, [r1]                                                |         *(r1) = r4;
                                                                             |     }
    0x0000dad8 cmp r2, 0                                                     |     
                                                                             |     if (r2 != 0) {
    0x0000dadc beq 0xdaf0                                                    |         
    0x0000dae0 cmp r5, 0                                                     |         
                                                                             |         if (r5 == 0) {
    0x0000dae4 subne r4, r5, r4                                              |             r4 = r5 - r4;
                                                                             |         }
                                                                             |         if (r5 != 0) {
    0x0000dae8 subeq r4, ip, r4                                              |             r4 = ip - r4;
                                                                             |         }
    0x0000daec str r4, [r2]                                                  |         *(r2) = r4;
                                                                             |     }
    0x0000daf0 ldrsb r2, [ip]                                                |     r2 = *(ip);
    0x0000daf4 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x0000daf8 addne r2, ip, 1                                               |         r2 = ip + 1;
                                                                             |     }
                                                                             |     if (r2 != 0) {
    0x0000dafc moveq r2, ip                                                  |         r2 = ip;
                                                                             |     }
    0x0000db00 cmp r5, 0                                                     |     
    0x0000db04 str r2, [fp]                                                  |     *(fp) = r2;
                                                                             |     if (r5 != 0) {
    0x0000db08 beq 0xdb28                                                    |         
    0x0000db0c cmp r3, 0                                                     |         
                                                                             |         if (r3 == 0) {
    0x0000db10 addne r2, r5, 1                                               |             r2 = r5 + 1;
                                                                             |         }
                                                                             |         if (r3 == 0) {
    0x0000db14 strne r2, [r3]                                                |             *(r3) = r2;
                                                                             |         }
    0x0000db18 cmp r7, 0                                                     |         
                                                                             |         if (r7 == 0) {
    0x0000db1c subne ip, ip, r5                                              |             
                                                                             |         }
                                                                             |         if (r7 == 0) {
    0x0000db20 subne ip, ip, 1                                               |             
                                                                             |         }
                                                                             |         if (r7 != 0) {
    0x0000db24 strne ip, [r7]                                                |             *(r7) = ip;
                                                                             |             goto label_1;
                                                                             |         }
                                                                             |     }
                                                                             | label_1:
    0x0000db28 add sp, sp, 0xc                                               |     
    0x0000db2c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |     
                                                                             | label_6:
    0x0000db30 subs lr, r0, 0                                                |     lr = r0 - 0;
                                                                             |     if (lr != r0) {
    0x0000db34 bne 0xda4c                                                    |         goto label_0;
                                                                             |     }
                                                                             | label_7:
    0x0000db38 mov r0, 1                                                     |     r0 = 1;
    0x0000db3c b 0xdb28                                                      |     goto label_1;
                                                                             | label_8:
    0x0000db40 mov r5, ip                                                    |     r5 = ip;
                                                                             | label_9:
    0x0000db44 ldrsb r8, [lr]                                                |     r8 = *(lr);
    0x0000db48 mov ip, lr                                                    |     
    0x0000db4c cmp r8, 0                                                     |     
                                                                             |     if (r8 == 0) {
    0x0000db50 beq 0xdac8                                                    |         goto label_2;
                                                                             |     }
    0x0000db54 b 0xda6c                                                      |     goto label_3;
                                                                             | label_10:
    0x0000db58 ldr r3, [pc, 0x78]                                            |     
    0x0000db5c ldr r3, [sb, r3]                                              |     r3 = *((sb + r3));
    0x0000db60 ldr r3, [r3]                                                  |     r3 = *(0xdbd4);
    0x0000db64 tst r3, 8                                                     |     
                                                                             |     if ((r3 & 8) != 0) {
    0x0000db68 beq 0xdbb4                                                    |         
    0x0000db6c ldr r3, [pc, 0x68]                                            |         r3 = *(0xdbd8);
    0x0000db70 ldr r3, [sb, r3]                                              |         r3 = *((sb + r3));
    0x0000db74 ldr r4, [r3]                                                  |         r4 = *(0xdbd8);
    0x0000db78 bl 0x8204                                                     |         getpid ();
    0x0000db7c ldr r3, [pc, 0x5c]                                            |         r3 = *(0xdbdc);
    0x0000db80 ldr r1, [pc, 0x5c]                                            |         r1 = *(0xdbe0);
    0x0000db84 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000db88 str r3, [sp]                                                  |         *(sp) = r3;
    0x0000db8c ldr r3, [pc, 0x54]                                            |         r3 = *(0xdbe4);
    0x0000db90 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0000db94 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000db98 mov r2, r0                                                    |         r2 = r0;
    0x0000db9c mov r0, r4                                                    |         r0 = r4;
    0x0000dba0 bl 0x8798                                                     |         fprintf (r0, r1, r2, r3)
    0x0000dba4 ldr r0, [pc, 0x40]                                            |         r0 = *(0xdbe8);
    0x0000dba8 mov r1, r6                                                    |         r1 = r6;
    0x0000dbac add r0, pc, r0                                                |         r0 = pc + r0;
    0x0000dbb0 bl 0xd92c                                                     |         fcn_0000d92c ();
                                                                             |     }
    0x0000dbb4 mvn r0, 0x15                                                  |     r0 = ~0x15;
    0x0000dbb8 b 0xdb28                                                      |     goto label_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/lib/libmount.so.1.1.0 @ 0xef08 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0000ef08 ()                                                  | void fcn_0000ef08 (int32_t arg1, uint32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_10h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0000ef08 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0000ef0c ldr sb, [pc, 0x174]                                           |     sb = *(0x0000f088);
    0x0000ef10 subs r8, r0, 0                                                |     r8 = r0 - 0;
    0x0000ef14 add sb, pc, sb                                                |     sb = pc + sb;
                                                                             |     if (r8 == r0) {
    0x0000ef18 beq 0xf080                                                    |         goto label_2;
                                                                             |     }
    0x0000ef1c ldr r0, [r8]                                                  |     r0 = *(r8);
    0x0000ef20 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x0000ef24 beq 0xf080                                                    |         goto label_2;
                                                                             |     }
    0x0000ef28 cmp r2, 0                                                     |     
    0x0000ef2c cmpne r1, 0                                                   |     __asm ("cmpne r1, 0");
                                                                             |     if (r2 == 0) {
    0x0000ef30 beq 0xf080                                                    |         goto label_2;
                                                                             |     }
    0x0000ef34 mov r6, r3                                                    |     r6 = r3;
    0x0000ef38 ldr r3, [pc, 0x14c]                                           |     
    0x0000ef3c mov r5, r2                                                    |     r5 = r2;
    0x0000ef40 ldr r3, [sb, r3]                                              |     r3 = *((sb + r3));
    0x0000ef44 mov r4, r1                                                    |     r4 = r1;
    0x0000ef48 ldr r3, [r3]                                                  |     r3 = *(0xf088);
    0x0000ef4c tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) != 0) {
    0x0000ef50 beq 0xef98                                                    |         
    0x0000ef54 ldr r3, [pc, 0x134]                                           |         r3 = *(0xf08c);
    0x0000ef58 ldr r3, [sb, r3]                                              |         r3 = *((sb + r3));
    0x0000ef5c ldr r7, [r3]                                                  |         r7 = *(0xf08c);
    0x0000ef60 bl 0x8204                                                     |         getpid ();
    0x0000ef64 ldr r3, [pc, 0x128]                                           |         r3 = *(0xf090);
    0x0000ef68 ldr r1, [pc, 0x128]                                           |         r1 = *(0xf094);
    0x0000ef6c add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000ef70 str r3, [sp]                                                  |         *(sp) = r3;
    0x0000ef74 ldr r3, [pc, 0x120]                                           |         r3 = *(0xf098);
    0x0000ef78 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0000ef7c add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000ef80 mov r2, r0                                                    |         r2 = r0;
    0x0000ef84 mov r0, r7                                                    |         r0 = r7;
    0x0000ef88 bl 0x8798                                                     |         fprintf (r0, r1, r2, r3)
    0x0000ef8c ldr r0, [pc, 0x10c]                                           |         r0 = *(0xf09c);
    0x0000ef90 add r0, pc, r0                                                |         r0 = pc + r0;
    0x0000ef94 bl 0xd92c                                                     |         fcn_0000d92c ();
                                                                             |     }
    0x0000ef98 cmp r5, 7                                                     |     
    0x0000ef9c add r7, r4, r5                                                |     r7 = r4 + r5;
                                                                             |     if (r5 != 7) {
    0x0000efa0 bne 0xeff4                                                    |         goto label_3;
                                                                             |     }
    0x0000efa4 ldr r1, [pc, 0xf8]                                            |     r1 = *(0xf0a0);
    0x0000efa8 mov r2, r5                                                    |     r2 = r5;
    0x0000efac add r1, pc, r1                                                |     r1 = pc + r1;
    0x0000efb0 mov r0, r4                                                    |     r0 = r4;
    0x0000efb4 bl 0x8948                                                     |     r0 = strncmp (r0, r1, r2);
    0x0000efb8 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0000efbc bne 0xeff4                                                    |         goto label_3;
                                                                             |     }
    0x0000efc0 ldrsb r3, [r4, 7]                                             |     r3 = *((r4 + 7));
    0x0000efc4 cmp r3, 0                                                     |     
    0x0000efc8 cmpne r3, 0x2c                                                |     __asm ("cmpne r3, 0x2c");
                                                                             |     if (r3 != 0) {
    0x0000efcc bne 0xeff4                                                    |         goto label_3;
                                                                             |     }
    0x0000efd0 bl 0x8378                                                     |     getuid ();
    0x0000efd4 mov r3, r7                                                    |     r3 = r7;
    0x0000efd8 mov r2, r4                                                    |     r2 = r4;
    0x0000efdc str r6, [sp]                                                  |     *(sp) = r6;
    0x0000efe0 mov r1, r0                                                    |     r1 = r0;
                                                                             | label_0:
    0x0000efe4 mov r0, r8                                                    |     r0 = r8;
    0x0000efe8 bl 0xe380                                                     |     fcn_0000e380 (r0, r1, r2);
                                                                             |     do {
                                                                             | label_1:
    0x0000efec add sp, sp, 0x10                                              |         
    0x0000eff0 pop {r4, r5, r6, r7, r8, sb, sl, pc}                          |         
                                                                             | label_3:
    0x0000eff4 ldr r2, [pc, 0xac]                                            |         
    0x0000eff8 ldrsb r3, [r4]                                                |         r3 = *(r4);
    0x0000effc ldr r2, [sb, r2]                                              |         r2 = *((sb + r2));
    0x0000f000 lsl r3, r3, 1                                                 |         r3 <<= 1;
    0x0000f004 ldr r2, [r2]                                                  |         r2 = *(0xf0a4);
    0x0000f008 ldrh r3, [r2, r3]                                             |         r3 = *((r2 + r3));
    0x0000f00c tst r3, 8                                                     |         
                                                                             |         if ((r3 & 8) != 0) {
    0x0000f010 bne 0xf058                                                    |             goto label_4;
                                                                             |         }
    0x0000f014 mov r1, r5                                                    |         r1 = r5;
    0x0000f018 mov r0, r4                                                    |         r0 = r4;
    0x0000f01c bl 0x8048                                                     |         r0 = strndup (r0, r1);
    0x0000f020 subs sl, r0, 0                                                |         sl = r0 - 0;
                                                                             |         if (sl != r0) {
    0x0000f024 mvneq r0, 0xb                                                 |             r0 = ~0xb;
                                                                             |         }
    0x0000f028 beq 0xefec                                                    |         
                                                                             |     } while (sl == r0);
    0x0000f02c add r1, sp, 0xc                                               |     r1 += var_ch;
    0x0000f030 bl 0x19374                                                    |     r0 = fcn_00019374 (r0, r1);
    0x0000f034 mov sb, r0                                                    |     sb = r0;
    0x0000f038 mov r0, sl                                                    |     r0 = sl;
    0x0000f03c bl 0x91c4                                                     |     free (r0);
    0x0000f040 cmp sb, 0                                                     |     
                                                                             |     if (sb != 0) {
    0x0000f044 streq r6, [sp]                                                |         *(sp) = r6;
                                                                             |     }
                                                                             |     if (sb != 0) {
    0x0000f048 moveq r3, r7                                                  |         r3 = r7;
                                                                             |     }
                                                                             |     if (sb != 0) {
    0x0000f04c moveq r2, r4                                                  |         r2 = r4;
                                                                             |     }
                                                                             |     if (sb == 0) {
    0x0000f050 ldreq r1, [sp, 0xc]                                           |         r1 = var_ch;
                                                                             |         goto label_5;
                                                                             |     }
                                                                             |     if (sb == 0) {
                                                                             | label_5:
    0x0000f054 beq 0xefe4                                                    |         goto label_0;
                                                                             |     }
                                                                             | label_4:
    0x0000f058 cmp r6, 0                                                     |     
    0x0000f05c bne 0xf068                                                    |     
                                                                             |     while (1) {
    0x0000f060 mov r0, 0                                                     |         r0 = 0;
    0x0000f064 b 0xefec                                                      |         goto label_1;
    0x0000f068 str r7, [r6]                                                  |         *(r6) = r7;
    0x0000f06c ldrsb r3, [r4, r5]                                            |         r3 = *((r4 + r5));
    0x0000f070 cmp r3, 0x2c                                                  |         
                                                                             |         if (r3 != 0x2c) {
    0x0000f074 addeq r7, r7, 1                                               |             r7++;
                                                                             |         }
                                                                             |         if (r3 != 0x2c) {
    0x0000f078 streq r7, [r6]                                                |             *(r6) = r7;
                                                                             |         }
    0x0000f07c b 0xf060                                                      |         
                                                                             |     }
                                                                             | label_2:
    0x0000f080 mvn r0, 0x15                                                  |     r0 = ~0x15;
    0x0000f084 b 0xefec                                                      |     goto label_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/lib/libmount.so.1.1.0 @ 0xf0ac */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0000f0ac ()                                                  | void fcn_0000f0ac (int32_t arg1, uint32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_10h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0000f0ac push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0000f0b0 ldr sb, [pc, 0x174]                                           |     sb = *(0x0000f22c);
    0x0000f0b4 subs r8, r0, 0                                                |     r8 = r0 - 0;
    0x0000f0b8 add sb, pc, sb                                                |     sb = pc + sb;
                                                                             |     if (r8 == r0) {
    0x0000f0bc beq 0xf224                                                    |         goto label_2;
                                                                             |     }
    0x0000f0c0 ldr r0, [r8]                                                  |     r0 = *(r8);
    0x0000f0c4 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x0000f0c8 beq 0xf224                                                    |         goto label_2;
                                                                             |     }
    0x0000f0cc cmp r2, 0                                                     |     
    0x0000f0d0 cmpne r1, 0                                                   |     __asm ("cmpne r1, 0");
                                                                             |     if (r2 == 0) {
    0x0000f0d4 beq 0xf224                                                    |         goto label_2;
                                                                             |     }
    0x0000f0d8 mov r6, r3                                                    |     r6 = r3;
    0x0000f0dc ldr r3, [pc, 0x14c]                                           |     
    0x0000f0e0 mov r5, r2                                                    |     r5 = r2;
    0x0000f0e4 ldr r3, [sb, r3]                                              |     r3 = *((sb + r3));
    0x0000f0e8 mov r4, r1                                                    |     r4 = r1;
    0x0000f0ec ldr r3, [r3]                                                  |     r3 = *(0xf22c);
    0x0000f0f0 tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) != 0) {
    0x0000f0f4 beq 0xf13c                                                    |         
    0x0000f0f8 ldr r3, [pc, 0x134]                                           |         r3 = *(0xf230);
    0x0000f0fc ldr r3, [sb, r3]                                              |         r3 = *((sb + r3));
    0x0000f100 ldr r7, [r3]                                                  |         r7 = *(0xf230);
    0x0000f104 bl 0x8204                                                     |         getpid ();
    0x0000f108 ldr r3, [pc, 0x128]                                           |         r3 = *(0xf234);
    0x0000f10c ldr r1, [pc, 0x128]                                           |         r1 = *(0xf238);
    0x0000f110 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000f114 str r3, [sp]                                                  |         *(sp) = r3;
    0x0000f118 ldr r3, [pc, 0x120]                                           |         r3 = *(0xf23c);
    0x0000f11c add r1, pc, r1                                                |         r1 = pc + r1;
    0x0000f120 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0000f124 mov r2, r0                                                    |         r2 = r0;
    0x0000f128 mov r0, r7                                                    |         r0 = r7;
    0x0000f12c bl 0x8798                                                     |         fprintf (r0, r1, r2, r3)
    0x0000f130 ldr r0, [pc, 0x10c]                                           |         r0 = *(0xf240);
    0x0000f134 add r0, pc, r0                                                |         r0 = pc + r0;
    0x0000f138 bl 0xd92c                                                     |         fcn_0000d92c ();
                                                                             |     }
    0x0000f13c cmp r5, 7                                                     |     
    0x0000f140 add r7, r4, r5                                                |     r7 = r4 + r5;
                                                                             |     if (r5 != 7) {
    0x0000f144 bne 0xf198                                                    |         goto label_3;
                                                                             |     }
    0x0000f148 ldr r1, [pc, 0xf8]                                            |     r1 = *(0xf244);
    0x0000f14c mov r2, r5                                                    |     r2 = r5;
    0x0000f150 add r1, pc, r1                                                |     r1 = pc + r1;
    0x0000f154 mov r0, r4                                                    |     r0 = r4;
    0x0000f158 bl 0x8948                                                     |     r0 = strncmp (r0, r1, r2);
    0x0000f15c cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0000f160 bne 0xf198                                                    |         goto label_3;
                                                                             |     }
    0x0000f164 ldrsb r3, [r4, 7]                                             |     r3 = *((r4 + 7));
    0x0000f168 cmp r3, 0                                                     |     
    0x0000f16c cmpne r3, 0x2c                                                |     __asm ("cmpne r3, 0x2c");
                                                                             |     if (r3 != 0) {
    0x0000f170 bne 0xf198                                                    |         goto label_3;
                                                                             |     }
    0x0000f174 bl 0x7f7c                                                     |     getgid ();
    0x0000f178 mov r3, r7                                                    |     r3 = r7;
    0x0000f17c mov r2, r4                                                    |     r2 = r4;
    0x0000f180 str r6, [sp]                                                  |     *(sp) = r6;
    0x0000f184 mov r1, r0                                                    |     r1 = r0;
                                                                             | label_0:
    0x0000f188 mov r0, r8                                                    |     r0 = r8;
    0x0000f18c bl 0xe380                                                     |     fcn_0000e380 (r0, r1, r2);
                                                                             |     do {
                                                                             | label_1:
    0x0000f190 add sp, sp, 0x10                                              |         
    0x0000f194 pop {r4, r5, r6, r7, r8, sb, sl, pc}                          |         
                                                                             | label_3:
    0x0000f198 ldr r2, [pc, 0xac]                                            |         
    0x0000f19c ldrsb r3, [r4]                                                |         r3 = *(r4);
    0x0000f1a0 ldr r2, [sb, r2]                                              |         r2 = *((sb + r2));
    0x0000f1a4 lsl r3, r3, 1                                                 |         r3 <<= 1;
    0x0000f1a8 ldr r2, [r2]                                                  |         r2 = *(0xf248);
    0x0000f1ac ldrh r3, [r2, r3]                                             |         r3 = *((r2 + r3));
    0x0000f1b0 tst r3, 8                                                     |         
                                                                             |         if ((r3 & 8) != 0) {
    0x0000f1b4 bne 0xf1fc                                                    |             goto label_4;
                                                                             |         }
    0x0000f1b8 mov r1, r5                                                    |         r1 = r5;
    0x0000f1bc mov r0, r4                                                    |         r0 = r4;
    0x0000f1c0 bl 0x8048                                                     |         r0 = strndup (r0, r1);
    0x0000f1c4 subs sl, r0, 0                                                |         sl = r0 - 0;
                                                                             |         if (sl != r0) {
    0x0000f1c8 mvneq r0, 0xb                                                 |             r0 = ~0xb;
                                                                             |         }
    0x0000f1cc beq 0xf190                                                    |         
                                                                             |     } while (sl == r0);
    0x0000f1d0 add r1, sp, 0xc                                               |     r1 += var_ch;
    0x0000f1d4 bl 0x19488                                                    |     r0 = fcn_00019488 (r0, r1);
    0x0000f1d8 mov sb, r0                                                    |     sb = r0;
    0x0000f1dc mov r0, sl                                                    |     r0 = sl;
    0x0000f1e0 bl 0x91c4                                                     |     free (r0);
    0x0000f1e4 cmp sb, 0                                                     |     
                                                                             |     if (sb != 0) {
    0x0000f1e8 streq r6, [sp]                                                |         *(sp) = r6;
                                                                             |     }
                                                                             |     if (sb != 0) {
    0x0000f1ec moveq r3, r7                                                  |         r3 = r7;
                                                                             |     }
                                                                             |     if (sb != 0) {
    0x0000f1f0 moveq r2, r4                                                  |         r2 = r4;
                                                                             |     }
                                                                             |     if (sb == 0) {
    0x0000f1f4 ldreq r1, [sp, 0xc]                                           |         r1 = var_ch;
                                                                             |         goto label_5;
                                                                             |     }
                                                                             |     if (sb == 0) {
                                                                             | label_5:
    0x0000f1f8 beq 0xf188                                                    |         goto label_0;
                                                                             |     }
                                                                             | label_4:
    0x0000f1fc cmp r6, 0                                                     |     
    0x0000f200 bne 0xf20c                                                    |     
                                                                             |     while (1) {
    0x0000f204 mov r0, 0                                                     |         r0 = 0;
    0x0000f208 b 0xf190                                                      |         goto label_1;
    0x0000f20c str r7, [r6]                                                  |         *(r6) = r7;
    0x0000f210 ldrsb r3, [r4, r5]                                            |         r3 = *((r4 + r5));
    0x0000f214 cmp r3, 0x2c                                                  |         
                                                                             |         if (r3 != 0x2c) {
    0x0000f218 addeq r7, r7, 1                                               |             r7++;
                                                                             |         }
                                                                             |         if (r3 != 0x2c) {
    0x0000f21c streq r7, [r6]                                                |             *(r6) = r7;
                                                                             |         }
    0x0000f220 b 0xf204                                                      |         
                                                                             |     }
                                                                             | label_2:
    0x0000f224 mvn r0, 0x15                                                  |     r0 = ~0x15;
    0x0000f228 b 0xf190                                                      |     goto label_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/lib/libmount.so.1.1.0 @ 0xf250 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000f250 ()                      | void fcn_0000f250 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     void * s;
                                                 |     int32_t var_10h;
                                                 |     int32_t var_14h;
                                                 |     int32_t var_18h;
                                                 |     int32_t var_24h;
                                                 |     r0 = arg1;
    0x0000f250 ldr r3, [pc, 0x124]               |     r3 = *(0xf378);
    0x0000f254 ldr r2, [pc, 0x124]               |     r2 = *(0xf37c);
    0x0000f258 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000f25c push {r4, r5, r6, r7, lr}         |     
    0x0000f260 ldr r2, [r3, r2]                  |     
    0x0000f264 sub sp, sp, 0x24                  |     
    0x0000f268 ldr r2, [r2]                      |     r2 = *(0xf378);
    0x0000f26c mov r6, r0                        |     r6 = r0;
    0x0000f270 tst r2, 0x200                     |     
                                                 |     if ((r2 & 0x200) != 0) {
    0x0000f274 beq 0xf2bc                        |         
    0x0000f278 ldr r2, [pc, 0x104]               |         r2 = *(0xf380);
    0x0000f27c ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x0000f280 ldr r4, [r3]                      |         r4 = *(r3);
    0x0000f284 bl 0x8204                         |         getpid ();
    0x0000f288 ldr r3, [pc, 0xf8]                |         r3 = *(0xf384);
    0x0000f28c ldr r1, [pc, 0xf8]                |         r1 = *(0xf388);
    0x0000f290 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000f294 str r3, [sp]                      |         *(sp) = r3;
    0x0000f298 ldr r3, [pc, 0xf0]                |         r3 = *(0xf38c);
    0x0000f29c add r1, pc, r1                    |         r1 = pc + r1;
    0x0000f2a0 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000f2a4 mov r2, r0                        |         r2 = r0;
    0x0000f2a8 mov r0, r4                        |         r0 = r4;
    0x0000f2ac bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x0000f2b0 ldr r0, [pc, 0xdc]                |         r0 = *(0xf390);
    0x0000f2b4 add r0, pc, r0                    |         r0 = pc + r0;
    0x0000f2b8 bl 0xd92c                         |         fcn_0000d92c ();
                                                 |     }
    0x0000f2bc add r3, sp, 0xc                   |     r3 += s;
    0x0000f2c0 mov r2, 0x14                      |     r2 = 0x14;
    0x0000f2c4 mov r1, 0                         |     r1 = 0;
    0x0000f2c8 mov r0, r3                        |     r0 = r3;
    0x0000f2cc bl 0x8b4c                         |     memset (r0, r1, r2);
    0x0000f2d0 ldr r1, [pc, 0xc0]                |     r1 = *(0xf394);
    0x0000f2d4 add r1, pc, r1                    |     r1 = pc + r1;
    0x0000f2d8 mov r2, r0                        |     r2 = r0;
    0x0000f2dc ldr r0, [r6]                      |     r0 = *(r6);
    0x0000f2e0 bl 0xdeb0                         |     r0 = fcn_0000deb0 (r0, r1);
    0x0000f2e4 subs r4, r0, 0                    |     r4 = r0 - 0;
                                                 |     if (r4 == r0) {
    0x0000f2e8 beq 0xf300                        |         goto label_1;
                                                 |     }
    0x0000f2ec cmp r4, 1                         |     
    0x0000f2f0 moveq r4, 0                       |     r4 = 0;
                                                 |     while (r5 == r0) {
                                                 | label_0:
    0x0000f2f4 mov r0, r4                        |         r0 = r4;
    0x0000f2f8 add sp, sp, 0x24                  |         
    0x0000f2fc pop {r4, r5, r6, r7, pc}          |         
                                                 | label_1:
    0x0000f300 bl 0x8378                         |         getuid ();
    0x0000f304 bl 0x19300                        |         r0 = fcn_00019300 (r0);
    0x0000f308 subs r5, r0, 0                    |         r5 = r0 - 0;
                                                 |         if (r5 != r0) {
    0x0000f30c mvneq r4, 0xb                     |             r4 = ~0xb;
                                                 |         }
    0x0000f310 beq 0xf2f4                        |         
                                                 |     }
    0x0000f314 ldr r2, [sp, 0x18]                |     r2 = var_18h;
    0x0000f318 cmp r2, 0                         |     
                                                 |     if (r2 != 0) {
    0x0000f31c beq 0xf350                        |         
    0x0000f320 ldr r7, [sp, 0x14]                |         r7 = var_14h;
    0x0000f324 cmp r7, 0                         |         
                                                 |         if (r7 == 0) {
    0x0000f328 beq 0xf370                        |             goto label_2;
                                                 |         }
    0x0000f32c mov r1, r5                        |         r1 = r5;
    0x0000f330 mov r0, r7                        |         r0 = r7;
    0x0000f334 bl 0x8948                         |         r0 = strncmp (r0, r1, r2);
    0x0000f338 subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x0000f33c beq 0xf370                        |             goto label_2;
                                                 |         }
    0x0000f340 ldr r2, [sp, 0x10]                |         r2 = var_10h;
    0x0000f344 mov r1, r7                        |         r1 = r7;
    0x0000f348 mov r0, r6                        |         r0 = r6;
    0x0000f34c bl 0xe1d0                         |         fcn_0000e1d0 (r0, r1);
                                                 |     }
    0x0000f350 ldr r1, [sp, 0x14]                |     r1 = var_14h;
    0x0000f354 mov r3, 0                         |     r3 = 0;
    0x0000f358 cmp r1, 0                         |     
                                                 |     if (r1 != 0) {
    0x0000f35c ldreq r1, [sp, 0x10]              |         r1 = var_10h;
                                                 |     }
    0x0000f360 mov r2, r5                        |     r2 = r5;
    0x0000f364 mov r0, r6                        |     r0 = r6;
    0x0000f368 bl 0xdda4                         |     r0 = fcn_0000dda4 (r0, r1);
    0x0000f36c mov r4, r0                        |     r4 = r0;
                                                 | label_2:
    0x0000f370 mov r0, r5                        |     r0 = r5;
    0x0000f374 bl 0x91c4                         |     free (r0);
    0x0000f378 b 0xf2f4                          |     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/lib/libmount.so.1.1.0 @ 0xf520 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000f520 ()                      | void fcn_0000f520 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0000f520 push {r1, r2, r3}                 |     
    0x0000f524 ldr r3, [pc, 0xa4]                |     r3 = *(0xf5cc);
    0x0000f528 push {r0, r1, r2, r4, lr}         |     
    0x0000f52c ldr r1, [pc, 0xa0]                |     r1 = *(0xf5d0);
    0x0000f530 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000f534 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0000f538 ldr r4, [r3, r1]                  |     r4 = *(0xf5cc);
                                                 |     if (r2 != r0) {
    0x0000f53c beq 0xf564                        |         
    0x0000f540 ldr r1, [pc, 0x90]                |         r1 = *(0xf5d4);
    0x0000f544 ldr r3, [r3, r1]                  |         r3 = *((r3 + r1));
    0x0000f548 ldr r3, [r3]                      |         r3 = *(r3);
    0x0000f54c tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0000f550 bne 0xf564                        |             goto label_1;
                                                 |         }
    0x0000f554 ldr r1, [pc, 0x80]                |         r1 = *(0xf5d8);
    0x0000f558 ldr r0, [r4]                      |         r0 = *(r4);
    0x0000f55c add r1, pc, r1                    |         r1 = pc + r1;
    0x0000f560 bl 0x8798                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0000f564 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0000f568 ldr r1, [sp, 0x14]                |     r1 = format;
    0x0000f56c ldr r0, [r4]                      |     r0 = *(r4);
    0x0000f570 str r2, [sp, 4]                   |     var_4h = r2;
    0x0000f574 bl 0x91a0                         |     vfprintf (r0, r1, r2)
    0x0000f578 ldr r1, [r4]                      |     r1 = *(r4);
    0x0000f57c ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0000f580 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0000f584 beq 0xf5c4                        |         goto label_2;
                                                 |     }
    0x0000f588 ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0000f58c ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0000f590 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0000f594 bhs 0xf5b8                        |         goto label_3;
                                                 |     }
    0x0000f598 add r2, r3, 1                     |     r2 = r3 + 1;
    0x0000f59c str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0000f5a0 mov r2, 0xa                       |     r2 = 0xa;
    0x0000f5a4 strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0000f5a8 add sp, sp, 0xc                   |         
    0x0000f5ac pop {r4, lr}                      |         
    0x0000f5b0 add sp, sp, 0xc                   |         
    0x0000f5b4 bx lr                             |         return;
                                                 | label_3:
    0x0000f5b8 mov r0, 0xa                       |         r0 = 0xa;
    0x0000f5bc bl 0x91dc                         |         fputc_unlocked ();
    0x0000f5c0 b 0xf5a8                          |         
                                                 |     } while (1);
                                                 | label_2:
    0x0000f5c4 mov r0, 0xa                       |     r0 = 0xa;
    0x0000f5c8 bl 0x8ea0                         |     fputc (r0, r1);
    0x0000f5cc b 0xf5a8                          |     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/lib/libmount.so.1.1.0 @ 0x1160c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001160c ()                                  | void fcn_0001160c (int32_t arg_1h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_bp_1ch;
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     void * s2;
                                                             |     int32_t var_20h;
                                                             |     char * s1;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001160c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00011610 ldr r4, [pc, 0x974]                           |     r4 = *(0x11f88);
    0x00011614 sub sp, sp, 0x44                              |     
    0x00011618 subs sb, r1, 0                                |     sb -= arg_1h;
    0x0001161c add r4, pc, r4                                |     r4 = pc + r4;
    0x00011620 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (sb != arg_1h) {
    0x00011624 bne 0x1164c                                   |         goto label_8;
                                                             |     }
    0x00011628 ldr r3, [pc, 0x960]                           |     
    0x0001162c ldr r1, [pc, 0x960]                           |     r1 = *(0x11f90);
    0x00011630 ldr r0, [pc, 0x960]                           |     r0 = *(0x11f94);
    0x00011634 ldr r2, [pc, 0x960]                           |     r2 = *(0x11f98);
    0x00011638 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001163c add r3, r3, 0x18                              |     r3 = 0x11fa4;
    0x00011640 add r1, pc, r1                                |     r1 = pc + r1;
    0x00011644 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_3:
    0x00011648 bl 0x908c                                     |         assert ();
                                                             | label_8:
    0x0001164c ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00011650 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011654 bne 0x1167c                                   |             goto label_9;
                                                             |         }
    0x00011658 ldr r3, [pc, 0x940]                           |         
    0x0001165c ldr r1, [pc, 0x940]                           |         r1 = *(0x11fa0);
    0x00011660 ldr r0, [pc, 0x940]                           |         r0 = *(0x11fa4);
    0x00011664 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011668 add r3, r3, 0x18                              |         r3 = 0x11fb4;
    0x0001166c ldr r2, [pc, 0x938]                           |         r2 = *(0x11fa8);
    0x00011670 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011674 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011678 b 0x11648                                     |         
                                                             |     } while (1);
                                                             | label_9:
    0x0001167c ldr r3, [pc, 0x92c]                           |     r3 = *(0x11fac);
    0x00011680 mov r6, r0                                    |     r6 = r0;
    0x00011684 ldr r5, [r4, r3]                              |     r5 = *((r4 + r3));
    0x00011688 mov r7, r2                                    |     r7 = r2;
    0x0001168c ldr r3, [r5]                                  |     r3 = *(r5);
    0x00011690 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00011694 beq 0x116e8                                   |         
    0x00011698 ldr r3, [pc, 0x914]                           |         r3 = *(0x11fb0);
    0x0001169c ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x000116a0 ldr r8, [r3]                                  |         r8 = *(0x11fb0);
    0x000116a4 bl 0x8204                                     |         getpid ();
    0x000116a8 ldr r3, [pc, 0x908]                           |         r3 = *(0x11fb4);
    0x000116ac ldr r1, [pc, 0x908]                           |         r1 = *(0x11fb8);
    0x000116b0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000116b4 str r3, [sp]                                  |         *(sp) = r3;
    0x000116b8 ldr r3, [pc, 0x900]                           |         r3 = *(0x11fbc);
    0x000116bc add r1, pc, r1                                |         r1 = pc + r1;
    0x000116c0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000116c4 mov r2, r0                                    |         r2 = r0;
    0x000116c8 mov r0, r8                                    |         r0 = r8;
    0x000116cc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000116d0 mov r0, sb                                    |         r0 = sb;
    0x000116d4 bl 0x8c90                                     |         r0 = fcn_00008c90 ();
    0x000116d8 mov r1, r0                                    |         r1 = r0;
    0x000116dc ldr r0, [pc, 0x8e0]                           |         r0 = *(0x11fc0);
    0x000116e0 add r0, pc, r0                                |         r0 = pc + r0;
    0x000116e4 bl 0xf5e0                                     |         fcn_0000f5e0 ();
                                                             |     }
    0x000116e8 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x000116ec bne 0x11700                                   |         goto label_10;
                                                             |     }
                                                             | label_2:
    0x000116f0 mov r6, 0                                     |     r6 = 0;
                                                             |     do {
                                                             | label_5:
    0x000116f4 ldr r0, [pc, 0x8cc]                           |         r0 = *(0x11fc4);
    0x000116f8 add r0, pc, r0                                |         r0 = pc + r0;
    0x000116fc b 0x11954                                     |         goto label_11;
                                                             | label_10:
    0x00011700 tst r7, 0x1000                                |         
                                                             |         if ((r7 & 0x1000) == 0) {
    0x00011704 beq 0x11994                                   |             goto label_12;
                                                             |         }
    0x00011708 ldr r3, [r5]                                  |         r3 = *(r5);
    0x0001170c tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x00011710 beq 0x11758                                   |             
    0x00011714 ldr r3, [pc, 0x898]                           |             r3 = *(0x11fb0);
    0x00011718 ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x0001171c ldr r7, [r3]                                  |             r7 = *(0x11fb0);
    0x00011720 bl 0x8204                                     |             getpid ();
    0x00011724 ldr r3, [pc, 0x8a0]                           |             r3 = *(0x11fc8);
    0x00011728 ldr r1, [pc, 0x8a0]                           |             r1 = *(0x11fcc);
    0x0001172c add r3, pc, r3                                |             r3 = pc + r3;
    0x00011730 str r3, [sp]                                  |             *(sp) = r3;
    0x00011734 ldr r3, [pc, 0x898]                           |             r3 = *(0x11fd0);
    0x00011738 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001173c add r3, pc, r3                                |             r3 = pc + r3;
    0x00011740 mov r2, r0                                    |             r2 = r0;
    0x00011744 mov r0, r7                                    |             r0 = r7;
    0x00011748 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001174c ldr r0, [pc, 0x884]                           |             r0 = *(0x11fd4);
    0x00011750 add r0, pc, r0                                |             r0 = pc + r0;
    0x00011754 bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
    0x00011758 mov r0, sb                                    |         r0 = sb;
    0x0001175c bl 0x8c90                                     |         fcn_00008c90 ();
    0x00011760 ldr r1, [r6, 0x18]                            |         r1 = *((r6 + 0x18));
    0x00011764 bl 0x7ec8                                     |         r0 = fcn_00007ec8 ();
    0x00011768 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 == r0) {
    0x0001176c beq 0x11f6c                                   |             goto label_13;
                                                             |         }
    0x00011770 mov r2, 1                                     |         r2 = 1;
    0x00011774 mov r1, r8                                    |         r1 = r8;
    0x00011778 mov r0, r6                                    |         r0 = r6;
    0x0001177c bl 0x8b64                                     |         r0 = fcn_00008b64 ();
    0x00011780 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011784 beq 0x11f80                                   |             goto label_14;
                                                             |         }
    0x00011788 bl 0x81d4                                     |         r0 = fcn_000081d4 ();
    0x0001178c subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl == r0) {
    0x00011790 beq 0x11f80                                   |             goto label_14;
                                                             |         }
    0x00011794 bl 0x905c                                     |         r0 = strlen (r0);
    0x00011798 cmp r0, 1                                     |         
                                                             |         if (r0 <= 1) {
    0x0001179c addhi r0, r8, r0                              |             r0 = r8 + r0;
                                                             |         }
                                                             |         if (r0 > 1) {
    0x000117a0 movls r0, r8                                  |             r0 = r8;
                                                             |         }
    0x000117a4 ldrsb r3, [r0]                                |         r3 = *(r0);
    0x000117a8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000117ac beq 0x118a4                                   |             goto label_15;
                                                             |         }
                                                             | label_0:
    0x000117b0 bl 0x8ae0                                     |         strdup (r0);
    0x000117b4 ldr r3, [r5]                                  |         r3 = *(r5);
    0x000117b8 tst r3, 0x100                                 |         
    0x000117bc mov r7, r0                                    |         r7 = r0;
                                                             |         if ((r3 & 0x100) != 0) {
    0x000117c0 beq 0x11810                                   |             
    0x000117c4 ldr r3, [pc, 0x7e8]                           |             r3 = *(0x11fb0);
    0x000117c8 ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x000117cc ldr fp, [r3]                                  |             fp = *(0x11fb0);
    0x000117d0 bl 0x8204                                     |             getpid ();
    0x000117d4 ldr r3, [pc, 0x800]                           |             r3 = *(0x11fd8);
    0x000117d8 ldr r1, [pc, 0x800]                           |             r1 = *(0x11fdc);
    0x000117dc add r3, pc, r3                                |             r3 = pc + r3;
    0x000117e0 str r3, [sp]                                  |             *(sp) = r3;
    0x000117e4 ldr r3, [pc, 0x7f8]                           |             r3 = *(0x11fe0);
    0x000117e8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000117ec add r3, pc, r3                                |             r3 = pc + r3;
    0x000117f0 mov r2, r0                                    |             r2 = r0;
    0x000117f4 mov r0, fp                                    |             r0 = fp;
    0x000117f8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000117fc ldr r0, [pc, 0x7e4]                           |             r0 = *(0x11fe4);
    0x00011800 mov r2, r7                                    |             r2 = r7;
    0x00011804 mov r1, r8                                    |             r1 = r8;
    0x00011808 add r0, pc, r0                                |             r0 = pc + r0;
    0x0001180c bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
                                                             | label_7:
    0x00011810 ldr r3, [r6, 0x18]                            |         r3 = *((r6 + 0x18));
    0x00011814 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00011818 bne 0x11824                                   |             
    0x0001181c mov r0, r8                                    |             r0 = r8;
    0x00011820 bl 0x91c4                                     |             free (r0);
                                                             |         }
    0x00011824 cmp sl, 0                                     |         
                                                             |         if (sl == 0) {
    0x00011828 beq 0x11f70                                   |             goto label_16;
                                                             |         }
    0x0001182c mov r0, r6                                    |         r0 = r6;
    0x00011830 mov r2, 1                                     |         r2 = 1;
    0x00011834 mov r1, sl                                    |         r1 = sl;
    0x00011838 bl 0x86a8                                     |         r0 = fcn_000086a8 ();
    0x0001183c subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 != r0) {
    0x00011840 bne 0x118b0                                   |             goto label_17;
                                                             |         }
    0x00011844 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00011848 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x0001184c beq 0x11898                                   |             
    0x00011850 ldr r3, [pc, 0x75c]                           |             r3 = *(0x11fb0);
    0x00011854 ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x00011858 ldr r8, [r3]                                  |             r8 = *(0x11fb0);
    0x0001185c bl 0x8204                                     |             getpid ();
    0x00011860 ldr r3, [pc, 0x784]                           |             r3 = *(0x11fe8);
    0x00011864 ldr r1, [pc, 0x784]                           |             r1 = *(0x11fec);
    0x00011868 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001186c str r3, [sp]                                  |             *(sp) = r3;
    0x00011870 ldr r3, [pc, 0x77c]                           |             r3 = *(0x11ff0);
    0x00011874 add r1, pc, r1                                |             r1 = pc + r1;
    0x00011878 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001187c mov r2, r0                                    |             r2 = r0;
    0x00011880 mov r0, r8                                    |             r0 = r8;
    0x00011884 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00011888 ldr r0, [pc, 0x768]                           |             r0 = *(0x11ff4);
    0x0001188c mov r1, sl                                    |             r1 = sl;
    0x00011890 add r0, pc, r0                                |             r0 = pc + r0;
    0x00011894 bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
                                                             | label_1:
    0x00011898 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x0001189c bne 0x11c74                                   |             goto label_18;
                                                             |         }
    0x000118a0 b 0x116f4                                     |         
                                                             |     } while (1);
                                                             | label_15:
    0x000118a4 ldr r0, [pc, 0x750]                           |     r0 = *(0x11ff8);
    0x000118a8 add r0, pc, r0                                |     r0 = pc + r0;
    0x000118ac b 0x117b0                                     |     goto label_0;
                                                             | label_17:
    0x000118b0 bl 0x8f54                                     |     fcn_00008f54 ();
    0x000118b4 ldr r3, [r5]                                  |     r3 = *(r5);
    0x000118b8 tst r3, 0x40                                  |     
    0x000118bc mov r8, r0                                    |     r8 = r0;
                                                             |     if ((r3 & 0x40) != 0) {
    0x000118c0 beq 0x11914                                   |         
    0x000118c4 ldr r3, [pc, 0x6e8]                           |         r3 = *(0x11fb0);
    0x000118c8 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x000118cc ldr sl, [r3]                                  |         sl = *(0x11fb0);
    0x000118d0 bl 0x8204                                     |         getpid ();
    0x000118d4 ldr r3, [pc, 0x724]                           |         r3 = *(0x11ffc);
    0x000118d8 ldr r1, [pc, 0x724]                           |         r1 = *(0x12000);
    0x000118dc add r3, pc, r3                                |         r3 = pc + r3;
    0x000118e0 str r3, [sp]                                  |         *(sp) = r3;
    0x000118e4 ldr r3, [pc, 0x71c]                           |         r3 = *(0x12004);
    0x000118e8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000118ec add r3, pc, r3                                |         r3 = pc + r3;
    0x000118f0 mov r2, r0                                    |         r2 = r0;
    0x000118f4 mov r0, sl                                    |         r0 = sl;
    0x000118f8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000118fc ldr r1, [pc, 0x708]                           |         r1 = *(0x12008);
    0x00011900 mov r3, r8                                    |         r3 = r8;
    0x00011904 mov r2, r7                                    |         r2 = r7;
    0x00011908 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001190c mov r0, sb                                    |         r0 = sb;
    0x00011910 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x00011914 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00011918 beq 0x11898                                   |         goto label_1;
                                                             |     }
    0x0001191c mov r1, r8                                    |     r1 = r8;
    0x00011920 mov r0, r7                                    |     r0 = r7;
    0x00011924 bl 0xf6bc                                     |     r0 = fcn_0000f6bc (r0, r1);
    0x00011928 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001192c bne 0x11898                                   |         goto label_1;
                                                             |     }
    0x00011930 ldr r1, [pc, 0x6d8]                           |     r1 = *(0x1200c);
    0x00011934 mov r0, r7                                    |     r0 = r7;
    0x00011938 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001193c bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00011940 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011944 bne 0x11964                                   |         
    0x00011948 mov r0, r7                                    |         r0 = r7;
    0x0001194c bl 0x91c4                                     |         free (r0);
    0x00011950 mov r0, r8                                    |         r0 = r8;
                                                             | label_11:
    0x00011954 bl 0x8ae0                                     |         r0 = strdup (r0);
    0x00011958 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 != r0) {
    0x0001195c bne 0x11c74                                   |             goto label_18;
                                                             |         }
    0x00011960 b 0x11f6c                                     |         goto label_13;
                                                             |     }
    0x00011964 ldr r1, [pc, 0x6a8]                           |     r1 = *(0x12010);
    0x00011968 mov r3, r7                                    |     r3 = r7;
    0x0001196c mov r2, r8                                    |     r2 = r8;
    0x00011970 add r1, pc, r1                                |     r1 = pc + r1;
    0x00011974 add r0, sp, 0x24                              |     r0 += s1;
    0x00011978 bl 0x8d80                                     |     r0 = asprintf ();
    0x0001197c cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00011980 blt 0x11f70                                   |         goto label_16;
                                                             |     }
    0x00011984 mov r0, r7                                    |     r0 = r7;
    0x00011988 bl 0x91c4                                     |     free (r0);
    0x0001198c ldr r7, [sp, 0x24]                            |     r7 = s1;
    0x00011990 b 0x11898                                     |     goto label_1;
                                                             | label_12:
    0x00011994 ldr r7, [sb, 0x38]                            |     r7 = *((sb + 0x38));
    0x00011998 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0001199c beq 0x116f0                                   |         goto label_2;
                                                             |     }
    0x000119a0 ldr r1, [pc, 0x670]                           |     r1 = *(0x12014);
    0x000119a4 mov r0, r7                                    |     r0 = r7;
    0x000119a8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000119ac bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000119b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000119b4 beq 0x119d0                                   |         goto label_19;
                                                             |     }
    0x000119b8 ldr r1, [pc, 0x65c]                           |     r1 = *(0x12018);
    0x000119bc mov r0, r7                                    |     r0 = r7;
    0x000119c0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000119c4 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000119c8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000119cc bne 0x116f0                                   |         goto label_2;
                                                             |     }
                                                             | label_19:
    0x000119d0 mov r3, 0                                     |     r3 = 0;
    0x000119d4 str r3, [sp, 0x1c]                            |     s2 = r3;
    0x000119d8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x000119dc ldr r3, [r5]                                  |     r3 = *(r5);
    0x000119e0 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x000119e4 beq 0x11a2c                                   |         
    0x000119e8 ldr r3, [pc, 0x5c4]                           |         r3 = *(0x11fb0);
    0x000119ec ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x000119f0 ldr r7, [r3]                                  |         r7 = *(0x11fb0);
    0x000119f4 bl 0x8204                                     |         getpid ();
    0x000119f8 ldr r3, [pc, 0x620]                           |         r3 = *(0x1201c);
    0x000119fc ldr r1, [pc, 0x620]                           |         r1 = *(0x12020);
    0x00011a00 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011a04 str r3, [sp]                                  |         *(sp) = r3;
    0x00011a08 ldr r3, [pc, 0x618]                           |         r3 = *(0x12024);
    0x00011a0c add r1, pc, r1                                |         r1 = pc + r1;
    0x00011a10 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011a14 mov r2, r0                                    |         r2 = r0;
    0x00011a18 mov r0, r7                                    |         r0 = r7;
    0x00011a1c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00011a20 ldr r0, [pc, 0x604]                           |         r0 = *(0x12028);
    0x00011a24 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011a28 bl 0xf5e0                                     |         fcn_0000f5e0 ();
                                                             |     }
    0x00011a2c ldr r1, [pc, 0x5fc]                           |     r1 = *(0x1202c);
    0x00011a30 add r8, sp, 0x20                              |     r8 += var_20h;
    0x00011a34 add r7, sp, 0x1c                              |     r7 += s2;
    0x00011a38 mov r3, r8                                    |     r3 = r8;
    0x00011a3c mov r2, r7                                    |     r2 = r7;
    0x00011a40 add r1, pc, r1                                |     r1 = pc + r1;
    0x00011a44 mov r0, sb                                    |     r0 = sb;
    0x00011a48 bl 0x88ac                                     |     r0 = fcn_000088ac ();
    0x00011a4c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011a50 bne 0x11cdc                                   |         goto label_20;
                                                             |     }
    0x00011a54 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00011a58 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x00011a5c beq 0x11aa8                                   |         
    0x00011a60 ldr r3, [pc, 0x54c]                           |         r3 = *(0x11fb0);
    0x00011a64 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x00011a68 ldr sl, [r3]                                  |         sl = *(0x11fb0);
    0x00011a6c bl 0x8204                                     |         getpid ();
    0x00011a70 ldr r3, [pc, 0x5bc]                           |         r3 = *(0x12030);
    0x00011a74 ldr r1, [pc, 0x5bc]                           |         r1 = *(0x12034);
    0x00011a78 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011a7c str r3, [sp]                                  |         *(sp) = r3;
    0x00011a80 ldr r3, [pc, 0x5b4]                           |         r3 = *(0x12038);
    0x00011a84 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011a88 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011a8c mov r2, r0                                    |         r2 = r0;
    0x00011a90 mov r0, sl                                    |         r0 = sl;
    0x00011a94 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00011a98 ldr r0, [pc, 0x5a0]                           |         r0 = *(0x1203c);
    0x00011a9c ldr r1, [sp, 0x1c]                            |         r1 = s2;
    0x00011aa0 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011aa4 bl 0xf5e0                                     |         fcn_0000f5e0 ();
                                                             |     }
    0x00011aa8 ldr fp, [sp, 0x20]                            |     fp = var_20h;
    0x00011aac add r3, fp, 1                                 |     r3 += arg_1h;
    0x00011ab0 cmp r3, 0x19                                  |     
                                                             |     if (r3 >= 0x19) {
    0x00011ab4 bls 0x11adc                                   |         
    0x00011ab8 ldr r3, [pc, 0x584]                           |         
    0x00011abc ldr r1, [pc, 0x584]                           |         r1 = *(0x12044);
    0x00011ac0 ldr r0, [pc, 0x584]                           |         r0 = *(0x12048);
    0x00011ac4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011ac8 add r3, r3, 0x2e                              |         r3 = 0x1206e;
    0x00011acc mov r2, 0x510                                 |         r2 = 0x510;
    0x00011ad0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011ad4 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011ad8 b 0x11648                                     |         goto label_3;
                                                             |     }
    0x00011adc add sl, sp, 0x24                              |     sl += s1;
    0x00011ae0 mov r2, fp                                    |     r2 = fp;
    0x00011ae4 ldr r1, [sp, 0x1c]                            |     r1 = s2;
    0x00011ae8 mov r0, sl                                    |     r0 = sl;
    0x00011aec bl 0x82a0                                     |     memcpy (r0, r1, r2);
    0x00011af0 add r3, sp, 0x40                              |     r3 += var_40h;
    0x00011af4 add fp, r3, fp                                |     
    0x00011af8 mov r0, sb                                    |     r0 = sb;
    0x00011afc mov r3, 0                                     |     r3 = 0;
    0x00011b00 strb r3, [fp, -0x1c]                          |     var_bp_1ch = r3;
    0x00011b04 bl 0x81d4                                     |     fcn_000081d4 ();
    0x00011b08 ldr r1, [r6, 0x18]                            |     r1 = *((r6 + 0x18));
    0x00011b0c bl 0x8390                                     |     r0 = fcn_00008390 ();
    0x00011b10 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x00011b14 beq 0x11f08                                   |         goto label_21;
                                                             |     }
    0x00011b18 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00011b1c tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x00011b20 beq 0x11b70                                   |         
    0x00011b24 ldr r3, [pc, 0x488]                           |         r3 = *(0x11fb0);
    0x00011b28 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x00011b2c ldr fp, [r3]                                  |         fp = *(0x11fb0);
    0x00011b30 bl 0x8204                                     |         getpid ();
    0x00011b34 ldr r3, [pc, 0x514]                           |         r3 = *(0x1204c);
    0x00011b38 ldr r1, [pc, 0x514]                           |         r1 = *(0x12050);
    0x00011b3c add r3, pc, r3                                |         r3 = pc + r3;
    0x00011b40 str r3, [sp]                                  |         *(sp) = r3;
    0x00011b44 ldr r3, [pc, 0x50c]                           |         r3 = *(0x12054);
    0x00011b48 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011b4c add r3, pc, r3                                |         r3 = pc + r3;
    0x00011b50 mov r2, r0                                    |         r2 = r0;
    0x00011b54 mov r0, fp                                    |         r0 = fp;
    0x00011b58 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00011b5c ldr r0, [pc, 0x4f8]                           |         r0 = *(0x12058);
    0x00011b60 mov r2, sl                                    |         r2 = sl;
    0x00011b64 mov r1, sb                                    |         r1 = sb;
    0x00011b68 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011b6c bl 0xf5e0                                     |         fcn_0000f5e0 ();
                                                             |     }
    0x00011b70 ldr r2, [pc, 0x4e8]                           |     r2 = *(0x1205c);
    0x00011b74 mov r3, 1                                     |     r3 = 1;
    0x00011b78 str r3, [sp]                                  |     *(sp) = r3;
    0x00011b7c add r2, pc, r2                                |     r2 = pc + r2;
    0x00011b80 mov r3, sl                                    |     r3 = sl;
    0x00011b84 mov r1, sb                                    |     r1 = sb;
    0x00011b88 mov r0, r6                                    |     r0 = r6;
    0x00011b8c bl 0x8cd8                                     |     fcn_00008cd8 ();
    0x00011b90 ldr r3, [r6, 0x18]                            |     r3 = *((r6 + 0x18));
    0x00011b94 cmp r3, 0                                     |     
    0x00011b98 mov sl, r0                                    |     sl = r0;
                                                             |     if (r3 == 0) {
    0x00011b9c bne 0x11ba8                                   |         
    0x00011ba0 mov r0, sb                                    |         r0 = sb;
    0x00011ba4 bl 0x91c4                                     |         free (r0);
                                                             |     }
    0x00011ba8 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00011bac beq 0x11eb4                                   |         goto label_22;
                                                             |     }
    0x00011bb0 ldr r1, [pc, 0x4ac]                           |     r1 = *(0x12060);
    0x00011bb4 mov r3, r8                                    |     r3 = r8;
    0x00011bb8 mov r2, r7                                    |     r2 = r7;
    0x00011bbc add r1, pc, r1                                |     r1 = pc + r1;
    0x00011bc0 mov r0, sl                                    |     r0 = sl;
                                                             | label_4:
    0x00011bc4 bl 0x88ac                                     |     r0 = fcn_000088ac ();
    0x00011bc8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011bcc bne 0x11eb4                                   |         goto label_22;
                                                             |     }
                                                             |     do {
    0x00011bd0 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00011bd4 tst r3, 0x1000                                |         
                                                             |         if ((r3 & 0x1000) != 0) {
    0x00011bd8 beq 0x11c24                                   |             
    0x00011bdc ldr r3, [pc, 0x3d0]                           |             r3 = *(0x11fb0);
    0x00011be0 ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x00011be4 ldr r6, [r3]                                  |             r6 = *(0x11fb0);
    0x00011be8 bl 0x8204                                     |             getpid ();
    0x00011bec ldr r3, [pc, 0x474]                           |             r3 = *(0x12064);
    0x00011bf0 ldr r1, [pc, 0x474]                           |             r1 = *(0x12068);
    0x00011bf4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00011bf8 str r3, [sp]                                  |             *(sp) = r3;
    0x00011bfc ldr r3, [pc, 0x46c]                           |             r3 = *(0x1206c);
    0x00011c00 add r1, pc, r1                                |             r1 = pc + r1;
    0x00011c04 add r3, pc, r3                                |             r3 = pc + r3;
    0x00011c08 mov r2, r0                                    |             r2 = r0;
    0x00011c0c mov r0, r6                                    |             r0 = r6;
    0x00011c10 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00011c14 ldr r0, [pc, 0x458]                           |             r0 = *(0x12070);
    0x00011c18 ldr r1, [sp, 0x1c]                            |             r1 = s2;
    0x00011c1c add r0, pc, r0                                |             r0 = pc + r0;
    0x00011c20 bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
    0x00011c24 ldr sb, [sp, 0x1c]                            |         sb = s2;
    0x00011c28 ldr r6, [sp, 0x20]                            |         r6 = var_20h;
    0x00011c2c ldrsb sl, [sb]                                |         sl = *(sb);
    0x00011c30 cmp sl, 0x2f                                  |         
                                                             |         if (sl == 0x2f) {
    0x00011c34 addne r8, r6, 1                               |             r8 = r6 + 1;
                                                             |         }
                                                             |         if (sl != 0x2f) {
    0x00011c38 moveq r8, r6                                  |             r8 = r6;
                                                             |         }
    0x00011c3c add r0, r8, 1                                 |         r0 = r8 + 1;
    0x00011c40 bl 0x83cc                                     |         r0 = malloc (r0);
    0x00011c44 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x00011c48 beq 0x11f08                                   |             goto label_21;
                                                             |         }
    0x00011c4c cmp sl, 0x2f                                  |         
                                                             |         if (sl == 0x2f) {
    0x00011c50 movne r3, 0x2f                                |             r3 = 0x2f;
                                                             |         }
    0x00011c54 mov r2, r6                                    |         r2 = r6;
                                                             |         if (sl == 0x2f) {
    0x00011c58 addne r0, r7, 1                               |             r0 = r7 + 1;
                                                             |         }
                                                             |         if (sl == 0x2f) {
    0x00011c5c strbne r3, [r7]                               |             *(r7) = r3;
                                                             |         }
                                                             |         if (sl != 0x2f) {
    0x00011c60 moveq r0, r7                                  |             r0 = r7;
                                                             |         }
    0x00011c64 mov r1, sb                                    |         r1 = sb;
    0x00011c68 mov r6, 0                                     |         r6 = 0;
    0x00011c6c bl 0x82a0                                     |         memcpy (r0, r1, r2);
    0x00011c70 strb r6, [r7, r8]                             |         *((r7 + r8)) = r6;
                                                             | label_18:
    0x00011c74 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00011c78 str r7, [r3]                                  |         *(r3) = r7;
    0x00011c7c ldr r3, [r5]                                  |         r3 = *(r5);
    0x00011c80 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x00011c84 beq 0x11cd0                                   |             
    0x00011c88 ldr r3, [pc, 0x324]                           |             r3 = *(0x11fb0);
    0x00011c8c ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x00011c90 ldr r4, [r3]                                  |             r4 = *(0x11fb0);
    0x00011c94 bl 0x8204                                     |             getpid ();
    0x00011c98 ldr r3, [pc, 0x3d8]                           |             r3 = *(0x12074);
    0x00011c9c ldr r1, [pc, 0x3d8]                           |             r1 = *(0x12078);
    0x00011ca0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00011ca4 str r3, [sp]                                  |             *(sp) = r3;
    0x00011ca8 ldr r3, [pc, 0x3d0]                           |             r3 = *(0x1207c);
    0x00011cac add r1, pc, r1                                |             r1 = pc + r1;
    0x00011cb0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00011cb4 mov r2, r0                                    |             r2 = r0;
    0x00011cb8 mov r0, r4                                    |             r0 = r4;
    0x00011cbc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00011cc0 ldr r0, [pc, 0x3bc]                           |             r0 = *(0x12080);
    0x00011cc4 mov r1, r7                                    |             r1 = r7;
    0x00011cc8 add r0, pc, r0                                |             r0 = pc + r0;
    0x00011ccc bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
                                                             | label_6:
    0x00011cd0 mov r0, r6                                    |         r0 = r6;
    0x00011cd4 add sp, sp, 0x44                              |         
    0x00011cd8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_20:
    0x00011cdc ldr r1, [pc, 0x3a4]                           |         r1 = *(0x12084);
    0x00011ce0 mov r3, r8                                    |         r3 = r8;
    0x00011ce4 mov r2, r7                                    |         r2 = r7;
    0x00011ce8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011cec mov r0, sb                                    |         r0 = sb;
    0x00011cf0 bl 0x88ac                                     |         r0 = fcn_000088ac ();
    0x00011cf4 cmp r0, 0                                     |         
    0x00011cf8 beq 0x11bd0                                   |         
                                                             |     } while (r0 == 0);
    0x00011cfc ldr r3, [r5]                                  |     r3 = *(r5);
    0x00011d00 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x00011d04 beq 0x11d4c                                   |         
    0x00011d08 ldr r3, [pc, 0x2a4]                           |         r3 = *(0x11fb0);
    0x00011d0c ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x00011d10 ldr sl, [r3]                                  |         sl = *(0x11fb0);
    0x00011d14 bl 0x8204                                     |         getpid ();
    0x00011d18 ldr r3, [pc, 0x36c]                           |         r3 = *(0x12088);
    0x00011d1c ldr r1, [pc, 0x36c]                           |         r1 = *(0x1208c);
    0x00011d20 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011d24 str r3, [sp]                                  |         *(sp) = r3;
    0x00011d28 ldr r3, [pc, 0x364]                           |         r3 = *(0x12090);
    0x00011d2c add r1, pc, r1                                |         r1 = pc + r1;
    0x00011d30 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011d34 mov r2, r0                                    |         r2 = r0;
    0x00011d38 mov r0, sl                                    |         r0 = sl;
    0x00011d3c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00011d40 ldr r0, [pc, 0x350]                           |         r0 = *(0x12094);
    0x00011d44 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011d48 bl 0xf5e0                                     |         fcn_0000f5e0 ();
                                                             |     }
    0x00011d4c mov r0, sb                                    |     r0 = sb;
    0x00011d50 bl 0x81d4                                     |     fcn_000081d4 ();
    0x00011d54 bl 0x28cc0                                    |     fcn_00028cc0 (r0);
    0x00011d58 mov r3, r1                                    |     r3 = r1;
    0x00011d5c mvn r1, 0                                     |     r1 = ~0;
    0x00011d60 mov r2, r0                                    |     r2 = r0;
    0x00011d64 cmp r3, r1                                    |     
    0x00011d68 mvn r0, 0                                     |     r0 = ~0;
    0x00011d6c cmpeq r2, r0                                  |     __asm ("cmpeq r2, r0");
    0x00011d70 strd r2, r3, [sp, 0x10]                       |     __asm ("strd r2, r3, [var_10h]");
                                                             |     if (r3 != r1) {
    0x00011d74 beq 0x11eb4                                   |         
    0x00011d78 mov r0, sb                                    |         r0 = sb;
    0x00011d7c bl 0x81d4                                     |         fcn_000081d4 ();
    0x00011d80 ldr r1, [r6, 0x18]                            |         r1 = *((r6 + 0x18));
    0x00011d84 bl 0x8390                                     |         r0 = fcn_00008390 ();
    0x00011d88 subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl == r0) {
    0x00011d8c beq 0x11f08                                   |             goto label_21;
                                                             |         }
    0x00011d90 ldrd r2, r3, [sp, 0x10]                       |         __asm ("ldrd r2, r3, [var_10h]");
    0x00011d94 add sb, sp, 0x24                              |         sb += s1;
    0x00011d98 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x00011d9c ldr r2, [pc, 0x2f8]                           |         r2 = *(0x12098);
    0x00011da0 mov r1, 0x1a                                  |         r1 = 0x1a;
    0x00011da4 add r2, pc, r2                                |         r2 = pc + r2;
    0x00011da8 mov r0, sb                                    |         r0 = sb;
    0x00011dac bl 0x809c                                     |         snprintf (r0, r1, r2, r3);
    0x00011db0 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00011db4 tst r3, 0x1000                                |         
                                                             |         if ((r3 & 0x1000) != 0) {
    0x00011db8 beq 0x11e08                                   |             
    0x00011dbc ldr r3, [pc, 0x1f0]                           |             r3 = *(0x11fb0);
    0x00011dc0 ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x00011dc4 ldr fp, [r3]                                  |             fp = *(0x11fb0);
    0x00011dc8 bl 0x8204                                     |             getpid ();
    0x00011dcc ldr r3, [pc, 0x2cc]                           |             r3 = *(0x1209c);
    0x00011dd0 ldr r1, [pc, 0x2cc]                           |             r1 = *(0x120a0);
    0x00011dd4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00011dd8 str r3, [sp]                                  |             *(sp) = r3;
    0x00011ddc ldr r3, [pc, 0x2c4]                           |             r3 = *(0x120a4);
    0x00011de0 add r1, pc, r1                                |             r1 = pc + r1;
    0x00011de4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00011de8 mov r2, r0                                    |             r2 = r0;
    0x00011dec mov r0, fp                                    |             r0 = fp;
    0x00011df0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00011df4 ldr r0, [pc, 0x2b0]                           |             r0 = *(0x120a8);
    0x00011df8 mov r2, sb                                    |             r2 = sb;
    0x00011dfc mov r1, sl                                    |             r1 = sl;
    0x00011e00 add r0, pc, r0                                |             r0 = pc + r0;
    0x00011e04 bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
    0x00011e08 ldr r2, [pc, 0x2a0]                           |         r2 = *(0x120ac);
    0x00011e0c mov r3, 1                                     |         r3 = 1;
    0x00011e10 str r3, [sp]                                  |         *(sp) = r3;
    0x00011e14 add r2, pc, r2                                |         r2 = pc + r2;
    0x00011e18 mov r3, sb                                    |         r3 = sb;
    0x00011e1c mov r1, sl                                    |         r1 = sl;
    0x00011e20 mov r0, r6                                    |         r0 = r6;
    0x00011e24 bl 0x8cd8                                     |         fcn_00008cd8 ();
    0x00011e28 ldr r3, [r6, 0x18]                            |         r3 = *((r6 + 0x18));
    0x00011e2c cmp r3, 0                                     |         
    0x00011e30 mov fp, r0                                    |         
                                                             |         if (r3 == 0) {
    0x00011e34 bne 0x11e40                                   |             
    0x00011e38 mov r0, sl                                    |             r0 = sl;
    0x00011e3c bl 0x91c4                                     |             free (r0);
                                                             |         }
    0x00011e40 cmp fp, 0                                     |         
                                                             |         if (fp == 0) {
    0x00011e44 beq 0x11eb4                                   |             goto label_22;
                                                             |         }
    0x00011e48 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00011e4c tst r3, 0x1000                                |         
                                                             |         if ((r3 & 0x1000) != 0) {
    0x00011e50 beq 0x11e9c                                   |             
    0x00011e54 ldr r3, [pc, 0x158]                           |             r3 = *(0x11fb0);
    0x00011e58 ldr r3, [r4, r3]                              |             r3 = *((r4 + r3));
    0x00011e5c ldr r6, [r3]                                  |             r6 = *(0x11fb0);
    0x00011e60 bl 0x8204                                     |             getpid ();
    0x00011e64 ldr r3, [pc, 0x248]                           |             r3 = *(0x120b0);
    0x00011e68 ldr r1, [pc, 0x248]                           |             r1 = *(0x120b4);
    0x00011e6c add r3, pc, r3                                |             r3 = pc + r3;
    0x00011e70 str r3, [sp]                                  |             *(sp) = r3;
    0x00011e74 ldr r3, [pc, 0x240]                           |             r3 = *(0x120b8);
    0x00011e78 add r1, pc, r1                                |             r1 = pc + r1;
    0x00011e7c add r3, pc, r3                                |             r3 = pc + r3;
    0x00011e80 mov r2, r0                                    |             r2 = r0;
    0x00011e84 mov r0, r6                                    |             r0 = r6;
    0x00011e88 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00011e8c ldr r0, [pc, 0x22c]                           |             r0 = *(0x120bc);
    0x00011e90 mov r1, sb                                    |             r1 = sb;
    0x00011e94 add r0, pc, r0                                |             r0 = pc + r0;
    0x00011e98 bl 0xf5e0                                     |             fcn_0000f5e0 ();
                                                             |         }
    0x00011e9c ldr r1, [pc, 0x220]                           |         r1 = *(0x120c0);
    0x00011ea0 mov r3, r8                                    |         r3 = r8;
    0x00011ea4 mov r2, r7                                    |         r2 = r7;
    0x00011ea8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011eac mov r0, fp                                    |         r0 = fp;
    0x00011eb0 b 0x11bc4                                     |         goto label_4;
                                                             |     }
                                                             | label_22:
    0x00011eb4 ldr r6, [r5]                                  |     r6 = *(r5);
    0x00011eb8 ands r6, r6, 0x1000                           |     r6 &= 0x1000;
                                                             |     if (r6 == r6) {
    0x00011ebc beq 0x116f4                                   |         goto label_5;
                                                             |     }
    0x00011ec0 ldr r3, [pc, 0xec]                            |     r3 = *(0x11fb0);
    0x00011ec4 ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00011ec8 ldr r6, [r3]                                  |     r6 = *(0x11fb0);
    0x00011ecc bl 0x8204                                     |     getpid ();
    0x00011ed0 ldr r3, [pc, 0x1f0]                           |     r3 = *(0x120c4);
    0x00011ed4 ldr r1, [pc, 0x1f0]                           |     r1 = *(0x120c8);
    0x00011ed8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00011edc str r3, [sp]                                  |     *(sp) = r3;
    0x00011ee0 ldr r3, [pc, 0x1e8]                           |     r3 = *(0x120cc);
    0x00011ee4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00011ee8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00011eec mov r2, r0                                    |     r2 = r0;
    0x00011ef0 mov r0, r6                                    |     r0 = r6;
    0x00011ef4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00011ef8 ldr r0, [pc, 0x1d4]                           |     r0 = *(0x120d0);
    0x00011efc add r0, pc, r0                                |     r0 = pc + r0;
    0x00011f00 bl 0xf5e0                                     |     fcn_0000f5e0 ();
    0x00011f04 b 0x116f0                                     |     goto label_2;
                                                             | label_21:
    0x00011f08 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00011f0c tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x00011f10 beq 0x11f58                                   |         
    0x00011f14 ldr r3, [pc, 0x98]                            |         r3 = *(0x11fb0);
    0x00011f18 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x00011f1c ldr r6, [r3]                                  |         r6 = *(0x11fb0);
    0x00011f20 bl 0x8204                                     |         getpid ();
    0x00011f24 ldr r3, [pc, 0x1ac]                           |         r3 = *(0x120d4);
    0x00011f28 ldr r1, [pc, 0x1ac]                           |         r1 = *(0x120d8);
    0x00011f2c add r3, pc, r3                                |         r3 = pc + r3;
    0x00011f30 str r3, [sp]                                  |         *(sp) = r3;
    0x00011f34 ldr r3, [pc, 0x1a4]                           |         r3 = *(0x120dc);
    0x00011f38 add r1, pc, r1                                |         r1 = pc + r1;
    0x00011f3c add r3, pc, r3                                |         r3 = pc + r3;
    0x00011f40 mov r2, r0                                    |         r2 = r0;
    0x00011f44 mov r0, r6                                    |         r0 = r6;
    0x00011f48 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00011f4c ldr r0, [pc, 0x190]                           |         r0 = *(0x120e0);
    0x00011f50 add r0, pc, r0                                |         r0 = pc + r0;
    0x00011f54 bl 0xf5e0                                     |         fcn_0000f5e0 ();
                                                             |     }
    0x00011f58 bl 0x8f6c                                     |     r0 = errno_location ();
    0x00011f5c ldr r7, [r0]                                  |     r7 = *(r0);
    0x00011f60 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00011f64 beq 0x11f70                                   |         goto label_16;
                                                             |     }
                                                             |     if (r7 <= 0) {
    0x00011f68 ble 0x116f0                                   |         goto label_2;
                                                             |     }
                                                             | label_13:
    0x00011f6c mov r7, 0                                     |     r7 = 0;
                                                             | label_16:
    0x00011f70 mov r0, r7                                    |     r0 = r7;
    0x00011f74 bl 0x91c4                                     |     free (r0);
    0x00011f78 mov r6, 0                                     |     r6 = 0;
    0x00011f7c b 0x11cd0                                     |     goto label_6;
                                                             | label_14:
    0x00011f80 mov r7, 0                                     |     r7 = 0;
    0x00011f84 mov sl, r7                                    |     sl = r7;
    0x00011f88 b 0x11810                                     |     goto label_7;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x128d4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000128d4 ()                  | void fcn_000128d4 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x000128d4 push {r1, r2, r3}             |     
    0x000128d8 ldr r3, [pc, 0xa4]            |     r3 = *(0x12980);
    0x000128dc push {r0, r1, r2, r4, lr}     |     
    0x000128e0 ldr r1, [pc, 0xa0]            |     r1 = "eading_loop_info64_OK";
    0x000128e4 add r3, pc, r3                |     r3 = pc + r3;
    0x000128e8 subs r2, r0, 0                |     r2 = r0 - 0;
    0x000128ec ldr r4, [r3, r1]              |     r4 = *(0x12980);
                                             |     if (r2 != r0) {
    0x000128f0 beq 0x12918                   |         
    0x000128f4 ldr r1, [pc, 0x90]            |         r1 = *(0x12988);
    0x000128f8 ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x000128fc ldr r3, [r3]                  |         r3 = *(r3);
    0x00012900 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x00012904 bne 0x12918                   |             goto label_1;
                                             |         }
    0x00012908 ldr r1, [pc, 0x80]            |         r1 = *(0x1298c);
    0x0001290c ldr r0, [r4]                  |         r0 = *(r4);
    0x00012910 add r1, pc, r1                |         r1 = pc + r1;
    0x00012914 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x00012918 add r2, sp, 0x18              |     r2 += var_18h;
    0x0001291c ldr r1, [sp, 0x14]            |     r1 = format;
    0x00012920 ldr r0, [r4]                  |     r0 = *(r4);
    0x00012924 str r2, [sp, 4]               |     var_4h = r2;
    0x00012928 bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x0001292c ldr r1, [r4]                  |     r1 = *(r4);
    0x00012930 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00012934 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00012938 beq 0x12978                   |         goto label_2;
                                             |     }
    0x0001293c ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x00012940 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00012944 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00012948 bhs 0x1296c                   |         goto label_3;
                                             |     }
    0x0001294c add r2, r3, 1                 |     r2 = r3 + 1;
    0x00012950 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00012954 mov r2, 0xa                   |     r2 = 0xa;
    0x00012958 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x0001295c add sp, sp, 0xc               |         
    0x00012960 pop {r4, lr}                  |         
    0x00012964 add sp, sp, 0xc               |         
    0x00012968 bx lr                         |         return;
                                             | label_3:
    0x0001296c mov r0, 0xa                   |         r0 = 0xa;
    0x00012970 bl 0x91dc                     |         fputc_unlocked ();
    0x00012974 b 0x1295c                     |         
                                             |     } while (1);
                                             | label_2:
    0x00012978 mov r0, 0xa                   |     r0 = 0xa;
    0x0001297c bl 0x8ea0                     |     fputc (r0, r1);
    0x00012980 b 0x1295c                     |     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/lib/libmount.so.1.1.0 @ 0x12994 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00012994 ()                                      | void fcn_00012994 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00012994 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x00012998 mov sb, r3                                        |     sb = r3;
    0x0001299c ldr r3, [pc, 0x148]                               |     r3 = *(0x12ae8);
    0x000129a0 subs r5, r0, 0                                    |     r5 = r0 - 0;
    0x000129a4 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     if (r5 == r0) {
    0x000129a8 bne 0x129cc                                       |         
    0x000129ac ldr r3, [pc, 0x13c]                               |         r3 = "osing_old_open_fd";
    0x000129b0 ldr r1, [pc, 0x13c]                               |         r1 = *(0x12af0);
    0x000129b4 ldr r0, [pc, 0x13c]                               |         r0 = *(0x12af4);
    0x000129b8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000129bc mov r2, 0x9e                                      |         r2 = 0x9e;
    0x000129c0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x000129c4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x000129c8 bl 0x908c                                         |         assert ();
                                                                 |     }
    0x000129cc mov r7, r2                                        |     r7 = r2;
    0x000129d0 ldr r2, [pc, 0x124]                               |     
    0x000129d4 mov r8, r1                                        |     r8 = r1;
    0x000129d8 ldr r2, [r3, r2]                                  |     r2 = *((r3 + r2));
    0x000129dc ldr r2, [r2]                                      |     r2 = *(0x12af8);
    0x000129e0 tst r2, 0x400                                     |     
                                                                 |     if ((r2 & 0x400) != 0) {
    0x000129e4 beq 0x12a44                                       |         
    0x000129e8 ldr r2, [pc, 0x110]                               |         r2 = *(0x12afc);
    0x000129ec ldr r3, [r3, r2]                                  |         r3 = *((r3 + r2));
    0x000129f0 ldr r4, [r3]                                      |         r4 = *(r3);
    0x000129f4 bl 0x8204                                         |         getpid ();
    0x000129f8 ldr r3, [pc, 0x104]                               |         r3 = *(0x12b00);
    0x000129fc ldr r1, [pc, 0x104]                               |         r1 = *(0x12b04);
    0x00012a00 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00012a04 str r3, [sp]                                      |         *(sp) = r3;
    0x00012a08 ldr r3, [pc, 0xfc]                                |         r3 = *(0x12b08);
    0x00012a0c add r1, pc, r1                                    |         r1 = pc + r1;
    0x00012a10 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00012a14 mov r2, r0                                        |         r2 = r0;
    0x00012a18 mov r0, r4                                        |         r0 = r4;
    0x00012a1c bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x00012a20 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x00012a24 movne r0, r7                                      |             r0 = r7;
                                                                 |         }
                                                                 |         if (r7 != 0) {
    0x00012a28 moveq r0, r8                                      |             r0 = r8;
                                                                 |         }
    0x00012a2c bl 0x81d4                                         |         fcn_000081d4 ();
    0x00012a30 ldr r1, [pc, 0xd8]                                |         r1 = *(0x12b0c);
    0x00012a34 add r1, pc, r1                                    |         r1 = pc + r1;
    0x00012a38 mov r2, r0                                        |         r2 = r0;
    0x00012a3c mov r0, r5                                        |         r0 = r5;
    0x00012a40 bl 0x128d4                                        |         fcn_000128d4 (r0);
                                                                 |     }
    0x00012a44 mov r2, r5                                        |     r2 = r5;
    0x00012a48 ldr r3, [r2, 0xc]!                                |     r3 = *((r2 += 0xc));
    0x00012a4c cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x00012a50 beq 0x12acc                                       |         goto label_0;
                                                                 |     }
    0x00012a54 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x00012a58 sub r4, r3, 0xc                                   |     r4 = r3 - 0xc;
    0x00012a5c ldr r3, [r3]                                      |     r3 = *(r3);
    0x00012a60 str r2, [r3, 4]                                   |     *((r3 + 4)) = r2;
    0x00012a64 str r3, [r2]                                      |     *(r2) = r3;
                                                                 |     do {
    0x00012a68 add r6, r4, 0xc                                   |         r6 = r4 + 0xc;
    0x00012a6c mov r0, r7                                        |         r0 = r7;
    0x00012a70 str r6, [r4, 0xc]                                 |         *((r4 + 0xc)) = r6;
    0x00012a74 str r6, [r4, 0x10]                                |         *((r4 + 0x10)) = r6;
    0x00012a78 bl 0x827c                                         |         fcn_0000827c ();
    0x00012a7c mov r0, r8                                        |         r0 = r8;
    0x00012a80 bl 0x827c                                         |         fcn_0000827c ();
    0x00012a84 ldr r0, [r4, 8]                                   |         r0 = *((r4 + 8));
    0x00012a88 bl 0x8960                                         |         fcn_00008960 ();
    0x00012a8c ldr r0, [r4, 4]                                   |         r0 = *((r4 + 4));
    0x00012a90 bl 0x8960                                         |         fcn_00008960 ();
    0x00012a94 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x00012a98 add r2, r5, 4                                     |         r2 = r5 + 4;
    0x00012a9c str r8, [r4, 4]                                   |         *((r4 + 4)) = r8;
    0x00012aa0 str r7, [r4, 8]                                   |         *((r4 + 8)) = r7;
    0x00012aa4 str sb, [r4]                                      |         *(r4) = sb;
    0x00012aa8 str r6, [r5, 8]                                   |         *((r5 + 8)) = r6;
    0x00012aac str r3, [r4, 0x10]                                |         *((r4 + 0x10)) = r3;
    0x00012ab0 str r2, [r4, 0xc]                                 |         *((r4 + 0xc)) = r2;
    0x00012ab4 str r6, [r3]                                      |         *(r3) = r6;
    0x00012ab8 ldr r3, [r5]                                      |         r3 = *(r5);
    0x00012abc mov r0, 0                                         |         r0 = 0;
    0x00012ac0 add r3, r3, 1                                     |         r3++;
    0x00012ac4 str r3, [r5]                                      |         *(r5) = r3;
    0x00012ac8 b 0x12ae4                                         |         goto label_1;
                                                                 | label_0:
    0x00012acc mov r1, 0x14                                      |         r1 = 0x14;
    0x00012ad0 mov r0, 1                                         |         r0 = 1;
    0x00012ad4 bl 0x86e4                                         |         r0 = calloc (r0, r1);
    0x00012ad8 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 != r0) {
    0x00012adc mvneq r0, 0xb                                     |             r0 = ~0xb;
                                                                 |         }
    0x00012ae0 bne 0x12a68                                       |         
                                                                 |     } while (r4 != r0);
                                                                 | label_1:
    0x00012ae4 add sp, sp, 0xc                                   |     
    0x00012ae8 pop {r4, r5, r6, r7, r8, sb, 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/lib/libmount.so.1.1.0 @ 0x13354 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00013354 ()                  | void fcn_00013354 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00013354 push {r1, r2, r3}             |     
    0x00013358 ldr r3, [pc, 0xa4]            |     r3 = *(0x13400);
    0x0001335c push {r0, r1, r2, r4, lr}     |     
    0x00013360 ldr r1, [pc, 0xa0]            |     r1 = *(0x13404);
    0x00013364 add r3, pc, r3                |     r3 = pc + r3;
    0x00013368 subs r2, r0, 0                |     r2 = r0 - 0;
    0x0001336c ldr r4, [r3, r1]              |     r4 = *(0x13400);
                                             |     if (r2 != r0) {
    0x00013370 beq 0x13398                   |         
    0x00013374 ldr r1, [pc, 0x90]            |         r1 = *(0x13408);
    0x00013378 ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x0001337c ldr r3, [r3]                  |         r3 = *(r3);
    0x00013380 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x00013384 bne 0x13398                   |             goto label_1;
                                             |         }
    0x00013388 ldr r1, [pc, 0x80]            |         r1 = *(0x1340c);
    0x0001338c ldr r0, [r4]                  |         r0 = *(r4);
    0x00013390 add r1, pc, r1                |         r1 = pc + r1;
    0x00013394 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x00013398 add r2, sp, 0x18              |     r2 += var_18h;
    0x0001339c ldr r1, [sp, 0x14]            |     r1 = format;
    0x000133a0 ldr r0, [r4]                  |     r0 = *(r4);
    0x000133a4 str r2, [sp, 4]               |     var_4h = r2;
    0x000133a8 bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x000133ac ldr r1, [r4]                  |     r1 = *(r4);
    0x000133b0 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x000133b4 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000133b8 beq 0x133f8                   |         goto label_2;
                                             |     }
    0x000133bc ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x000133c0 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x000133c4 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x000133c8 bhs 0x133ec                   |         goto label_3;
                                             |     }
    0x000133cc add r2, r3, 1                 |     r2 = r3 + 1;
    0x000133d0 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x000133d4 mov r2, 0xa                   |     r2 = 0xa;
    0x000133d8 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x000133dc add sp, sp, 0xc               |         
    0x000133e0 pop {r4, lr}                  |         
    0x000133e4 add sp, sp, 0xc               |         
    0x000133e8 bx lr                         |         return;
                                             | label_3:
    0x000133ec mov r0, 0xa                   |         r0 = 0xa;
    0x000133f0 bl 0x91dc                     |         fputc_unlocked ();
    0x000133f4 b 0x133dc                     |         
                                             |     } while (1);
                                             | label_2:
    0x000133f8 mov r0, 0xa                   |     r0 = 0xa;
    0x000133fc bl 0x8ea0                     |     fputc (r0, r1);
    0x00013400 b 0x133dc                     |     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/lib/libmount.so.1.1.0 @ 0x13414 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00013414 ()                                      | void fcn_00013414 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 | label_2:
    0x00008138 add ip, pc, 0, 12                                 |     
    0x0000813c add ip, ip, 0x4d000                               |     
    0x00008140 ldr pc, [ip, 0xfcc]!                              |     pc = *((ip += 0xfcc));
                                                                 | label_3:
    0x0000851c add ip, pc, 0, 12                                 |     
    0x00008520 add ip, ip, 0x4d000                               |     
    0x00008524 ldr pc, [ip, 0xd34]!                              |     pc = *((ip += 0xd34));
                                                                 | label_0:
    0x00008ccc add ip, pc, 0, 12                                 |     
    0x00008cd0 add ip, ip, 0x4d000                               |     
    0x00008cd4 ldr pc, [ip, 0x814]!                              |     pc = *((ip += 0x814));
    0x00013414 push {r0, r1, r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00013418 ldr r7, [pc, 0x1a4]                               |     r7 = *(0x135c0);
    0x0001341c mov r4, r0                                        |     r4 = r0;
    0x00013420 mov r5, r1                                        |     r5 = r1;
    0x00013424 mov r6, r2                                        |     r6 = r2;
    0x00013428 mov r8, r3                                        |     r8 = r3;
    0x0001342c bl 0x87f8                                         |     fcn_000087f8 ();
    0x00013430 add r7, pc, r7                                    |     r7 = pc + r7;
    0x00013434 subs sb, r0, 0                                    |     sb = r0 - 0;
                                                                 |     if (sb == r0) {
    0x00013438 movne sb, 0                                       |         sb = 0;
                                                                 |     }
                                                                 |     if (sb != r0) {
    0x0001343c bne 0x134ac                                       |         goto label_4;
                                                                 |     }
    0x00013440 mov r0, r4                                        |     r0 = r4;
    0x00013444 bl 0x9014                                         |     r0 = fcn_00009014 ();
    0x00013448 subs sl, r0, 0                                    |     sl = r0 - 0;
                                                                 |     if (sl != r0) {
    0x0001344c moveq r3, sl                                      |         r3 = sl;
                                                                 |     }
                                                                 |     if (sl != r0) {
    0x00013450 moveq r0, sl                                      |         r0 = sl;
                                                                 |     }
                                                                 |     if (sl != r0) {
    0x00013454 beq 0x1346c                                       |         
    0x00013458 bl 0x905c                                         |         r0 = strlen (r0);
    0x0001345c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00013460 subne r3, r0, 1                                   |             r3 = r0 - 1;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x00013464 addne r3, sl, r3                                  |             r3 = sl + r3;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x00013468 moveq r3, r0                                      |             r3 = r0;
                                                                 |             goto label_5;
                                                                 |         }
                                                                 |     }
                                                                 | label_5:
    0x0001346c cmp r3, 0                                         |     
    0x00013470 cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
                                                                 |     if (r3 == 0) {
    0x00013474 beq 0x1353c                                       |         goto label_6;
                                                                 |     }
    0x00013478 ldrsb r2, [r3]                                    |     r2 = *(r3);
    0x0001347c cmp r2, 0xa                                       |     
                                                                 |     if (r2 != 0xa) {
    0x00013480 bne 0x1353c                                       |         goto label_6;
                                                                 |     }
    0x00013484 cmp sl, r3                                        |     
                                                                 |     if (sl == r3) {
    0x00013488 beq 0x134ac                                       |         goto label_4;
                                                                 |     }
                                                                 |     do {
    0x0001348c ldrsb sb, [r3, -1]!                               |         sb = *((r3 -= 1));
    0x00013490 cmp sl, r3                                        |         
                                                                 |         if (sl > r3) {
    0x00013494 bhi 0x134a4                                       |             goto label_7;
                                                                 |         }
    0x00013498 cmp sb, 9                                         |         
    0x0001349c cmpne sb, 0x20                                    |         __asm ("cmpne sb, 0x20");
    0x000134a0 beq 0x1348c                                       |         
                                                                 |     } while (sb == 9);
                                                                 | label_7:
    0x000134a4 subs sb, sb, 0xa                                  |     sb -= 0xa;
    0x000134a8 movne sb, 1                                       |     sb = 1;
                                                                 |     while (1) {
                                                                 | label_4:
    0x000134ac ldr r3, [pc, 0x114]                               |         
    0x000134b0 ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x000134b4 ldr r3, [r3]                                      |         r3 = *(0x135c4);
    0x000134b8 tst r3, 0x20                                      |         
                                                                 |         if ((r3 & 0x20) != 0) {
    0x000134bc beq 0x13520                                       |             
    0x000134c0 ldr r3, [pc, 0x104]                               |             r3 = *(0x135c8);
    0x000134c4 ldr r3, [r7, r3]                                  |             r3 = *((r7 + r3));
    0x000134c8 ldr r7, [r3]                                      |             r7 = *(0x135c8);
    0x000134cc bl 0x8204                                         |             getpid ();
    0x000134d0 ldr r3, [pc, 0xf8]                                |             r3 = *(0x135cc);
    0x000134d4 ldr r1, [pc, 0xf8]                                |             r1 = *(0x135d0);
    0x000134d8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x000134dc str r3, [sp]                                      |             *(sp) = r3;
    0x000134e0 ldr r3, [pc, 0xf0]                                |             r3 = *(0x135d4);
    0x000134e4 add r1, pc, r1                                    |             r1 = pc + r1;
    0x000134e8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x000134ec mov r2, r0                                        |             r2 = r0;
    0x000134f0 mov r0, r7                                        |             r0 = r7;
    0x000134f4 bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
    0x000134f8 cmp sb, 0                                         |             
                                                                 |             if (sb != 0) {
    0x000134fc bne 0x13544                                       |                 goto label_8;
                                                                 |             }
    0x00013500 cmp r8, 0                                         |             
                                                                 |             if (r8 == 0) {
    0x00013504 beq 0x13550                                       |                 goto label_9;
                                                                 |             }
    0x00013508 ldr r2, [pc, 0xcc]                                |             r2 = *(0x135d8);
    0x0001350c add r2, pc, r2                                    |             r2 = pc + r2;
                                                                 | label_1:
    0x00013510 ldr r1, [pc, 0xc8]                                |             r1 = *(0x135dc);
    0x00013514 mov r0, r4                                        |             r0 = r4;
    0x00013518 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0001351c bl 0x13354                                        |             fcn_00013354 (r0);
                                                                 |         }
    0x00013520 cmp sb, 0                                         |         
                                                                 |         if (sb == 0) {
    0x00013524 beq 0x1355c                                       |             goto label_10;
                                                                 |         }
    0x00013528 mov r1, r6                                        |         r1 = r6;
    0x0001352c mov r0, r4                                        |         r0 = r4;
    0x00013530 add sp, sp, 8                                     |         
    0x00013534 pop {r4, r5, r6, r7, r8, sb, sl, lr}              |         
    0x00013538 b 0x8ccc                                          |         goto label_0;
                                                                 | label_6:
    0x0001353c mov sb, 1                                         |         sb = 1;
    0x00013540 b 0x134ac                                         |         
                                                                 |     }
                                                                 | label_8:
    0x00013544 ldr r2, [pc, 0x98]                                |     r2 = *(0x135e0);
    0x00013548 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0001354c b 0x13510                                         |     goto label_1;
                                                                 | label_9:
    0x00013550 ldr r2, [pc, 0x90]                                |     r2 = *(0x135e4);
    0x00013554 add r2, pc, r2                                    |     r2 = pc + r2;
    0x00013558 b 0x13510                                         |     goto label_1;
                                                                 | label_10:
    0x0001355c cmp r8, 0                                         |     
                                                                 |     if (r8 != 0) {
    0x00013560 beq 0x135a8                                       |         
    0x00013564 mov r0, r5                                        |         r0 = r5;
    0x00013568 bl 0x86d8                                         |         r0 = fcn_000086d8 ();
    0x0001356c mov r1, r0                                        |         r1 = r0;
    0x00013570 mov r0, r4                                        |         r0 = r4;
    0x00013574 bl 0x9080                                         |         r0 = fcn_00009080 ();
    0x00013578 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001357c bne 0x135bc                                       |             goto label_11;
                                                                 |         }
    0x00013580 mov r1, r6                                        |         r1 = r6;
    0x00013584 mov r0, r4                                        |         r0 = r4;
    0x00013588 bl 0x8d98                                         |         r0 = fcn_00008d98 ();
    0x0001358c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00013590 bne 0x135bc                                       |             goto label_11;
                                                                 |         }
    0x00013594 mov r1, sb                                        |         r1 = sb;
    0x00013598 mov r0, r5                                        |         r0 = r5;
    0x0001359c add sp, sp, 8                                     |         
    0x000135a0 pop {r4, r5, r6, r7, r8, sb, sl, lr}              |         
    0x000135a4 b 0x8138                                          |         goto label_2;
                                                                 |     }
    0x000135a8 mov r1, r6                                        |     r1 = r6;
    0x000135ac mov r0, r5                                        |     r0 = r5;
    0x000135b0 add sp, sp, 8                                     |     
    0x000135b4 pop {r4, r5, r6, r7, r8, sb, sl, lr}              |     
    0x000135b8 b 0x851c                                          |     goto label_3;
                                                                 | label_11:
    0x000135bc add sp, sp, 8                                     |     
    0x000135c0 pop {r4, r5, r6, r7, r8, sb, sl, 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/lib/libmount.so.1.1.0 @ 0x14e34 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00014e34 ()                  | void fcn_00014e34 (int32_t arg1) {
                                             |     int32_t var_0h;
                                             |     int32_t var_8h;
                                             |     r0 = arg1;
    0x00014e34 push {r4, r5, r6, r7, lr}     |     
    0x00014e38 ldr r7, [pc, 0xd8]            |     r7 = *(0x14f14);
    0x00014e3c subs r5, r0, 0                |     r5 = r0 - 0;
    0x00014e40 add r7, pc, r7                |     r7 = pc + r7;
    0x00014e44 sub sp, sp, 0x74              |     
    0x00014e48 bne 0x14e54                   |     
                                             |     while (r4 == 0) {
                                             | label_0:
    0x00014e4c mov r4, 0                     |         r4 = 0;
    0x00014e50 b 0x14e7c                     |         goto label_1;
    0x00014e54 mov r6, r1                    |         r6 = r1;
    0x00014e58 add r1, sp, 8                 |         r1 += var_8h;
    0x00014e5c mov r4, r2                    |         r4 = r2;
    0x00014e60 bl 0x8060                     |         r0 = stat64 ();
    0x00014e64 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00014e68 beq 0x14e88                   |             goto label_2;
                                             |         }
    0x00014e6c cmp r4, 0                     |         
    0x00014e70 beq 0x14e4c                   |         
                                             |     }
    0x00014e74 bl 0x90b0                     |     r0 = fcn_000090b0 ();
    0x00014e78 mov r4, r0                    |     r4 = r0;
                                             | label_1:
    0x00014e7c mov r0, r4                    |     r0 = r4;
    0x00014e80 add sp, sp, 0x74              |     
    0x00014e84 pop {r4, r5, r6, r7, pc}      |     
                                             | label_2:
    0x00014e88 bl 0x90b0                     |     r0 = fcn_000090b0 ();
    0x00014e8c subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 == r0) {
    0x00014e90 beq 0x14e4c                   |         goto label_0;
                                             |     }
    0x00014e94 ldr r3, [pc, 0x80]            |     
    0x00014e98 ldr r3, [r7, r3]              |     r3 = *((r7 + r3));
    0x00014e9c ldr r3, [r3]                  |     r3 = "ot_mounted_or_bad_option";
    0x00014ea0 tst r3, 0x20                  |     
                                             |     if ((r3 & 0x20) != 0) {
    0x00014ea4 beq 0x14ef4                   |         
    0x00014ea8 ldr r3, [pc, 0x70]            |         r3 = *(0x14f1c);
    0x00014eac ldr r3, [r7, r3]              |         r3 = *((r7 + r3));
    0x00014eb0 ldr r7, [r3]                  |         r7 = *(0x14f1c);
    0x00014eb4 bl 0x8204                     |         getpid ();
    0x00014eb8 ldr r3, [pc, 0x64]            |         r3 = *(0x14f20);
    0x00014ebc ldr r1, [pc, 0x64]            |         r1 = *(0x14f24);
    0x00014ec0 add r3, pc, r3                |         r3 = pc + r3;
    0x00014ec4 str r3, [sp]                  |         *(sp) = r3;
    0x00014ec8 ldr r3, [pc, 0x5c]            |         r3 = *(0x14f28);
    0x00014ecc add r1, pc, r1                |         r1 = pc + r1;
    0x00014ed0 add r3, pc, r3                |         r3 = pc + r3;
    0x00014ed4 mov r2, r0                    |         r2 = r0;
    0x00014ed8 mov r0, r7                    |         r0 = r7;
    0x00014edc bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x00014ee0 ldr r1, [pc, 0x48]            |         r1 = *(0x14f2c);
    0x00014ee4 mov r2, r5                    |         r2 = r5;
    0x00014ee8 add r1, pc, r1                |         r1 = pc + r1;
    0x00014eec mov r0, r4                    |         r0 = r4;
    0x00014ef0 bl 0x13354                    |         fcn_00013354 (r0);
                                             |     }
    0x00014ef4 str r6, [r4]                  |     *(r4) = r6;
    0x00014ef8 mov r1, r5                    |     r1 = r5;
    0x00014efc mov r0, r4                    |     r0 = r4;
    0x00014f00 bl 0x8354                     |     r0 = fcn_00008354 ();
    0x00014f04 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00014f08 beq 0x14e7c                   |         goto label_1;
                                             |     }
    0x00014f0c mov r0, r4                    |     r0 = r4;
    0x00014f10 bl 0x8bb8                     |     fcn_00008bb8 ();
    0x00014f14 b 0x14e4c                     |     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/lib/libmount.so.1.1.0 @ 0x14f9c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00014f9c ()                              | void fcn_00014f9c (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00014f9c ldr r3, [pc, 0xa4]                        |     r3 = *(0x15044);
    0x00014fa0 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00014fa4 subs r4, r0, 0                            |     r4 = r0 - 0;
    0x00014fa8 add r3, pc, r3                            |     r3 = pc + r3;
                                                         |     if (r4 != r0) {
    0x00014fac mvneq r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r4 == r0) {
    0x00014fb0 beq 0x15034                               |         goto label_0;
                                                         |     }
    0x00014fb4 mov r6, r2                                |     r6 = r2;
    0x00014fb8 ldr r2, [pc, 0x8c]                        |     
    0x00014fbc mov r5, r1                                |     r5 = r1;
    0x00014fc0 ldr r2, [r3, r2]                          |     r2 = *((r3 + r2));
    0x00014fc4 ldr r2, [r2]                              |     r2 = "n_failed:__m";
    0x00014fc8 tst r2, 0x20                              |     
                                                         |     if ((r2 & 0x20) == 0) {
    0x00014fcc beq 0x15028                               |         goto label_1;
                                                         |     }
    0x00014fd0 ldr r2, [pc, 0x78]                        |     r2 = *(0x1504c);
    0x00014fd4 ldr r3, [r3, r2]                          |     r3 = *((r3 + r2));
    0x00014fd8 ldr r7, [r3]                              |     r7 = *(r3);
    0x00014fdc bl 0x8204                                 |     getpid ();
    0x00014fe0 ldr r3, [pc, 0x6c]                        |     r3 = *(0x15050);
    0x00014fe4 ldr r1, [pc, 0x6c]                        |     r1 = *(0x15054);
    0x00014fe8 add r3, pc, r3                            |     r3 = pc + r3;
    0x00014fec str r3, [sp]                              |     *(sp) = r3;
    0x00014ff0 ldr r3, [pc, 0x64]                        |     r3 = *(0x15058);
    0x00014ff4 add r1, pc, r1                            |     r1 = pc + r1;
    0x00014ff8 add r3, pc, r3                            |     r3 = pc + r3;
    0x00014ffc mov r2, r0                                |     r2 = r0;
    0x00015000 mov r0, r7                                |     r0 = r7;
    0x00015004 bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x00015008 cmp r5, 0                                 |     
                                                         |     if (r5 != 0) {
    0x0001500c bne 0x1503c                               |         goto label_2;
                                                         |     }
    0x00015010 ldr r2, [pc, 0x48]                        |     r2 = *(0x1505c);
    0x00015014 add r2, pc, r2                            |     r2 = pc + r2;
                                                         |     do {
    0x00015018 ldr r1, [pc, 0x44]                        |         r1 = *(0x15060);
    0x0001501c mov r0, r4                                |         r0 = r4;
    0x00015020 add r1, pc, r1                            |         r1 = pc + r1;
    0x00015024 bl 0x13354                                |         fcn_00013354 (r0);
                                                         | label_1:
    0x00015028 mov r0, 0                                 |         r0 = 0;
    0x0001502c str r5, [r4, 0x20]                        |         *((r4 + 0x20)) = r5;
    0x00015030 str r6, [r4, 0x24]                        |         *((r4 + 0x24)) = r6;
                                                         | label_0:
    0x00015034 add sp, sp, 0xc                           |         
    0x00015038 pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_2:
    0x0001503c ldr r2, [pc, 0x24]                        |         r2 = *(0x15064);
    0x00015040 add r2, pc, r2                            |         r2 = pc + r2;
    0x00015044 b 0x15018                                 |         
                                                         |     } 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/lib/libmount.so.1.1.0 @ 0x15130 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00015130 ()                                  | void fcn_00015130 (int32_t arg1, uint32_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;
                                                             |     char * format;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_44h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00015130 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00015134 ldr r5, [pc, 0x5ac]                           |     r5 = *(0x156e4);
    0x00015138 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001513c add r5, pc, r5                                |     r5 = pc + r5;
    0x00015140 sub sp, sp, 0x54                              |     
                                                             |     if (r4 == r0) {
    0x00015144 bne 0x1516c                                   |         
    0x00015148 ldr r3, [pc, 0x59c]                           |         
    0x0001514c ldr r1, [pc, 0x59c]                           |         r1 = *(0x156ec);
    0x00015150 ldr r0, [pc, 0x59c]                           |         r0 = *(0x156f0);
    0x00015154 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015158 add r3, r3, 0x37                              |         r3 = 0x1571f;
    0x0001515c ldr r2, [pc, 0x594]                           |         r2 = *(0x156f4);
    0x00015160 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015164 add r0, pc, r0                                |         r0 = pc + r0;
    0x00015168 bl 0x908c                                     |         assert ();
                                                             |     }
    0x0001516c ldr r3, [pc, 0x588]                           |     r3 = *(0x156f8);
    0x00015170 cmp r1, 0                                     |     
    0x00015174 mov r7, r1                                    |     r7 = r1;
    0x00015178 mov r8, r2                                    |     r8 = r2;
    0x0001517c ldr r6, [r5, r3]                              |     r6 = *((r5 + r3));
                                                             |     if (r1 != 0) {
    0x00015180 beq 0x151fc                                   |         
    0x00015184 ldr r3, [r6]                                  |         r3 = *(r6);
    0x00015188 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x0001518c beq 0x151dc                                   |             
    0x00015190 ldr r3, [pc, 0x568]                           |             r3 = *(0x156fc);
    0x00015194 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00015198 ldr sb, [r3]                                  |             sb = *(0x156fc);
    0x0001519c bl 0x8204                                     |             getpid ();
    0x000151a0 ldr r3, [pc, 0x55c]                           |             r3 = *(0x15700);
    0x000151a4 ldr r1, [pc, 0x55c]                           |             r1 = *(0x15704);
    0x000151a8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000151ac str r3, [sp]                                  |             *(sp) = r3;
    0x000151b0 ldr r3, [pc, 0x554]                           |             r3 = *(0x15708);
    0x000151b4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000151b8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000151bc mov r2, r0                                    |             r2 = r0;
    0x000151c0 mov r0, sb                                    |             r0 = sb;
    0x000151c4 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000151c8 ldr r1, [pc, 0x540]                           |             r1 = *(0x1570c);
    0x000151cc mov r2, r7                                    |             r2 = r7;
    0x000151d0 add r1, pc, r1                                |             r1 = pc + r1;
    0x000151d4 mov r0, r4                                    |             r0 = r4;
    0x000151d8 bl 0x13354                                    |             fcn_00013354 (r0);
                                                             |         }
    0x000151dc ldr r1, [pc, 0x530]                           |         r1 = *(0x15710);
    0x000151e0 mov r0, r7                                    |         r0 = r7;
    0x000151e4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000151e8 bl 0x8cb4                                     |         r0 = strcmp (r0, r1);
    0x000151ec cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000151f0 movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x000151f4 strne r3, [r4]                                |             *(r4) = r3;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000151f8 bne 0x15260                                   |             goto label_3;
                                                             |         }
                                                             |     }
    0x000151fc mov r3, 2                                     |     r3 = 2;
    0x00015200 str r3, [r4]                                  |     *(r4) = r3;
    0x00015204 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00015208 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x0001520c beq 0x1529c                                   |         goto label_4;
                                                             |     }
    0x00015210 ldr r3, [pc, 0x4e8]                           |     r3 = *(0x156fc);
    0x00015214 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00015218 ldr r7, [r3]                                  |     r7 = *(0x156fc);
    0x0001521c bl 0x8204                                     |     getpid ();
    0x00015220 ldr r3, [pc, 0x4f0]                           |     r3 = *(0x15714);
    0x00015224 ldr r1, [pc, 0x4f0]                           |     r1 = *(0x15718);
    0x00015228 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001522c str r3, [sp]                                  |     *(sp) = r3;
    0x00015230 ldr r3, [pc, 0x4e8]                           |     r3 = *(0x1571c);
    0x00015234 add r1, pc, r1                                |     r1 = pc + r1;
    0x00015238 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001523c mov r2, r0                                    |     r2 = r0;
    0x00015240 mov r0, r7                                    |     r0 = r7;
    0x00015244 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00015248 ldr r1, [pc, 0x4d4]                           |     r1 = *(0x15720);
    0x0001524c mov r0, r4                                    |     r0 = r4;
    0x00015250 add r1, pc, r1                                |     r1 = pc + r1;
    0x00015254 bl 0x13354                                    |     fcn_00013354 (r0);
    0x00015258 ldr r7, [pc, 0x4c8]                           |     r7 = *(0x15724);
    0x0001525c add r7, pc, r7                                |     r7 = pc + r7;
                                                             |     do {
                                                             | label_3:
    0x00015260 mov r1, r7                                    |         r1 = r7;
    0x00015264 mov r0, r4                                    |         r0 = r4;
    0x00015268 bl 0x8354                                     |         r0 = fcn_00008354 ();
    0x0001526c subs sb, r0, 0                                |         sb = r0 - 0;
                                                             |         if (sb == r0) {
    0x00015270 beq 0x152a8                                   |             goto label_5;
                                                             |         }
    0x00015274 ldr r1, [pc, 0x4b0]                           |         r1 = *(0x15728);
    0x00015278 mov r3, 1                                     |         r3 = 1;
    0x0001527c str r3, [r4]                                  |         *(r4) = r3;
    0x00015280 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015284 mov r0, r4                                    |         r0 = r4;
    0x00015288 bl 0x8354                                     |         r0 = fcn_00008354 ();
    0x0001528c mov sb, r0                                    |         sb = r0;
                                                             | label_0:
    0x00015290 mov r0, sb                                    |         r0 = sb;
    0x00015294 add sp, sp, 0x54                              |         
    0x00015298 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_4:
    0x0001529c ldr r7, [pc, 0x48c]                           |         r7 = *(0x1572c);
    0x000152a0 add r7, pc, r7                                |         r7 = pc + r7;
    0x000152a4 b 0x15260                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x000152a8 mov r0, r4                                    |     r0 = r4;
    0x000152ac bl 0xf714                                     |     r0 = fcn_0000f714 (r0);
    0x000152b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000152b4 beq 0x15290                                   |         goto label_0;
                                                             |     }
    0x000152b8 ldr r3, [r6]                                  |     r3 = *(r6);
    0x000152bc tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000152c0 beq 0x1530c                                   |         
    0x000152c4 ldr r3, [pc, 0x434]                           |         r3 = *(0x156fc);
    0x000152c8 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000152cc ldr r7, [r3]                                  |         r7 = *(0x156fc);
    0x000152d0 bl 0x8204                                     |         getpid ();
    0x000152d4 ldr r3, [pc, 0x458]                           |         r3 = *(0x15730);
    0x000152d8 ldr r1, [pc, 0x458]                           |         r1 = "stale_lock_file__";
    0x000152dc add r3, pc, r3                                |         r3 = pc + r3;
    0x000152e0 str r3, [sp]                                  |         *(sp) = r3;
    0x000152e4 ldr r3, [pc, 0x450]                           |         r3 = *(0x15738);
    0x000152e8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000152ec add r3, pc, r3                                |         r3 = pc + r3;
    0x000152f0 mov r2, r0                                    |         r2 = r0;
    0x000152f4 mov r0, r7                                    |         r0 = r7;
    0x000152f8 bl 0x8798                                     |         fprintf (r0, "stale_lock_file__", r2, r3)
    0x000152fc ldr r1, [pc, 0x43c]                           |         r1 = *(0x1573c);
    0x00015300 mov r0, r4                                    |         r0 = r4;
    0x00015304 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015308 bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x0001530c mov r0, r4                                    |     r0 = r4;
    0x00015310 bl 0x87f8                                     |     r0 = fcn_000087f8 ();
    0x00015314 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00015318 beq 0x15290                                   |         goto label_0;
                                                             |     }
    0x0001531c cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00015320 movne sl, 0                                   |         sl = 0;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x00015324 movne r7, sl                                  |         r7 = sl;
                                                             |     }
                                                             |     if (r8 != 0) {
    0x00015328 bne 0x1537c                                   |         goto label_6;
                                                             |     }
    0x0001532c bl 0x19934                                    |     r0 = fcn_00019934 ();
    0x00015330 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x00015334 beq 0x15290                                   |         goto label_0;
                                                             |     }
    0x00015338 bl 0x17f2c                                    |     r0 = fcn_00017f2c (r0);
    0x0001533c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00015340 bne 0x15290                                   |         goto label_0;
                                                             |     }
    0x00015344 bl 0x90b0                                     |     r0 = fcn_000090b0 ();
    0x00015348 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x0001534c mvneq sb, 0xb                                 |         sb = ~0xb;
                                                             |         goto label_7;
                                                             |     }
                                                             |     if (r8 == r0) {
                                                             | label_7:
    0x00015350 beq 0x15290                                   |         goto label_0;
                                                             |     }
    0x00015354 mov r3, 3                                     |     r3 = 3;
    0x00015358 str r3, [r8]                                  |     *(r8) = r3;
    0x0001535c ldr r2, [r4, 0x24]                            |     r2 = *((r4 + 0x24));
    0x00015360 ldr r1, [r4, 0x20]                            |     r1 = *((r4 + 0x20));
    0x00015364 bl 0x14f9c                                    |     fcn_00014f9c (r0, r1);
    0x00015368 mov r1, r7                                    |     r1 = r7;
    0x0001536c mov r0, r8                                    |     r0 = r8;
    0x00015370 bl 0x8354                                     |     fcn_00008354 ();
    0x00015374 mov sl, 1                                     |     sl = 1;
    0x00015378 mov r7, r0                                    |     r7 = r0;
                                                             | label_6:
    0x0001537c ldr r3, [r6]                                  |     r3 = *(r6);
    0x00015380 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00015384 beq 0x153d0                                   |         
    0x00015388 ldr r3, [pc, 0x370]                           |         r3 = *(0x156fc);
    0x0001538c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00015390 ldr fp, [r3]                                  |         fp = *(0x156fc);
    0x00015394 bl 0x8204                                     |         getpid ();
    0x00015398 ldr r3, [pc, 0x3a4]                           |         r3 = *(0x15740);
    0x0001539c ldr r1, [pc, 0x3a4]                           |         r1 = *(0x15744);
    0x000153a0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000153a4 str r3, [sp]                                  |         *(sp) = r3;
    0x000153a8 ldr r3, [pc, 0x39c]                           |         r3 = *(0x15748);
    0x000153ac add r1, pc, r1                                |         r1 = pc + r1;
    0x000153b0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000153b4 mov r2, r0                                    |         r2 = r0;
    0x000153b8 mov r0, fp                                    |         r0 = fp;
    0x000153bc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000153c0 ldr r1, [pc, 0x388]                           |         r1 = *(0x1574c);
    0x000153c4 mov r0, r4                                    |         r0 = r4;
    0x000153c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000153cc bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x000153d0 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x000153d4 bne 0x15420                                   |         
    0x000153d8 mov r1, 1                                     |         r1 = 1;
    0x000153dc add r0, sp, 0x38                              |         r0 += var_38h;
    0x000153e0 bl 0x8588                                     |         fcn_00008588 ();
    0x000153e4 ldr r3, [pc, 0x368]                           |         r3 = *(0x15750);
    0x000153e8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000153ec str r3, [sp, 0x20]                            |         var_20h = r3;
    0x000153f0 ldr r3, [pc, 0x360]                           |         r3 = *(0x15754);
    0x000153f4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000153f8 str r3, [sp, 0x24]                            |         format = r3;
    0x000153fc ldr r3, [pc, 0x358]                           |         r3 = *(0x15758);
    0x00015400 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015404 str r3, [sp, 0x28]                            |         var_28h = r3;
                                                             | label_1:
    0x00015408 add r2, sp, 0x30                              |         r2 += var_30h;
    0x0001540c add r1, sp, 0x38                              |         r1 += var_38h;
    0x00015410 mov r0, r8                                    |         r0 = r8;
    0x00015414 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00015418 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001541c beq 0x15434                                   |             goto label_8;
                                                             |         }
                                                             |     }
    0x00015420 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00015424 beq 0x15290                                   |         goto label_0;
                                                             |     }
    0x00015428 mov r0, r8                                    |     r0 = r8;
    0x0001542c bl 0x8bb8                                     |     fcn_00008bb8 ();
    0x00015430 b 0x15290                                     |     goto label_0;
                                                             | label_8:
    0x00015434 ldr r7, [sp, 0x30]                            |     r7 = var_30h;
    0x00015438 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0001543c beq 0x15408                                   |         goto label_1;
                                                             |     }
    0x00015440 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00015444 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00015448 beq 0x15494                                   |         
    0x0001544c ldr r3, [pc, 0x2ac]                           |         r3 = *(0x156fc);
    0x00015450 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00015454 ldr fp, [r3]                                  |         fp = *(0x156fc);
    0x00015458 bl 0x8204                                     |         getpid ();
    0x0001545c ldr r3, [pc, 0x2fc]                           |         r3 = *(0x1575c);
    0x00015460 ldr r1, [pc, 0x2fc]                           |         r1 = *(0x15760);
    0x00015464 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015468 str r3, [sp]                                  |         *(sp) = r3;
    0x0001546c ldr r3, [pc, 0x2f4]                           |         r3 = *(0x15764);
    0x00015470 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015474 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015478 mov r2, r0                                    |         r2 = r0;
    0x0001547c mov r0, fp                                    |         r0 = fp;
    0x00015480 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00015484 ldr r1, [pc, 0x2e0]                           |         r1 = *(0x15768);
    0x00015488 mov r0, r4                                    |         r0 = r4;
    0x0001548c add r1, pc, r1                                |         r1 = pc + r1;
    0x00015490 bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x00015494 mov r0, r7                                    |     r0 = r7;
    0x00015498 bl 0x80cc                                     |     fcn_000080cc ();
    0x0001549c str r0, [sp, 8]                               |     var_8h = r0;
    0x000154a0 mov r0, r7                                    |     r0 = r7;
    0x000154a4 bl 0x81d4                                     |     fcn_000081d4 ();
    0x000154a8 str r0, [sp, 0xc]                             |     var_ch = r0;
    0x000154ac mov r0, r7                                    |     r0 = r7;
    0x000154b0 bl 0x87bc                                     |     fcn_000087bc ();
    0x000154b4 str r0, [sp, 0x10]                            |     var_10h = r0;
    0x000154b8 mov r0, r7                                    |     r0 = r7;
    0x000154bc bl 0x8af8                                     |     fcn_00008af8 ();
    0x000154c0 str r0, [sp, 0x14]                            |     var_14h = r0;
    0x000154c4 mov r0, r7                                    |     r0 = r7;
    0x000154c8 bl 0x8f54                                     |     fcn_00008f54 ();
    0x000154cc ldr r2, [sp, 8]                               |     r2 = var_8h;
    0x000154d0 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x000154d4 cmp r2, 0                                     |     
    0x000154d8 clz r3, r3                                    |     r3 &= r3;
    0x000154dc lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r2 != 0) {
    0x000154e0 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x000154e4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000154e8 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x000154ec cmp r3, 0                                     |     
    0x000154f0 mov fp, r0                                    |     
                                                             |     if (r3 != 0) {
    0x000154f4 bne 0x15408                                   |         goto label_1;
                                                             |     }
    0x000154f8 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x000154fc ldr r2, [sp, 0x10]                            |     r2 = var_10h;
    0x00015500 cmp r3, 0                                     |     
    0x00015504 cmpeq r2, 0                                   |     __asm ("cmpeq r2, 0");
                                                             |     if (r3 == 0) {
    0x00015508 beq 0x15408                                   |         goto label_1;
                                                             |     }
    0x0001550c add r3, sp, 0x44                              |     r3 += var_44h;
    0x00015510 mov r0, r3                                    |     r0 = r3;
    0x00015514 mov r1, 1                                     |     r1 = 1;
    0x00015518 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0001551c bl 0x8588                                     |     fcn_00008588 ();
    0x00015520 add r3, sp, 0x34                              |     r3 += var_34h;
    0x00015524 str r3, [sp, 0x18]                            |     var_18h = r3;
                                                             |     do {
                                                             | label_2:
    0x00015528 ldr r2, [sp, 0x18]                            |         r2 = var_18h;
    0x0001552c ldr r1, [sp, 0x1c]                            |         r1 = var_1ch;
    0x00015530 mov r0, r4                                    |         r0 = r4;
    0x00015534 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00015538 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001553c bne 0x155ac                                   |             goto label_9;
                                                             |         }
    0x00015540 ldr r0, [sp, 0x34]                            |         r0 = var_34h;
    0x00015544 bl 0x8f54                                     |         fcn_00008f54 ();
    0x00015548 ldr r2, [sp, 0x34]                            |         r2 = var_34h;
    0x0001554c ldr r3, [r2, 0x74]                            |         r3 = *((r2 + 0x74));
    0x00015550 str r2, [sp, 0x2c]                            |         var_2ch = r2;
    0x00015554 lsr r3, r3, 5                                 |         r3 >>= 5;
    0x00015558 eor r3, r3, 1                                 |         r3 ^= 1;
    0x0001555c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00015560 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00015564 andne r3, r3, 1                               |             r3 &= 1;
                                                             |         }
    0x00015568 cmp r3, 0                                     |         
    0x0001556c beq 0x15528                                   |         
                                                             |     } while (r3 == 0);
    0x00015570 mov r1, fp                                    |     r1 = fp;
    0x00015574 bl 0x8cb4                                     |     strcmp (r0, r1);
    0x00015578 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x0001557c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00015580 bne 0x15528                                   |         goto label_2;
                                                             |     }
    0x00015584 ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00015588 mov r0, r2                                    |     r0 = r2;
    0x0001558c bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x00015590 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00015594 beq 0x15528                                   |         goto label_2;
                                                             |     }
    0x00015598 ldr r1, [sp, 8]                               |     r1 = var_8h;
    0x0001559c ldr r0, [sp, 0x34]                            |     r0 = var_34h;
    0x000155a0 bl 0x8600                                     |     r0 = fcn_00008600 ();
    0x000155a4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000155a8 beq 0x15528                                   |         goto label_2;
                                                             |     }
                                                             | label_9:
    0x000155ac ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000155b0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000155b4 beq 0x15408                                   |         goto label_1;
                                                             |     }
    0x000155b8 ldr r3, [r6]                                  |     r3 = *(r6);
    0x000155bc tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000155c0 beq 0x1560c                                   |         
    0x000155c4 ldr r3, [pc, 0x134]                           |         r3 = *(0x156fc);
    0x000155c8 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000155cc ldr fp, [r3]                                  |         fp = *(0x156fc);
    0x000155d0 bl 0x8204                                     |         getpid ();
    0x000155d4 ldr r3, [pc, 0x194]                           |         r3 = *(0x1576c);
    0x000155d8 ldr r1, [pc, 0x194]                           |         r1 = *(0x15770);
    0x000155dc add r3, pc, r3                                |         r3 = pc + r3;
    0x000155e0 str r3, [sp]                                  |         *(sp) = r3;
    0x000155e4 ldr r3, [pc, 0x18c]                           |         r3 = *(0x15774);
    0x000155e8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000155ec add r3, pc, r3                                |         r3 = pc + r3;
    0x000155f0 mov r2, r0                                    |         r2 = r0;
    0x000155f4 mov r0, fp                                    |         r0 = fp;
    0x000155f8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000155fc ldr r1, [pc, 0x178]                           |         r1 = *(0x15778);
    0x00015600 mov r0, r4                                    |         r0 = r4;
    0x00015604 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015608 bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x0001560c ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x00015610 ldr r0, [sp, 0x34]                            |     r0 = var_34h;
    0x00015614 bl 0x8c0c                                     |     fcn_00008c0c ();
    0x00015618 ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x0001561c ldr r0, [sp, 0x34]                            |     r0 = var_34h;
    0x00015620 bl 0x8a44                                     |     fcn_00008a44 ();
    0x00015624 mov r0, r7                                    |     r0 = r7;
    0x00015628 ldr fp, [sp, 0x34]                            |     fp = var_34h;
    0x0001562c bl 0x911c                                     |     r0 = fcn_0000911c ();
    0x00015630 mov r1, r0                                    |     r1 = r0;
    0x00015634 mov r0, fp                                    |     r0 = fp;
    0x00015638 bl 0x8dd4                                     |     fcn_00008dd4 ();
    0x0001563c ldr r2, [sp, 0x34]                            |     r2 = var_34h;
    0x00015640 ldr r3, [r2, 0x74]                            |     r3 = *((r2 + 0x74));
    0x00015644 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00015648 str r3, [r2, 0x74]                            |     *((r2 + 0x74)) = r3;
    0x0001564c ldr r3, [r6]                                  |     r3 = *(r6);
    0x00015650 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00015654 beq 0x156a0                                   |         
    0x00015658 ldr r3, [pc, 0xa0]                            |         r3 = *(0x156fc);
    0x0001565c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00015660 ldr r7, [r3]                                  |         r7 = *(0x156fc);
    0x00015664 bl 0x8204                                     |         getpid ();
    0x00015668 ldr r3, [pc, 0x110]                           |         r3 = *(0x1577c);
    0x0001566c ldr r1, [pc, 0x110]                           |         r1 = *(0x15780);
    0x00015670 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015674 str r3, [sp]                                  |         *(sp) = r3;
    0x00015678 ldr r3, [pc, 0x108]                           |         r3 = *(0x15784);
    0x0001567c add r1, pc, r1                                |         r1 = pc + r1;
    0x00015680 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015684 mov r2, r0                                    |         r2 = r0;
    0x00015688 mov r0, r7                                    |         r0 = r7;
    0x0001568c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00015690 ldr r1, [pc, 0xf4]                            |         r1 = *(0x15788);
    0x00015694 mov r0, r4                                    |         r0 = r4;
    0x00015698 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001569c bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x000156a0 ldr r3, [r6]                                  |     r3 = *(r6);
    0x000156a4 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x000156a8 beq 0x15408                                   |         goto label_1;
                                                             |     }
    0x000156ac ldr r3, [pc, 0x4c]                            |     r3 = *(0x156fc);
    0x000156b0 ldr r7, [r5, r3]                              |     r7 = *((r5 + r3));
    0x000156b4 ldr fp, [r7]                                  |     fp = *(r7);
    0x000156b8 bl 0x8204                                     |     getpid ();
    0x000156bc ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x000156c0 ldr r1, [sp, 0x24]                            |     r1 = format;
    0x000156c4 str r3, [sp]                                  |     *(sp) = r3;
    0x000156c8 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x000156cc mov r2, r0                                    |     r2 = r0;
    0x000156d0 mov r0, fp                                    |     r0 = fp;
    0x000156d4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000156d8 ldr r1, [r7]                                  |     r1 = *(r7);
    0x000156dc ldr r0, [sp, 0x34]                            |     r0 = var_34h;
    0x000156e0 bl 0x86f0                                     |     fcn_000086f0 ();
    0x000156e4 b 0x15408                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x15798 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00015798 ()                  | void fcn_00015798 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00015798 push {r1, r2, r3}             |     
    0x0001579c ldr r3, [pc, 0xa4]            |     r3 = *(0x15844);
    0x000157a0 push {r0, r1, r2, r4, lr}     |     
    0x000157a4 ldr r1, [pc, 0xa0]            |     r1 = "per__s";
    0x000157a8 add r3, pc, r3                |     r3 = pc + r3;
    0x000157ac subs r2, r0, 0                |     r2 = r0 - 0;
    0x000157b0 ldr r4, [r3, r1]              |     r4 = *(0x15844);
                                             |     if (r2 != r0) {
    0x000157b4 beq 0x157dc                   |         
    0x000157b8 ldr r1, [pc, 0x90]            |         r1 = *(0x1584c);
    0x000157bc ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x000157c0 ldr r3, [r3]                  |         r3 = *(r3);
    0x000157c4 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x000157c8 bne 0x157dc                   |             goto label_1;
                                             |         }
    0x000157cc ldr r1, [pc, 0x80]            |         r1 = *(0x15850);
    0x000157d0 ldr r0, [r4]                  |         r0 = *(r4);
    0x000157d4 add r1, pc, r1                |         r1 = pc + r1;
    0x000157d8 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x000157dc add r2, sp, 0x18              |     r2 += var_18h;
    0x000157e0 ldr r1, [sp, 0x14]            |     r1 = format;
    0x000157e4 ldr r0, [r4]                  |     r0 = *(r4);
    0x000157e8 str r2, [sp, 4]               |     var_4h = r2;
    0x000157ec bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x000157f0 ldr r1, [r4]                  |     r1 = *(r4);
    0x000157f4 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x000157f8 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000157fc beq 0x1583c                   |         goto label_2;
                                             |     }
    0x00015800 ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x00015804 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00015808 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x0001580c bhs 0x15830                   |         goto label_3;
                                             |     }
    0x00015810 add r2, r3, 1                 |     r2 = r3 + 1;
    0x00015814 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00015818 mov r2, 0xa                   |     r2 = 0xa;
    0x0001581c strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x00015820 add sp, sp, 0xc               |         
    0x00015824 pop {r4, lr}                  |         
    0x00015828 add sp, sp, 0xc               |         
    0x0001582c bx lr                         |         return;
                                             | label_3:
    0x00015830 mov r0, 0xa                   |         r0 = 0xa;
    0x00015834 bl 0x91dc                     |         fputc_unlocked ();
    0x00015838 b 0x15820                     |         
                                             |     } while (1);
                                             | label_2:
    0x0001583c mov r0, 0xa                   |     r0 = 0xa;
    0x00015840 bl 0x8ea0                     |     fputc (r0, r1);
    0x00015844 b 0x15820                     |     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/lib/libmount.so.1.1.0 @ 0x158e4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000158e4 ()                                  | void fcn_000158e4 (uint32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000158e4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000158e8 subs r4, r1, 0                                |     r4 = r1 - 0;
    0x000158ec sub sp, sp, 0x1c                              |     
                                                             |     if (r4 != r1) {
    0x000158f0 bne 0x15914                                   |         goto label_3;
                                                             |     }
    0x000158f4 ldr r3, [pc, 0x1ac]                           |     r3 = *(0x15aa4);
    0x000158f8 ldr r1, [pc, 0x1ac]                           |     r1 = *(0x15aa8);
    0x000158fc ldr r0, [pc, 0x1ac]                           |     r0 = *(0x15aac);
    0x00015900 ldr r2, [pc, 0x1ac]                           |     r2 = *(0x15ab0);
    0x00015904 add r3, pc, r3                                |     r3 = pc + r3;
    0x00015908 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001590c add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
    0x00015910 bl 0x908c                                     |         r0 = assert ();
                                                             | label_3:
    0x00015914 cmp r0, 0                                     |         
    0x00015918 mov fp, r0                                    |         
                                                             |         if (r0 != 0) {
    0x0001591c bne 0x15940                                   |             goto label_4;
                                                             |         }
    0x00015920 ldr r3, [pc, 0x190]                           |         r3 = *(0x15ab4);
    0x00015924 ldr r1, [pc, 0x190]                           |         r1 = *(0x15ab8);
    0x00015928 ldr r0, [pc, 0x190]                           |         r0 = *(0x15abc);
    0x0001592c add r3, pc, r3                                |         r3 = pc + r3;
    0x00015930 mov r2, 0x1a4                                 |         r2 = 0x1a4;
    0x00015934 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015938 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001593c b 0x15910                                     |         
                                                             |     } while (1);
                                                             | label_4:
    0x00015940 mov r0, r4                                    |     r0 = r4;
    0x00015944 bl 0x86d8                                     |     fcn_000086d8 ();
    0x00015948 str r0, [sp, 0x14]                            |     var_14h = r0;
    0x0001594c mov r0, r4                                    |     r0 = r4;
    0x00015950 bl 0x8c90                                     |     r0 = fcn_00008c90 ();
    0x00015954 mov sl, r0                                    |     sl = r0;
    0x00015958 mov r0, r4                                    |     r0 = r4;
    0x0001595c bl 0x8de0                                     |     r0 = fcn_00008de0 ();
    0x00015960 mov r8, r0                                    |     r8 = r0;
    0x00015964 mov r0, r4                                    |     r0 = r4;
    0x00015968 bl 0x86fc                                     |     fcn_000086fc ();
    0x0001596c cmp sl, 0                                     |     
    0x00015970 str r0, [sp, 0x10]                            |     var_10h = r0;
                                                             |     if (sl == 0) {
    0x00015974 beq 0x15a7c                                   |         goto label_5;
                                                             |     }
    0x00015978 mov r0, sl                                    |     r0 = sl;
    0x0001597c bl 0x2a7d4                                    |     r0 = fcn_0002a7d4 (r0);
    0x00015980 mov r7, r0                                    |     r7 = r0;
                                                             |     do {
    0x00015984 mov r0, r4                                    |         r0 = r4;
    0x00015988 bl 0x81d4                                     |         fcn_000081d4 ();
    0x0001598c bl 0x2a7d4                                    |         fcn_0002a7d4 (r0);
    0x00015990 cmp r8, 0                                     |         
    0x00015994 mov sb, r0                                    |         sb = r0;
                                                             |         if (r8 == 0) {
    0x00015998 beq 0x15a88                                   |             goto label_6;
                                                             |         }
    0x0001599c mov r0, r8                                    |         r0 = r8;
    0x000159a0 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x000159a4 mov r6, r0                                    |         r6 = r0;
                                                             | label_0:
    0x000159a8 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x000159ac cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000159b0 beq 0x15a94                                   |             goto label_7;
                                                             |         }
    0x000159b4 mov r0, r3                                    |         r0 = r3;
    0x000159b8 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x000159bc mov r5, r0                                    |         r5 = r0;
                                                             | label_1:
    0x000159c0 cmp r7, 0                                     |         
    0x000159c4 cmpne sb, 0                                   |         __asm ("cmpne sb, 0");
                                                             |         if (r7 == 0) {
    0x000159c8 beq 0x15aa0                                   |             goto label_8;
                                                             |         }
    0x000159cc cmp r6, 0                                     |         
    0x000159d0 cmpne r5, 0                                   |         __asm ("cmpne r5, 0");
                                                             |         if (r6 == 0) {
    0x000159d4 beq 0x15aa0                                   |             goto label_8;
                                                             |         }
    0x000159d8 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x000159dc cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000159e0 beq 0x159f0                                   |             
    0x000159e4 mov r1, fp                                    |             r1 = fp;
    0x000159e8 mov r0, r3                                    |             r0 = r3;
    0x000159ec bl 0x90c8                                     |             fputs (r0, r1);
                                                             |         }
    0x000159f0 mov r0, r4                                    |         r0 = r4;
    0x000159f4 bl 0x8c48                                     |         fcn_00008c48 ();
    0x000159f8 str r0, [sp, 0x14]                            |         var_14h = r0;
    0x000159fc mov r0, r4                                    |         r0 = r4;
    0x00015a00 bl 0x9050                                     |         fcn_00009050 ();
    0x00015a04 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00015a08 ldr r1, [pc, 0xb4]                            |         r1 = *(0x15ac0);
    0x00015a0c str r3, [sp, 8]                               |         var_8h = r3;
    0x00015a10 str r5, [sp, 4]                               |         var_4h = r5;
    0x00015a14 str r6, [sp]                                  |         *(sp) = r6;
    0x00015a18 mov r3, sb                                    |         r3 = sb;
    0x00015a1c mov r2, r7                                    |         r2 = r7;
    0x00015a20 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015a24 str r0, [sp, 0xc]                             |         var_ch = r0;
    0x00015a28 mov r0, fp                                    |         r0 = fp;
    0x00015a2c bl 0x8798                                     |         r0 = fprintf (r0, r1, r2, r3, r4, r5, r6)
    0x00015a30 and r4, r0, r0, asr 31                        |         r4 = r0 & (r0 >> 31);
                                                             | label_2:
    0x00015a34 cmp sl, 0                                     |         
                                                             |         if (sl != 0) {
    0x00015a38 beq 0x15a44                                   |             
    0x00015a3c mov r0, r7                                    |             r0 = r7;
    0x00015a40 bl 0x91c4                                     |             free (r0);
                                                             |         }
    0x00015a44 mov r0, sb                                    |         r0 = sb;
    0x00015a48 bl 0x91c4                                     |         free (r0);
    0x00015a4c cmp r8, 0                                     |         
                                                             |         if (r8 != 0) {
    0x00015a50 beq 0x15a5c                                   |             
    0x00015a54 mov r0, r6                                    |             r0 = r6;
    0x00015a58 bl 0x91c4                                     |             free (r0);
                                                             |         }
    0x00015a5c ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00015a60 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00015a64 beq 0x15a70                                   |             
    0x00015a68 mov r0, r5                                    |             r0 = r5;
    0x00015a6c bl 0x91c4                                     |             free (r0);
                                                             |         }
    0x00015a70 mov r0, r4                                    |         r0 = r4;
    0x00015a74 add sp, sp, 0x1c                              |         
    0x00015a78 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_5:
    0x00015a7c ldr r7, [pc, 0x44]                            |         r7 = *(0x15ac4);
    0x00015a80 add r7, pc, r7                                |         r7 = pc + r7;
    0x00015a84 b 0x15984                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x00015a88 ldr r6, [pc, 0x3c]                            |     r6 = *(0x15ac8);
    0x00015a8c add r6, pc, r6                                |     r6 = pc + r6;
    0x00015a90 b 0x159a8                                     |     goto label_0;
                                                             | label_7:
    0x00015a94 ldr r5, [pc, 0x34]                            |     r5 = *(0x15acc);
    0x00015a98 add r5, pc, r5                                |     r5 = pc + r5;
    0x00015a9c b 0x159c0                                     |     goto label_1;
                                                             | label_8:
    0x00015aa0 mvn r4, 0xb                                   |     r4 = ~0xb;
    0x00015aa4 b 0x15a34                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x15ad4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00015ad4 ()                                  | void fcn_00015ad4 (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     char * format;
                                                             |     char * var_14h;
                                                             |     char * var_18h;
                                                             |     void * ptr;
                                                             |     char * oldpath;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_a4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00015ad4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00015ad8 ldr sl, [pc, 0x544]                           |     sl = "loopdev";
    0x00015adc sub sp, sp, 0xa4                              |     
    0x00015ae0 mov r3, 0                                     |     r3 = 0;
    0x00015ae4 subs r8, r1, 0                                |     r8 = r1 - 0;
    0x00015ae8 add sl, pc, sl                                |     sl = pc + sl;
    0x00015aec str r3, [sp, 0x24]                            |     oldpath = r3;
                                                             |     if (r8 == r1) {
    0x00015af0 beq 0x1601c                                   |         goto label_10;
                                                             |     }
    0x00015af4 ldr r3, [r0, 8]                               |     r3 = *((r0 + 8));
    0x00015af8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00015afc beq 0x1601c                                   |         goto label_10;
                                                             |     }
    0x00015b00 ldr r3, [pc, 0x520]                           |     r3 = "loopdev";
    0x00015b04 mov r5, r0                                    |     r5 = r0;
    0x00015b08 ldr fp, [sl, r3]                              |     fp = *((sl + r3));
    0x00015b0c ldr r3, [fp]                                  |     r3 = *(fp);
    0x00015b10 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x00015b14 beq 0x15b64                                   |         
    0x00015b18 ldr r3, [pc, 0x50c]                           |         r3 = *(0x16028);
    0x00015b1c ldr r3, [sl, r3]                              |         r3 = *((sl + r3));
    0x00015b20 ldr r4, [r3]                                  |         r4 = *(0x16028);
    0x00015b24 bl 0x8204                                     |         getpid ();
    0x00015b28 ldr r3, [pc, 0x500]                           |         r3 = *(0x1602c);
    0x00015b2c ldr r1, [pc, 0x500]                           |         r1 = *(0x16030);
    0x00015b30 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015b34 str r3, [sp]                                  |         *(sp) = r3;
    0x00015b38 ldr r3, [pc, 0x4f8]                           |         r3 = *(0x16034);
    0x00015b3c add r1, pc, r1                                |         r1 = pc + r1;
    0x00015b40 add r3, pc, r3                                |         r3 = pc + r3;
    0x00015b44 mov r2, r0                                    |         r2 = r0;
    0x00015b48 mov r0, r4                                    |         r0 = r4;
    0x00015b4c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00015b50 ldr r1, [pc, 0x4e4]                           |         r1 = *(0x16038);
    0x00015b54 ldr r2, [r5, 8]                               |         r2 = *((r5 + 8));
    0x00015b58 add r1, pc, r1                                |         r1 = pc + r1;
    0x00015b5c mov r0, r5                                    |         r0 = r5;
    0x00015b60 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x00015b64 add r1, sp, 0x24                              |     r1 += oldpath;
    0x00015b68 ldr r0, [r5, 8]                               |     r0 = *((r5 + 8));
    0x00015b6c bl 0x19ba4                                    |     r0 = fcn_00019ba4 (r0, r1);
    0x00015b70 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 < r0) {
    0x00015b74 blt 0x15ff8                                   |         goto label_9;
                                                             |     }
    0x00015b78 ldr r1, [pc, 0x4c0]                           |     r1 = *(0x1603c);
    0x00015b7c add r1, pc, r1                                |     r1 = pc + r1;
    0x00015b80 bl 0x8a50                                     |     r0 = fdopen ();
    0x00015b84 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00015b88 beq 0x16004                                   |         goto label_11;
                                                             |     }
    0x00015b8c add r3, sp, 0x2c                              |     r3 += var_2ch;
    0x00015b90 mov r0, r3                                    |     r0 = r3;
    0x00015b94 mov r1, 0                                     |     r1 = 0;
    0x00015b98 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00015b9c bl 0x8588                                     |     fcn_00008588 ();
    0x00015ba0 ldr r3, [r8, 0xc]                             |     r3 = *((r8 + 0xc));
    0x00015ba4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00015ba8 beq 0x15bcc                                   |         
    0x00015bac mov r0, r8                                    |         r0 = r8;
    0x00015bb0 bl 0x9014                                     |         r0 = fcn_00009014 ();
    0x00015bb4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00015bb8 beq 0x15bcc                                   |             goto label_12;
                                                             |         }
    0x00015bbc mov r0, r8                                    |         r0 = r8;
    0x00015bc0 bl 0x9014                                     |         fcn_00009014 ();
    0x00015bc4 mov r1, r6                                    |         r1 = r6;
    0x00015bc8 bl 0x90c8                                     |         fputs (r0, r1);
                                                             |     }
                                                             | label_12:
    0x00015bcc ldr r3, [pc, 0x470]                           |     r3 = *(0x16040);
    0x00015bd0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00015bd4 str r3, [sp, 0x10]                            |     format = r3;
    0x00015bd8 ldr r3, [pc, 0x468]                           |     r3 = *(0x16044);
    0x00015bdc add r3, pc, r3                                |     r3 = pc + r3;
    0x00015be0 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00015be4 ldr r3, [pc, 0x460]                           |     r3 = *(0x16048);
    0x00015be8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00015bec str r3, [sp, 0x18]                            |     var_18h = r3;
                                                             |     do {
                                                             | label_0:
    0x00015bf0 add r2, sp, 0x28                              |         r2 += var_28h;
    0x00015bf4 ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x00015bf8 mov r0, r8                                    |         r0 = r8;
    0x00015bfc bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00015c00 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00015c04 beq 0x15ca4                                   |             
    0x00015c08 ldr r3, [r8, 0xc]                             |             r3 = *((r8 + 0xc));
    0x00015c0c cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x00015c10 beq 0x15c34                                   |                 
    0x00015c14 mov r0, r8                                    |                 r0 = r8;
    0x00015c18 bl 0x8714                                     |                 r0 = fcn_00008714 ();
    0x00015c1c cmp r0, 0                                     |                 
                                                             |                 if (r0 == 0) {
    0x00015c20 beq 0x15c34                                   |                     goto label_13;
                                                             |                 }
    0x00015c24 mov r0, r8                                    |                 r0 = r8;
    0x00015c28 bl 0x8714                                     |                 fcn_00008714 ();
    0x00015c2c mov r1, r6                                    |                 r1 = r6;
    0x00015c30 bl 0x90c8                                     |                 fputs (r0, r1);
                                                             |             }
                                                             | label_13:
    0x00015c34 mov r0, r6                                    |             r0 = r6;
    0x00015c38 bl 0x84f8                                     |             r0 = fflush (r0);
    0x00015c3c cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00015c40 beq 0x15ef8                                   |                 goto label_14;
                                                             |             }
    0x00015c44 bl 0x8f6c                                     |             errno_location ();
    0x00015c48 ldr r3, [fp]                                  |             r3 = *(fp);
    0x00015c4c tst r3, 0x80                                  |             
    0x00015c50 ldr r4, [r0]                                  |             r4 = *(r0);
    0x00015c54 rsb r4, r4, 0                                 |             r4 -= ;
                                                             |             if ((r3 & 0x80) == 0) {
    0x00015c58 beq 0x15ddc                                   |                 goto label_15;
                                                             |             }
    0x00015c5c ldr r3, [pc, 0x3c8]                           |             r3 = *(0x16028);
    0x00015c60 ldr r3, [sl, r3]                              |             r3 = *((sl + r3));
    0x00015c64 ldr r7, [r3]                                  |             r7 = *(0x16028);
    0x00015c68 bl 0x8204                                     |             getpid ();
    0x00015c6c ldr r3, [pc, 0x3dc]                           |             r3 = *(0x1604c);
    0x00015c70 ldr r1, [pc, 0x3dc]                           |             r1 = *(0x16050);
    0x00015c74 add r3, pc, r3                                |             r3 = pc + r3;
    0x00015c78 str r3, [sp]                                  |             *(sp) = r3;
    0x00015c7c ldr r3, [pc, 0x3d4]                           |             r3 = *(0x16054);
    0x00015c80 add r1, pc, r1                                |             r1 = pc + r1;
    0x00015c84 add r3, pc, r3                                |             r3 = pc + r3;
    0x00015c88 mov r2, r0                                    |             r2 = r0;
    0x00015c8c mov r0, r7                                    |             r0 = r7;
    0x00015c90 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00015c94 ldr r1, [pc, 0x3c0]                           |             r1 = *(0x16058);
    0x00015c98 ldr r2, [sp, 0x24]                            |             r2 = oldpath;
    0x00015c9c add r1, pc, r1                                |             r1 = pc + r1;
    0x00015ca0 b 0x15dd4                                     |             goto label_16;
                                                             |         }
    0x00015ca4 ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
    0x00015ca8 ldr sb, [sp, 0x28]                            |         sb = var_28h;
    0x00015cac cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00015cb0 beq 0x15edc                                   |             goto label_17;
                                                             |         }
    0x00015cb4 cmp sb, 0                                     |         
                                                             |         if (sb == 0) {
    0x00015cb8 beq 0x15ef0                                   |             goto label_18;
                                                             |         }
    0x00015cbc mov r0, sb                                    |         r0 = sb;
    0x00015cc0 bl 0x8c90                                     |         fcn_00008c90 ();
    0x00015cc4 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x00015cc8 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00015ccc bne 0x15d58                                   |             goto label_19;
                                                             |         }
                                                             | label_1:
    0x00015cd0 mov r0, sb                                    |         r0 = sb;
    0x00015cd4 bl 0x81d4                                     |         fcn_000081d4 ();
    0x00015cd8 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x00015cdc subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00015ce0 bne 0x15de8                                   |             goto label_20;
                                                             |         }
                                                             | label_2:
    0x00015ce4 mov r0, sb                                    |         r0 = sb;
    0x00015ce8 bl 0x8f54                                     |         fcn_00008f54 ();
    0x00015cec bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x00015cf0 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00015cf4 bne 0x15e18                                   |             goto label_21;
                                                             |         }
                                                             | label_3:
    0x00015cf8 mov r0, sb                                    |         r0 = sb;
    0x00015cfc bl 0x911c                                     |         fcn_0000911c ();
    0x00015d00 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x00015d04 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00015d08 bne 0x15e48                                   |             goto label_22;
                                                             |         }
                                                             | label_5:
    0x00015d0c mov r0, sb                                    |         r0 = sb;
    0x00015d10 bl 0x8af8                                     |         fcn_00008af8 ();
    0x00015d14 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x00015d18 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00015d1c bne 0x15e7c                                   |             goto label_23;
                                                             |         }
                                                             | label_6:
    0x00015d20 mov r0, sb                                    |         r0 = sb;
    0x00015d24 bl 0x87bc                                     |         fcn_000087bc ();
    0x00015d28 bl 0x2a7d4                                    |         r0 = fcn_0002a7d4 (r0);
    0x00015d2c subs sb, r0, 0                                |         sb = r0 - 0;
                                                             |         if (sb != r0) {
    0x00015d30 bne 0x15eb0                                   |             goto label_24;
                                                             |         }
                                                             | label_7:
    0x00015d34 ldr r1, [pc, 0x324]                           |         r1 = *(0x1605c);
    0x00015d38 mov r0, r6                                    |         r0 = r6;
    0x00015d3c add r1, pc, r1                                |         r1 = pc + r1;
    0x00015d40 bl 0x8798                                     |         r0 = fprintf (r0, r1)
    0x00015d44 subs r4, r0, 0                                |         r4 = r0 - 0;
    0x00015d48 bgt 0x15bf0                                   |         
                                                             |     } while (r4 > r0);
                                                             | label_8:
    0x00015d4c cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00015d50 beq 0x15bf0                                   |         goto label_0;
                                                             |     }
    0x00015d54 b 0x15d84                                     |     goto label_4;
                                                             | label_19:
    0x00015d58 mov r2, r3                                    |     r2 = r3;
    0x00015d5c ldr r1, [sp, 0x10]                            |     r1 = format;
    0x00015d60 mov r0, r6                                    |     r0 = r6;
    0x00015d64 str r3, [sp, 0x1c]                            |     ptr = r3;
    0x00015d68 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00015d6c ldr r3, [sp, 0x1c]                            |     r3 = ptr;
    0x00015d70 mov r4, r0                                    |     r4 = r0;
    0x00015d74 mov r0, r3                                    |     r0 = r3;
    0x00015d78 bl 0x91c4                                     |     free (r0);
    0x00015d7c cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00015d80 bge 0x15cd0                                   |         goto label_1;
                                                             |     }
                                                             |     do {
                                                             | label_4:
    0x00015d84 ldr r3, [fp]                                  |         r3 = *(fp);
    0x00015d88 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x00015d8c beq 0x15ddc                                   |             
    0x00015d90 ldr r3, [pc, 0x294]                           |             r3 = *(0x16028);
    0x00015d94 ldr r3, [sl, r3]                              |             r3 = *((sl + r3));
    0x00015d98 ldr r7, [r3]                                  |             r7 = *(0x16028);
    0x00015d9c bl 0x8204                                     |             getpid ();
    0x00015da0 ldr r3, [pc, 0x2bc]                           |             r3 = *(0x16060);
    0x00015da4 ldr r1, [pc, 0x2bc]                           |             r1 = *(0x16064);
    0x00015da8 add r3, pc, r3                                |             r3 = pc + r3;
    0x00015dac str r3, [sp]                                  |             *(sp) = r3;
    0x00015db0 ldr r3, [pc, 0x2b4]                           |             r3 = *(0x16068);
    0x00015db4 add r1, pc, r1                                |             r1 = pc + r1;
    0x00015db8 add r3, pc, r3                                |             r3 = pc + r3;
    0x00015dbc mov r2, r0                                    |             r2 = r0;
    0x00015dc0 mov r0, r7                                    |             r0 = r7;
    0x00015dc4 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00015dc8 ldr r1, [pc, 0x2a0]                           |             r1 = *(0x1606c);
    0x00015dcc ldr r2, [sp, 0x24]                            |             r2 = oldpath;
    0x00015dd0 add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_16:
    0x00015dd4 mov r0, r5                                    |             r0 = r5;
    0x00015dd8 bl 0x15798                                    |             fcn_00015798 (r0);
                                                             |         }
                                                             | label_15:
    0x00015ddc mov r0, r6                                    |         r0 = r6;
    0x00015de0 bl 0x8b94                                     |         fclose (r0);
    0x00015de4 b 0x15f88                                     |         goto label_25;
                                                             | label_20:
    0x00015de8 mov r2, r3                                    |         r2 = r3;
    0x00015dec ldr r1, [sp, 0x14]                            |         r1 = var_14h;
    0x00015df0 mov r0, r6                                    |         r0 = r6;
    0x00015df4 str r3, [sp, 0x1c]                            |         ptr = r3;
    0x00015df8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00015dfc ldr r3, [sp, 0x1c]                            |         r3 = ptr;
    0x00015e00 mov r4, r0                                    |         r4 = r0;
    0x00015e04 mov r0, r3                                    |         r0 = r3;
    0x00015e08 bl 0x91c4                                     |         free (r0);
    0x00015e0c cmp r4, 0                                     |         
    0x00015e10 blt 0x15d84                                   |         
                                                             |     } while (r4 < 0);
    0x00015e14 b 0x15ce4                                     |     goto label_2;
                                                             | label_21:
    0x00015e18 mov r2, r3                                    |     r2 = r3;
    0x00015e1c ldr r1, [sp, 0x18]                            |     r1 = var_18h;
    0x00015e20 mov r0, r6                                    |     r0 = r6;
    0x00015e24 str r3, [sp, 0x1c]                            |     ptr = r3;
    0x00015e28 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00015e2c ldr r3, [sp, 0x1c]                            |     r3 = ptr;
    0x00015e30 mov r4, r0                                    |     r4 = r0;
    0x00015e34 mov r0, r3                                    |     r0 = r3;
    0x00015e38 bl 0x91c4                                     |     free (r0);
    0x00015e3c cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00015e40 bge 0x15cf8                                   |         goto label_3;
                                                             |     }
    0x00015e44 b 0x15d84                                     |     goto label_4;
                                                             | label_22:
    0x00015e48 ldr r1, [pc, 0x224]                           |     r1 = *(0x16070);
    0x00015e4c mov r2, r3                                    |     r2 = r3;
    0x00015e50 add r1, pc, r1                                |     r1 = pc + r1;
    0x00015e54 mov r0, r6                                    |     r0 = r6;
    0x00015e58 str r3, [sp, 0x1c]                            |     ptr = r3;
    0x00015e5c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00015e60 ldr r3, [sp, 0x1c]                            |     r3 = ptr;
    0x00015e64 mov r4, r0                                    |     r4 = r0;
    0x00015e68 mov r0, r3                                    |     r0 = r3;
    0x00015e6c bl 0x91c4                                     |     free (r0);
    0x00015e70 cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00015e74 bge 0x15d0c                                   |         goto label_5;
                                                             |     }
    0x00015e78 b 0x15d84                                     |     goto label_4;
                                                             | label_23:
    0x00015e7c ldr r1, [pc, 0x1f4]                           |     r1 = *(0x16074);
    0x00015e80 mov r2, r3                                    |     r2 = r3;
    0x00015e84 add r1, pc, r1                                |     r1 = pc + r1;
    0x00015e88 mov r0, r6                                    |     r0 = r6;
    0x00015e8c str r3, [sp, 0x1c]                            |     ptr = r3;
    0x00015e90 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00015e94 ldr r3, [sp, 0x1c]                            |     r3 = ptr;
    0x00015e98 mov r4, r0                                    |     r4 = r0;
    0x00015e9c mov r0, r3                                    |     r0 = r3;
    0x00015ea0 bl 0x91c4                                     |     free (r0);
    0x00015ea4 cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00015ea8 bge 0x15d20                                   |         goto label_6;
                                                             |     }
    0x00015eac b 0x15d84                                     |     goto label_4;
                                                             | label_24:
    0x00015eb0 ldr r1, [pc, 0x1c4]                           |     r1 = *(0x16078);
    0x00015eb4 mov r2, sb                                    |     r2 = sb;
    0x00015eb8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00015ebc mov r0, r6                                    |     r0 = r6;
    0x00015ec0 bl 0x8798                                     |     r0 = fprintf (r0, r1, r2)
    0x00015ec4 mov r4, r0                                    |     r4 = r0;
    0x00015ec8 mov r0, sb                                    |     r0 = sb;
    0x00015ecc bl 0x91c4                                     |     free (r0);
    0x00015ed0 cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00015ed4 bge 0x15d34                                   |         goto label_7;
                                                             |     }
    0x00015ed8 b 0x15d84                                     |     goto label_4;
                                                             | label_17:
    0x00015edc mov r1, sb                                    |     r1 = sb;
    0x00015ee0 mov r0, r6                                    |     r0 = r6;
    0x00015ee4 bl 0x158e4                                    |     r0 = fcn_000158e4 (r0, r1);
    0x00015ee8 mov r4, r0                                    |     r4 = r0;
    0x00015eec b 0x15d4c                                     |     goto label_8;
                                                             | label_18:
    0x00015ef0 mvn r4, 0x15                                  |     r4 = ~0x15;
    0x00015ef4 b 0x15d84                                     |     goto label_4;
                                                             | label_14:
    0x00015ef8 mov r1, 0x1a4                                 |     r1 = 0x1a4;
    0x00015efc mov r0, r7                                    |     r0 = r7;
    0x00015f00 bl 0x8168                                     |     r0 = fchmod (r0, r1);
    0x00015f04 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00015f08 beq 0x15f20                                   |         
    0x00015f0c bl 0x8f6c                                     |         r0 = errno_location ();
    0x00015f10 ldr r3, [r0]                                  |         r3 = *(r0);
    0x00015f14 cmp r3, 0                                     |         
    0x00015f18 rsb r4, r3, 0                                 |         r4 = r3 - ;
                                                             |         if (r3 != 0) {
    0x00015f1c bne 0x15f58                                   |             goto label_26;
                                                             |         }
                                                             |     }
    0x00015f20 add r1, sp, 0x38                              |     r1 += var_38h;
    0x00015f24 ldr r0, [r5, 8]                               |     r0 = *((r5 + 8));
    0x00015f28 bl 0x8060                                     |     r0 = stat64 ();
    0x00015f2c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00015f30 bne 0x15f58                                   |         
    0x00015f34 ldr r2, [sp, 0x54]                            |         r2 = var_54h;
    0x00015f38 ldr r1, [sp, 0x50]                            |         r1 = var_50h;
    0x00015f3c mov r0, r7                                    |         r0 = r7;
    0x00015f40 bl 0x8228                                     |         r0 = fchown ();
    0x00015f44 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 == r0) {
    0x00015f48 beq 0x15f58                                   |             goto label_26;
                                                             |         }
    0x00015f4c bl 0x8f6c                                     |         r0 = errno_location ();
    0x00015f50 ldr r4, [r0]                                  |         r4 = *(r0);
    0x00015f54 rsb r4, r4, 0                                 |         r4 -= ;
                                                             |     }
                                                             | label_26:
    0x00015f58 mov r0, r6                                    |     r0 = r6;
    0x00015f5c bl 0x8b94                                     |     fclose (r0);
    0x00015f60 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00015f64 bne 0x15f88                                   |         goto label_25;
                                                             |     }
    0x00015f68 ldr r1, [r5, 8]                               |     r1 = *((r5 + 8));
    0x00015f6c ldr r0, [sp, 0x24]                            |     r0 = oldpath;
    0x00015f70 bl 0x869c                                     |     r0 = rename (r0, r1);
    0x00015f74 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x00015f78 beq 0x15f88                                   |         goto label_25;
                                                             |     }
    0x00015f7c bl 0x8f6c                                     |     r0 = errno_location ();
    0x00015f80 ldr r4, [r0]                                  |     r4 = *(r0);
    0x00015f84 rsb r4, r4, 0                                 |     r4 -= ;
                                                             |     do {
                                                             | label_25:
    0x00015f88 ldr r0, [sp, 0x24]                            |         r0 = oldpath;
    0x00015f8c bl 0x8978                                     |         unlink (r0);
    0x00015f90 ldr r0, [sp, 0x24]                            |         r0 = oldpath;
    0x00015f94 bl 0x91c4                                     |         free (r0);
    0x00015f98 ldr r3, [fp]                                  |         r3 = *(fp);
    0x00015f9c mov r7, r4                                    |         r7 = r4;
    0x00015fa0 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x00015fa4 beq 0x15ff8                                   |             
    0x00015fa8 ldr r3, [pc, 0x7c]                            |             r3 = *(0x16028);
    0x00015fac ldr r3, [sl, r3]                              |             r3 = *((sl + r3));
    0x00015fb0 ldr r4, [r3]                                  |             r4 = *(0x16028);
    0x00015fb4 bl 0x8204                                     |             getpid ();
    0x00015fb8 ldr r3, [pc, 0xc0]                            |             r3 = *(0x1607c);
    0x00015fbc ldr r1, [pc, 0xc0]                            |             r1 = *(0x16080);
    0x00015fc0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00015fc4 str r3, [sp]                                  |             *(sp) = r3;
    0x00015fc8 ldr r3, [pc, 0xb8]                            |             r3 = *(0x16084);
    0x00015fcc add r1, pc, r1                                |             r1 = pc + r1;
    0x00015fd0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00015fd4 mov r2, r0                                    |             r2 = r0;
    0x00015fd8 mov r0, r4                                    |             r0 = r4;
    0x00015fdc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00015fe0 ldr r1, [pc, 0xa4]                            |             r1 = *(0x16088);
    0x00015fe4 mov r3, r7                                    |             r3 = r7;
    0x00015fe8 ldr r2, [r5, 8]                               |             r2 = *((r5 + 8));
    0x00015fec add r1, pc, r1                                |             r1 = pc + r1;
    0x00015ff0 mov r0, r5                                    |             r0 = r5;
    0x00015ff4 bl 0x15798                                    |             fcn_00015798 (r0);
                                                             |         }
                                                             | label_9:
    0x00015ff8 mov r0, r7                                    |         r0 = r7;
    0x00015ffc add sp, sp, 0xa4                              |         
    0x00016000 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_11:
    0x00016004 bl 0x8f6c                                     |         r0 = errno_location ();
    0x00016008 ldr r4, [r0]                                  |         r4 = *(r0);
    0x0001600c mov r0, r7                                    |         r0 = r7;
    0x00016010 rsb r4, r4, 0                                 |         r4 -= ;
    0x00016014 bl 0x917c                                     |         close (r0);
    0x00016018 b 0x15f88                                     |         
                                                             |     } while (1);
                                                             | label_10:
    0x0001601c mvn r7, 0x15                                  |     r7 = ~0x15;
    0x00016020 b 0x15ff8                                     |     goto label_9;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x175a4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000175a4 ()                                  | void fcn_000175a4 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     FILE * stream;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000175a4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000175a8 ldr r6, [pc, 0x30c]                           |     r6 = *(0x178b8);
    0x000175ac subs r4, r0, 0                                |     r4 = r0 - 0;
    0x000175b0 add r6, pc, r6                                |     r6 = pc + r6;
    0x000175b4 sub sp, sp, 0x14                              |     
                                                             |     if (r4 == r0) {
    0x000175b8 beq 0x178a4                                   |         goto label_7;
                                                             |     }
    0x000175bc ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x000175c0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000175c4 beq 0x178a4                                   |         goto label_7;
                                                             |     }
    0x000175c8 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x000175cc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000175d0 bne 0x175e0                                   |         
    0x000175d4 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000175d8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000175dc beq 0x178a4                                   |             goto label_7;
                                                             |         }
                                                             |     }
    0x000175e0 ldr r3, [pc, 0x2d8]                           |     r3 = "tting_evaluation";
    0x000175e4 mov r8, r1                                    |     r8 = r1;
    0x000175e8 ldr sb, [r6, r3]                              |     sb = *((r6 + r3));
    0x000175ec ldr r3, [sb]                                  |     r3 = *(sb);
    0x000175f0 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x000175f4 beq 0x17644                                   |         
    0x000175f8 ldr r3, [pc, 0x2c4]                           |         r3 = *(0x178c0);
    0x000175fc ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00017600 ldr r5, [r3]                                  |         r5 = *(0x178c0);
    0x00017604 bl 0x8204                                     |         getpid ();
    0x00017608 ldr r3, [pc, 0x2b8]                           |         r3 = *(0x178c4);
    0x0001760c ldr r1, [pc, 0x2b8]                           |         r1 = *(0x178c8);
    0x00017610 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017614 str r3, [sp]                                  |         *(sp) = r3;
    0x00017618 ldr r3, [pc, 0x2b0]                           |         r3 = *(0x178cc);
    0x0001761c add r1, pc, r1                                |         r1 = pc + r1;
    0x00017620 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017624 mov r2, r0                                    |         r2 = r0;
    0x00017628 mov r0, r5                                    |         r0 = r5;
    0x0001762c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017630 ldr r1, [pc, 0x29c]                           |         r1 = *(0x178d0);
    0x00017634 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x00017638 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001763c mov r0, r4                                    |         r0 = r4;
    0x00017640 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x00017644 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00017648 movne r5, r8                                  |         r5 = r8;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x0001764c bne 0x1766c                                   |         
    0x00017650 mov r1, r8                                    |         r1 = r8;
    0x00017654 ldr r0, [r4, 8]                               |         r0 = *((r4 + 8));
    0x00017658 bl 0x9104                                     |         r0 = fcn_00009104 ();
    0x0001765c subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 == r0) {
    0x00017660 beq 0x17694                                   |             goto label_8;
                                                             |         }
    0x00017664 mov r1, 1                                     |         r1 = 1;
    0x00017668 bl 0x8924                                     |         fcn_00008924 ();
                                                             |     }
    0x0001766c ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00017670 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00017674 beq 0x17684                                   |         
    0x00017678 mov r1, 1                                     |         r1 = 1;
    0x0001767c mov r0, r5                                    |         r0 = r5;
    0x00017680 bl 0xcb3c                                     |         fcn_0000cb3c (r0, r1);
                                                             |     }
    0x00017684 mov r0, r5                                    |     r0 = r5;
    0x00017688 bl 0x8b04                                     |     r0 = fcn_00008b04 ();
    0x0001768c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00017690 bne 0x1789c                                   |         goto label_9;
                                                             |     }
                                                             | label_8:
    0x00017694 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00017698 mov r2, 1                                     |     r2 = 1;
    0x0001769c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000176a0 movne r1, 3                                   |         r1 = 3;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000176a4 moveq r1, r2                                  |         r1 = r2;
                                                             |     }
    0x000176a8 ldr r0, [r4, 8]                               |     r0 = *((r4 + 8));
    0x000176ac bl 0x14e34                                    |     fcn_00014e34 (r0);
    0x000176b0 cmp r5, 0                                     |     
    0x000176b4 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r5 == 0) {
    0x000176b8 beq 0x178ac                                   |         goto label_10;
                                                             |     }
    0x000176bc mov r0, r5                                    |     r0 = r5;
    0x000176c0 bl 0x8da4                                     |     fcn_00008da4 ();
    0x000176c4 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x000176c8 moveq sl, r7                                  |         sl = r7;
                                                             |     }
                                                             |     if (r7 == 0) {
    0x000176cc beq 0x17728                                   |         goto label_3;
                                                             |     }
                                                             | label_5:
    0x000176d0 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000176d4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000176d8 beq 0x1781c                                   |         goto label_11;
                                                             |     }
    0x000176dc bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x000176e0 mov fp, r0                                    |     
    0x000176e4 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000176e8 bl 0x911c                                     |     r0 = fcn_0000911c ();
    0x000176ec cmp r0, 0                                     |     
    0x000176f0 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
                                                             |     if (r0 == 0) {
    0x000176f4 beq 0x177a4                                   |         goto label_12;
                                                             |     }
    0x000176f8 bl 0x911c                                     |     r0 = fcn_0000911c ();
                                                             |     do {
    0x000176fc mov r1, r0                                    |         r1 = r0;
    0x00017700 mov sl, r0                                    |         sl = r0;
    0x00017704 mov r3, 1                                     |         r3 = 1;
    0x00017708 mov r2, fp                                    |         r2 = fp;
    0x0001770c mov r0, r7                                    |         r0 = r7;
    0x00017710 bl 0x8330                                     |         r0 = fcn_00008330 ();
    0x00017714 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00017718 bne 0x177ac                                   |             goto label_13;
                                                             |         }
                                                             | label_1:
    0x0001771c mov sl, 0                                     |         sl = 0;
                                                             | label_0:
    0x00017720 mov r0, r7                                    |         r0 = r7;
    0x00017724 bl 0x8bb8                                     |         fcn_00008bb8 ();
                                                             | label_3:
    0x00017728 cmp r5, 0                                     |         
    0x0001772c cmpne r8, r5                                  |         __asm ("cmpne r8, r5");
                                                             |         if (r5 != 0) {
    0x00017730 beq 0x1773c                                   |             
    0x00017734 mov r0, r5                                    |             r0 = r5;
    0x00017738 bl 0x8fb4                                     |             fcn_00008fb4 ();
                                                             |         }
                                                             | label_6:
    0x0001773c ldr r3, [sb]                                  |         r3 = *(sb);
    0x00017740 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x00017744 beq 0x17798                                   |             
    0x00017748 ldr r3, [pc, 0x174]                           |             r3 = *(0x178c0);
    0x0001774c ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00017750 ldr r5, [r3]                                  |             r5 = *(0x178c0);
    0x00017754 bl 0x8204                                     |             getpid ();
    0x00017758 ldr r3, [pc, 0x178]                           |             r3 = *(0x178d4);
    0x0001775c ldr r1, [pc, 0x178]                           |             r1 = *(0x178d8);
    0x00017760 add r3, pc, r3                                |             r3 = pc + r3;
    0x00017764 str r3, [sp]                                  |             *(sp) = r3;
    0x00017768 ldr r3, [pc, 0x170]                           |             r3 = *(0x178dc);
    0x0001776c add r1, pc, r1                                |             r1 = pc + r1;
    0x00017770 add r3, pc, r3                                |             r3 = pc + r3;
    0x00017774 mov r2, r0                                    |             r2 = r0;
    0x00017778 mov r0, r5                                    |             r0 = r5;
    0x0001777c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00017780 ldr r1, [pc, 0x15c]                           |             r1 = *(0x178e0);
    0x00017784 mov r3, sl                                    |             r3 = sl;
    0x00017788 ldr r2, [r4, 8]                               |             r2 = *((r4 + 8));
    0x0001778c add r1, pc, r1                                |             r1 = pc + r1;
    0x00017790 mov r0, r4                                    |             r0 = r4;
    0x00017794 bl 0x15798                                    |             fcn_00015798 (r0);
                                                             |         }
                                                             | label_4:
    0x00017798 mov r0, sl                                    |         r0 = sl;
    0x0001779c add sp, sp, 0x14                              |         
    0x000177a0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_12:
    0x000177a4 bl 0x8c90                                     |         fcn_00008c90 ();
    0x000177a8 b 0x176fc                                     |         
                                                             |     } while (1);
                                                             | label_13:
    0x000177ac ldr r3, [sb]                                  |     r3 = *(sb);
    0x000177b0 tst r3, 0x80                                  |     
    0x000177b4 bne 0x177c0                                   |     
                                                             |     while (1) {
                                                             | label_2:
    0x000177b8 mov sl, 1                                     |         sl = 1;
    0x000177bc b 0x17720                                     |         goto label_0;
    0x000177c0 ldr r3, [pc, 0xfc]                            |         
    0x000177c4 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x000177c8 ldr r3, [r3]                                  |         r3 = *(0x178c0);
    0x000177cc str r3, [sp, 0xc]                             |         stream = r3;
    0x000177d0 bl 0x8204                                     |         getpid ();
    0x000177d4 ldr r3, [pc, 0x10c]                           |         r3 = *(0x178e4);
    0x000177d8 ldr r1, [pc, 0x10c]                           |         r1 = *(0x178e8);
    0x000177dc add r3, pc, r3                                |         r3 = pc + r3;
    0x000177e0 str r3, [sp]                                  |         *(sp) = r3;
    0x000177e4 ldr r3, [pc, 0x104]                           |         r3 = *(0x178ec);
    0x000177e8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000177ec add r3, pc, r3                                |         r3 = pc + r3;
    0x000177f0 mov r2, r0                                    |         r2 = r0;
    0x000177f4 ldr r0, [sp, 0xc]                             |         r0 = stream;
    0x000177f8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000177fc ldr r1, [pc, 0xf0]                            |         r1 = *(0x178f0);
    0x00017800 str fp, [sp]                                  |         *(sp) = fp;
    0x00017804 mov r3, sl                                    |         r3 = sl;
    0x00017808 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x0001780c add r1, pc, r1                                |         r1 = pc + r1;
    0x00017810 mov r0, r4                                    |         r0 = r4;
    0x00017814 bl 0x15798                                    |         fcn_00015798 (r0);
    0x00017818 b 0x177b8                                     |         
                                                             |     }
                                                             | label_11:
    0x0001781c ldr r1, [r4]                                  |     r1 = *(r4);
    0x00017820 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00017824 beq 0x1771c                                   |         goto label_1;
                                                             |     }
    0x00017828 mov r2, 1                                     |     r2 = 1;
    0x0001782c mov r0, r7                                    |     r0 = r7;
    0x00017830 bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x00017834 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00017838 bne 0x1771c                                   |         goto label_1;
                                                             |     }
    0x0001783c ldr r3, [sb]                                  |     r3 = *(sb);
    0x00017840 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) == 0) {
    0x00017844 beq 0x177b8                                   |         goto label_2;
                                                             |     }
    0x00017848 ldr r3, [pc, 0x74]                            |     r3 = *(0x178c0);
    0x0001784c ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00017850 ldr sl, [r3]                                  |     sl = *(0x178c0);
    0x00017854 bl 0x8204                                     |     getpid ();
    0x00017858 ldr r3, [pc, 0x98]                            |     r3 = *(0x178f4);
    0x0001785c ldr r1, [pc, 0x98]                            |     r1 = *(0x178f8);
    0x00017860 add r3, pc, r3                                |     r3 = pc + r3;
    0x00017864 str r3, [sp]                                  |     *(sp) = r3;
    0x00017868 ldr r3, [pc, 0x90]                            |     r3 = *(0x178fc);
    0x0001786c add r1, pc, r1                                |     r1 = pc + r1;
    0x00017870 add r3, pc, r3                                |     r3 = pc + r3;
    0x00017874 mov r2, r0                                    |     r2 = r0;
    0x00017878 mov r0, sl                                    |     r0 = sl;
    0x0001787c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00017880 ldr r1, [pc, 0x7c]                            |     r1 = *(0x17900);
    0x00017884 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00017888 ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x0001788c add r1, pc, r1                                |     r1 = pc + r1;
    0x00017890 mov r0, r4                                    |     r0 = r4;
    0x00017894 bl 0x15798                                    |     fcn_00015798 (r0);
    0x00017898 b 0x177b8                                     |     goto label_2;
                                                             | label_9:
    0x0001789c ldr sl, [pc, 0x64]                            |     sl = *(0x00017908);
    0x000178a0 b 0x17728                                     |     goto label_3;
                                                             | label_7:
    0x000178a4 mvn sl, 0x15                                  |     sl = ~0x15;
    0x000178a8 b 0x17798                                     |     goto label_4;
                                                             | label_10:
    0x000178ac cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000178b0 bne 0x176d0                                   |         goto label_5;
                                                             |     }
    0x000178b4 mov sl, r5                                    |     sl = r5;
    0x000178b8 b 0x1773c                                     |     goto label_6;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x17b9c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00017b9c ()                                  | void fcn_00017b9c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00017b9c push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x00017ba0 ldr r6, [pc, 0x258]                           |     r6 = *(0x17dfc);
    0x00017ba4 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00017ba8 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 != r0) {
    0x00017bac mvneq r4, 0x15                                |         r4 = ~0x15;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x00017bb0 beq 0x17d78                                   |         goto label_2;
                                                             |     }
    0x00017bb4 ldr r3, [pc, 0x248]                           |     r3 = "ev";
    0x00017bb8 mov r7, r1                                    |     r7 = r1;
    0x00017bbc ldr r5, [r6, r3]                              |     r5 = *((r6 + r3));
    0x00017bc0 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00017bc4 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x00017bc8 beq 0x17c18                                   |         
    0x00017bcc ldr r3, [pc, 0x234]                           |         r3 = *(0x17e04);
    0x00017bd0 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00017bd4 ldr r8, [r3]                                  |         r8 = *(0x17e04);
    0x00017bd8 bl 0x8204                                     |         getpid ();
    0x00017bdc ldr r3, [pc, 0x228]                           |         r3 = *(0x17e08);
    0x00017be0 ldr r1, [pc, 0x228]                           |         r1 = *(0x17e0c);
    0x00017be4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017be8 str r3, [sp]                                  |         *(sp) = r3;
    0x00017bec ldr r3, [pc, 0x220]                           |         r3 = *(0x17e10);
    0x00017bf0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00017bf4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017bf8 mov r2, r0                                    |         r2 = r0;
    0x00017bfc mov r0, r8                                    |         r0 = r8;
    0x00017c00 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017c04 ldr r0, [pc, 0x20c]                           |         r0 = *(0x17e14);
    0x00017c08 mov r2, r7                                    |         r2 = r7;
    0x00017c0c mov r1, r4                                    |         r1 = r4;
    0x00017c10 add r0, pc, r0                                |         r0 = pc + r0;
    0x00017c14 bl 0x17b10                                    |         fcn_00017b10 ();
                                                             |     }
    0x00017c18 mov r1, 6                                     |     r1 = 6;
    0x00017c1c mov r0, r4                                    |     r0 = r4;
    0x00017c20 bl 0x8408                                     |     r0 = eaccess ();
    0x00017c24 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x00017c28 bne 0x17c84                                   |         
    0x00017c2c ldr r4, [r5]                                  |         r4 = *(r5);
    0x00017c30 ands r4, r4, 0x100                            |         r4 &= 0x100;
                                                             |         if (r4 == r4) {
    0x00017c34 beq 0x17d78                                   |             goto label_2;
                                                             |         }
    0x00017c38 ldr r3, [pc, 0x1c8]                           |         r3 = *(0x17e04);
    0x00017c3c ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00017c40 ldr r4, [r3]                                  |         r4 = *(0x17e04);
    0x00017c44 bl 0x8204                                     |         getpid ();
    0x00017c48 ldr r3, [pc, 0x1cc]                           |         r3 = *(0x17e18);
    0x00017c4c ldr r1, [pc, 0x1cc]                           |         r1 = *(0x17e1c);
    0x00017c50 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017c54 str r3, [sp]                                  |         *(sp) = r3;
    0x00017c58 ldr r3, [pc, 0x1c4]                           |         r3 = *(0x17e20);
    0x00017c5c add r1, pc, r1                                |         r1 = pc + r1;
    0x00017c60 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017c64 mov r2, r0                                    |         r2 = r0;
    0x00017c68 mov r0, r4                                    |         r0 = r4;
    0x00017c6c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017c70 ldr r0, [pc, 0x1b0]                           |         r0 = *(0x17e24);
    0x00017c74 add r0, pc, r0                                |         r0 = pc + r0;
    0x00017c78 bl 0x17b10                                    |         fcn_00017b10 ();
                                                             | label_1:
    0x00017c7c mov r4, 0                                     |         r4 = 0;
    0x00017c80 b 0x17d78                                     |         goto label_2;
                                                             |     }
    0x00017c84 bl 0x8f6c                                     |     r0 = errno_location ();
    0x00017c88 ldr r3, [r0]                                  |     r3 = *(r0);
    0x00017c8c mov r8, r0                                    |     r8 = r0;
    0x00017c90 cmp r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x00017c94 beq 0x17cf4                                   |         
    0x00017c98 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00017c9c tst r3, 0x100                                 |         
                                                             |         if ((r3 & 0x100) != 0) {
    0x00017ca0 beq 0x17ce8                                   |             
    0x00017ca4 ldr r3, [pc, 0x15c]                           |             r3 = *(0x17e04);
    0x00017ca8 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00017cac ldr r4, [r3]                                  |             r4 = *(0x17e04);
    0x00017cb0 bl 0x8204                                     |             getpid ();
    0x00017cb4 ldr r3, [pc, 0x170]                           |             r3 = *(0x17e28);
    0x00017cb8 ldr r1, [pc, 0x170]                           |             r1 = *(0x17e2c);
    0x00017cbc add r3, pc, r3                                |             r3 = pc + r3;
    0x00017cc0 str r3, [sp]                                  |             *(sp) = r3;
    0x00017cc4 ldr r3, [pc, 0x168]                           |             r3 = *(0x17e30);
    0x00017cc8 add r1, pc, r1                                |             r1 = pc + r1;
    0x00017ccc add r3, pc, r3                                |             r3 = pc + r3;
    0x00017cd0 mov r2, r0                                    |             r2 = r0;
    0x00017cd4 mov r0, r4                                    |             r0 = r4;
    0x00017cd8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00017cdc ldr r0, [pc, 0x154]                           |             r0 = *(0x17e34);
    0x00017ce0 add r0, pc, r0                                |             r0 = pc + r0;
    0x00017ce4 bl 0x17b10                                    |             fcn_00017b10 ();
                                                             |         }
                                                             | label_0:
    0x00017ce8 ldr r4, [r8]                                  |         r4 = *(r8);
    0x00017cec rsb r4, r4, 0                                 |         r4 -= ;
    0x00017cf0 b 0x17d78                                     |         goto label_2;
                                                             |     }
    0x00017cf4 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00017cf8 beq 0x17d90                                   |         goto label_3;
                                                             |     }
    0x00017cfc mov r1, 6                                     |     r1 = 6;
    0x00017d00 mov r0, r7                                    |     r0 = r7;
    0x00017d04 bl 0x8408                                     |     eaccess ();
    0x00017d08 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00017d0c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x00017d10 ldrne r4, [r8]                                |         r4 = *(r8);
                                                             |     }
    0x00017d14 rsbne r4, r4, 0                               |     __asm ("rsbne r4, r4, 0");
    0x00017d18 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00017d1c beq 0x17d78                                   |         goto label_2;
                                                             |     }
    0x00017d20 ldr r3, [pc, 0xe0]                            |     r3 = *(0x17e04);
    0x00017d24 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00017d28 ldr r5, [r3]                                  |     r5 = *(0x17e04);
    0x00017d2c bl 0x8204                                     |     getpid ();
    0x00017d30 ldr r3, [pc, 0x104]                           |     r3 = *(0x17e38);
    0x00017d34 ldr r1, [pc, 0x104]                           |     r1 = *(0x17e3c);
    0x00017d38 add r3, pc, r3                                |     r3 = pc + r3;
    0x00017d3c str r3, [sp]                                  |     *(sp) = r3;
    0x00017d40 ldr r3, [pc, 0xfc]                            |     r3 = *(0x17e40);
    0x00017d44 add r1, pc, r1                                |     r1 = pc + r1;
    0x00017d48 add r3, pc, r3                                |     r3 = pc + r3;
    0x00017d4c mov r2, r0                                    |     r2 = r0;
    0x00017d50 mov r0, r5                                    |     r0 = r5;
    0x00017d54 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00017d58 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00017d5c bne 0x17d84                                   |         goto label_4;
                                                             |     }
    0x00017d60 ldr r1, [pc, 0xe0]                            |     r1 = *(0x17e44);
    0x00017d64 add r1, pc, r1                                |     r1 = pc + r1;
                                                             |     do {
    0x00017d68 ldr r0, [pc, 0xdc]                            |         r0 = *(0x17e48);
    0x00017d6c mov r2, r7                                    |         r2 = r7;
    0x00017d70 add r0, pc, r0                                |         r0 = pc + r0;
    0x00017d74 bl 0x17b10                                    |         fcn_00017b10 ();
                                                             | label_2:
    0x00017d78 mov r0, r4                                    |         r0 = r4;
    0x00017d7c add sp, sp, 8                                 |         
    0x00017d80 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_4:
    0x00017d84 ldr r1, [pc, 0xc4]                            |         r1 = *(0x17e4c);
    0x00017d88 add r1, pc, r1                                |         r1 = pc + r1;
    0x00017d8c b 0x17d68                                     |         
                                                             |     } while (1);
                                                             | label_3:
    0x00017d90 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00017d94 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x00017d98 beq 0x17de0                                   |         
    0x00017d9c ldr r3, [pc, 0x64]                            |         r3 = *(0x17e04);
    0x00017da0 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00017da4 ldr r5, [r3]                                  |         r5 = *(0x17e04);
    0x00017da8 bl 0x8204                                     |         getpid ();
    0x00017dac ldr r3, [pc, 0xa0]                            |         r3 = *(0x17e50);
    0x00017db0 ldr r1, [pc, 0xa0]                            |         r1 = *(0x17e54);
    0x00017db4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017db8 str r3, [sp]                                  |         *(sp) = r3;
    0x00017dbc ldr r3, [pc, 0x98]                            |         r3 = *(0x17e58);
    0x00017dc0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00017dc4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017dc8 mov r2, r0                                    |         r2 = r0;
    0x00017dcc mov r0, r5                                    |         r0 = r5;
    0x00017dd0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017dd4 ldr r0, [pc, 0x84]                            |         r0 = *(0x17e5c);
    0x00017dd8 add r0, pc, r0                                |         r0 = pc + r0;
    0x00017ddc bl 0x17b10                                    |         fcn_00017b10 ();
                                                             |     }
    0x00017de0 mov r2, 0x1a4                                 |     r2 = 0x1a4;
    0x00017de4 ldr r1, [pc, 0x78]                            |     r1 = *(0x17e60);
    0x00017de8 mov r0, r4                                    |     r0 = r4;
    0x00017dec bl 0x8ba0                                     |     r0 = open64 ();
    0x00017df0 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00017df4 blt 0x17ce8                                   |         goto label_0;
                                                             |     }
    0x00017df8 bl 0x917c                                     |     close (r0);
    0x00017dfc b 0x17c7c                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x180f8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000180f8 ()                                  | void fcn_000180f8 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     char * s1;
                                                             |     int32_t var_1000h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000180f8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000180fc ldr r7, [pc, 0x2c8]                           |     r7 = *(0x183c8);
    0x00018100 sub sp, sp, 0x1000                            |     
    0x00018104 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00018108 add r7, pc, r7                                |     r7 = pc + r7;
    0x0001810c sub sp, sp, 0xc                               |     
                                                             |     if (r4 == r0) {
    0x00018110 beq 0x183c4                                   |         goto label_3;
                                                             |     }
    0x00018114 ldrsb r3, [r4]                                |     r3 = *(r4);
    0x00018118 cmp r3, 0x2f                                  |     
                                                             |     if (r3 != 0x2f) {
    0x0001811c bne 0x183c4                                   |         goto label_3;
                                                             |     }
    0x00018120 ldr r3, [pc, 0x2a8]                           |     r3 = "bindsrc:__s";
    0x00018124 mov sb, r1                                    |     sb = r1;
    0x00018128 ldr sl, [r7, r3]                              |     sl = *((r7 + r3));
    0x0001812c ldr r3, [sl]                                  |     r3 = *(sl);
    0x00018130 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x00018134 beq 0x18180                                   |         
    0x00018138 ldr r3, [pc, 0x294]                           |         r3 = *(0x183d0);
    0x0001813c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00018140 ldr r5, [r3]                                  |         r5 = *(0x183d0);
    0x00018144 bl 0x8204                                     |         getpid ();
    0x00018148 ldr r3, [pc, 0x288]                           |         r3 = *(0x183d4);
    0x0001814c ldr r1, [pc, 0x288]                           |         r1 = *(0x183d8);
    0x00018150 add r3, pc, r3                                |         r3 = pc + r3;
    0x00018154 str r3, [sp]                                  |         *(sp) = r3;
    0x00018158 ldr r3, [pc, 0x280]                           |         r3 = *(0x183dc);
    0x0001815c add r1, pc, r1                                |         r1 = pc + r1;
    0x00018160 add r3, pc, r3                                |         r3 = pc + r3;
    0x00018164 mov r2, r0                                    |         r2 = r0;
    0x00018168 mov r0, r5                                    |         r0 = r5;
    0x0001816c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00018170 ldr r0, [pc, 0x26c]                           |         r0 = *(0x183e0);
    0x00018174 mov r1, r4                                    |         r1 = r4;
    0x00018178 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001817c bl 0x17b10                                    |         fcn_00017b10 ();
                                                             |     }
    0x00018180 mov r0, r4                                    |     r0 = r4;
    0x00018184 bl 0x8ae0                                     |     r0 = strdup (r0);
    0x00018188 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x0001818c mvneq r4, 0xb                                 |         r4 = ~0xb;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x00018190 beq 0x18398                                   |         goto label_2;
                                                             |     }
    0x00018194 ldrsb r5, [r6, 1]                             |     r5 = *((r6 + 1));
    0x00018198 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001819c beq 0x181ac                                   |         
    0x000181a0 bl 0x2a12c                                    |         r0 = fcn_0002a12c (r0);
    0x000181a4 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 == r0) {
    0x000181a8 beq 0x18314                                   |             goto label_4;
                                                             |         }
                                                             |     }
    0x000181ac ldrsb r3, [r6]                                |     r3 = *(r6);
    0x000181b0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000181b4 movne r8, r6                                  |         r8 = r6;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000181b8 ldreq r8, [pc, 0x228]                         |         r8 = *((pc + 0x228));
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000181bc addeq r8, pc, r8                              |         r8 = pc + r8;
                                                             |     }
    0x000181c0 mov r0, r8                                    |     r0 = r8;
    0x000181c4 bl 0x8828                                     |     r0 = chdir ();
    0x000181c8 cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x000181cc bne 0x1823c                                   |         goto label_5;
                                                             |     }
    0x000181d0 ldr r3, [sl]                                  |     r3 = *(sl);
    0x000181d4 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x000181d8 beq 0x18224                                   |         goto label_0;
                                                             |     }
    0x000181dc ldr r3, [pc, 0x1f0]                           |     r3 = *(0x183d0);
    0x000181e0 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x000181e4 ldr r4, [r3]                                  |     r4 = *(0x183d0);
    0x000181e8 bl 0x8204                                     |     getpid ();
    0x000181ec ldr r3, [pc, 0x1f8]                           |     r3 = *(0x183e8);
    0x000181f0 ldr r1, [pc, 0x1f8]                           |     r1 = *(0x183ec);
    0x000181f4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000181f8 str r3, [sp]                                  |     *(sp) = r3;
    0x000181fc ldr r3, [pc, 0x1f0]                           |     r3 = *(0x183f0);
    0x00018200 add r1, pc, r1                                |     r1 = pc + r1;
    0x00018204 add r3, pc, r3                                |     r3 = pc + r3;
    0x00018208 mov r2, r0                                    |     r2 = r0;
    0x0001820c mov r0, r4                                    |     r0 = r4;
    0x00018210 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00018214 ldr r0, [pc, 0x1dc]                           |     r0 = *(0x183f4);
    0x00018218 mov r1, r8                                    |     r1 = r8;
    0x0001821c add r0, pc, r0                                |     r0 = pc + r0;
    0x00018220 bl 0x17b10                                    |     fcn_00017b10 ();
                                                             |     do {
                                                             | label_0:
    0x00018224 bl 0x8f6c                                     |         r0 = errno_location ();
    0x00018228 ldr r4, [r0]                                  |         r4 = *(r0);
    0x0001822c rsb r4, r4, 0                                 |         r4 -= ;
                                                             | label_1:
    0x00018230 mov r0, r6                                    |         r0 = r6;
    0x00018234 bl 0x91c4                                     |         free (r0);
    0x00018238 b 0x18398                                     |         goto label_2;
                                                             | label_5:
    0x0001823c add fp, sp, 8                                 |         
    0x00018240 mov r1, 0x1000                                |         r1 = 0x1000;
    0x00018244 mov r0, fp                                    |         r0 = fp;
    0x00018248 bl 0x8d20                                     |         r0 = getcwd ();
    0x0001824c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00018250 bne 0x182a8                                   |             goto label_6;
                                                             |         }
    0x00018254 ldr r3, [sl]                                  |         r3 = *(sl);
    0x00018258 tst r3, 0x100                                 |         
    0x0001825c beq 0x18224                                   |         
                                                             |     } while ((r3 & 0x100) == 0);
    0x00018260 ldr r3, [pc, 0x16c]                           |     r3 = *(0x183d0);
    0x00018264 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00018268 ldr r4, [r3]                                  |     r4 = *(0x183d0);
    0x0001826c bl 0x8204                                     |     getpid ();
    0x00018270 ldr r3, [pc, 0x184]                           |     r3 = *(0x183f8);
    0x00018274 ldr r1, [pc, 0x184]                           |     r1 = *(0x183fc);
    0x00018278 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001827c str r3, [sp]                                  |     *(sp) = r3;
    0x00018280 ldr r3, [pc, 0x17c]                           |     r3 = *(0x18400);
    0x00018284 add r1, pc, r1                                |     r1 = pc + r1;
    0x00018288 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001828c mov r2, r0                                    |     r2 = r0;
    0x00018290 mov r0, r4                                    |     r0 = r4;
    0x00018294 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00018298 ldr r0, [pc, 0x168]                           |     r0 = *(0x18404);
    0x0001829c add r0, pc, r0                                |     r0 = pc + r0;
    0x000182a0 bl 0x17b10                                    |     fcn_00017b10 ();
    0x000182a4 b 0x18224                                     |     goto label_0;
                                                             | label_6:
    0x000182a8 mov r1, r8                                    |     r1 = r8;
    0x000182ac mov r0, fp                                    |     r0 = fp;
    0x000182b0 bl 0x8cb4                                     |     strcmp (r0, r1);
    0x000182b4 ldr r3, [sl]                                  |     r3 = *(sl);
    0x000182b8 subs r4, r0, 0                                |     r4 -= s1;
                                                             |     if (r4 != s1) {
    0x000182bc beq 0x1831c                                   |         
    0x000182c0 tst r3, 0x100                                 |         
                                                             |         if ((r3 & 0x100) != 0) {
    0x000182c4 beq 0x18314                                   |             
    0x000182c8 ldr r3, [pc, 0x104]                           |             r3 = *(0x183d0);
    0x000182cc ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000182d0 ldr r4, [r3]                                  |             r4 = *(0x183d0);
    0x000182d4 bl 0x8204                                     |             getpid ();
    0x000182d8 ldr r3, [pc, 0x12c]                           |             r3 = *(0x18408);
    0x000182dc ldr r1, [pc, 0x12c]                           |             r1 = *(0x1840c);
    0x000182e0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000182e4 str r3, [sp]                                  |             *(sp) = r3;
    0x000182e8 ldr r3, [pc, 0x124]                           |             r3 = *(0x18410);
    0x000182ec add r1, pc, r1                                |             r1 = pc + r1;
    0x000182f0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000182f4 mov r2, r0                                    |             r2 = r0;
    0x000182f8 mov r0, r4                                    |             r0 = r4;
    0x000182fc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00018300 ldr r0, [pc, 0x110]                           |             r0 = *(0x18414);
    0x00018304 mov r2, fp                                    |             r2 = fp;
    0x00018308 mov r1, r8                                    |             r1 = r8;
    0x0001830c add r0, pc, r0                                |             r0 = pc + r0;
    0x00018310 bl 0x17b10                                    |             fcn_00017b10 ();
                                                             |         }
                                                             | label_4:
    0x00018314 mvn r4, 0x15                                  |         r4 = ~0x15;
    0x00018318 b 0x18230                                     |         goto label_1;
                                                             |     }
    0x0001831c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00018320 beq 0x18370                                   |         
    0x00018324 ldr r3, [pc, 0xa8]                            |         r3 = *(0x183d0);
    0x00018328 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001832c ldr r7, [r3]                                  |         r7 = *(0x183d0);
    0x00018330 bl 0x8204                                     |         getpid ();
    0x00018334 ldr r3, [pc, 0xe0]                            |         r3 = *(0x18418);
    0x00018338 ldr r1, [pc, 0xe0]                            |         r1 = *(0x1841c);
    0x0001833c add r3, pc, r3                                |         r3 = pc + r3;
    0x00018340 str r3, [sp]                                  |         *(sp) = r3;
    0x00018344 ldr r3, [pc, 0xd8]                            |         r3 = *(0x18420);
    0x00018348 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001834c add r3, pc, r3                                |         r3 = pc + r3;
    0x00018350 mov r2, r0                                    |         r2 = r0;
    0x00018354 mov r0, r7                                    |         r0 = r7;
    0x00018358 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001835c ldr r0, [pc, 0xc4]                            |         r0 = *(0x18424);
    0x00018360 mov r2, r5                                    |         r2 = r5;
    0x00018364 mov r1, r8                                    |         r1 = r8;
    0x00018368 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001836c bl 0x17b10                                    |         fcn_00017b10 ();
                                                             |     }
    0x00018370 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x00018374 beq 0x18230                                   |         goto label_1;
                                                             |     }
    0x00018378 cmp r5, 0                                     |     
    0x0001837c str r6, [sb]                                  |     *(sb) = r6;
                                                             |     if (r5 != 0) {
    0x00018380 beq 0x18390                                   |         
    0x00018384 ldrsb r3, [r5]                                |         r3 = *(r5);
    0x00018388 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001838c bne 0x183a8                                   |             goto label_7;
                                                             |         }
                                                             |     }
    0x00018390 mov r3, 0x2e                                  |     r3 = 0x2e;
    0x00018394 strh r3, [r6]                                 |     *(r6) = r3;
                                                             |     do {
                                                             | label_2:
    0x00018398 mov r0, r4                                    |         r0 = r4;
    0x0001839c add sp, sp, 0x1000                            |         
    0x000183a0 add sp, sp, 0xc                               |         
    0x000183a4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_7:
    0x000183a8 mov r0, r5                                    |         r0 = r5;
    0x000183ac bl 0x905c                                     |         strlen (r0);
    0x000183b0 mov r1, r5                                    |         r1 = r5;
    0x000183b4 add r2, r0, 1                                 |         r2 = r0 + 1;
    0x000183b8 mov r0, r6                                    |         r0 = r6;
    0x000183bc bl 0x8078                                     |         memmove (r0, r1, r2);
    0x000183c0 b 0x18398                                     |         
                                                             |     } while (1);
                                                             | label_3:
    0x000183c4 mvn r4, 0x15                                  |     r4 = ~0x15;
    0x000183c8 b 0x18398                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x19038 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00019038 ()                                  | void fcn_00019038 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     char * s2;
                                                             |     char * s1;
                                                             |     size_t size;
                                                             |     char * src;
                                                             |     int32_t var_11ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00019038 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0001903c ldr r4, [pc, 0x218]                           |     r4 = *(0x19258);
    0x00019040 mov r5, r1                                    |     r5 = r1;
    0x00019044 ldr r1, [pc, 0x214]                           |     r1 = *(0x1925c);
    0x00019048 sub sp, sp, 0x11c                             |     
    0x0001904c add r1, pc, r1                                |     r1 = pc + r1;
    0x00019050 mov r6, r0                                    |     r6 = r0;
    0x00019054 mov r8, r2                                    |     r8 = r2;
    0x00019058 bl 0x91e8                                     |     fopen64 ();
    0x0001905c add r4, pc, r4                                |     r4 = pc + r4;
    0x00019060 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x00019064 beq 0x19254                                   |         goto label_4;
                                                             |     }
    0x00019068 ldr r3, [pc, 0x1f4]                           |     
    0x0001906c ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00019070 ldr r3, [r3]                                  |     r3 = *(0x19260);
    0x00019074 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x00019078 beq 0x190c4                                   |         
    0x0001907c ldr r3, [pc, 0x1e4]                           |         r3 = *(0x19264);
    0x00019080 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x00019084 ldr r4, [r3]                                  |         r4 = *(0x19264);
    0x00019088 bl 0x8204                                     |         getpid ();
    0x0001908c ldr r3, [pc, 0x1d8]                           |         r3 = *(0x19268);
    0x00019090 ldr r1, [pc, 0x1d8]                           |         r1 = *(0x1926c);
    0x00019094 add r3, pc, r3                                |         r3 = pc + r3;
    0x00019098 str r3, [sp]                                  |         *(sp) = r3;
    0x0001909c ldr r3, [pc, 0x1d0]                           |         r3 = *(0x19270);
    0x000190a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000190a4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000190a8 mov r2, r0                                    |         r2 = r0;
    0x000190ac mov r0, r4                                    |         r0 = r4;
    0x000190b0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000190b4 ldr r0, [pc, 0x1bc]                           |         r0 = *(0x19274);
    0x000190b8 mov r1, r6                                    |         r1 = r6;
    0x000190bc add r0, pc, r0                                |         r0 = pc + r0;
    0x000190c0 bl 0x17b10                                    |         fcn_00017b10 ();
                                                             |     }
    0x000190c4 ldr r3, [pc, 0x1b0]                           |     r3 = *(0x19278);
    0x000190c8 ldr sl, [pc, 0x1b0]                           |     sl = *(0x1927c);
    0x000190cc ldr fp, [pc, 0x1b0]                           |     fp = *(0x19280);
    0x000190d0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000190d4 add sl, pc, sl                                |     sl = pc + sl;
    0x000190d8 add fp, pc, fp                                |     
    0x000190dc str r3, [sp, 0xc]                             |     s2 = r3;
                                                             |     do {
                                                             | label_0:
    0x000190e0 add sb, sp, 0x10                              |         sb += s1;
    0x000190e4 mov r2, r7                                    |         r2 = r7;
    0x000190e8 mov r1, 0x81                                  |         r1 = 0x81;
    0x000190ec mov r0, sb                                    |         r0 = sb;
    0x000190f0 bl 0x824c                                     |         fgets (r0, r1, r2);
    0x000190f4 subs r4, r0, 0                                |         r4 -= s1;
                                                             |         if (r4 == s1) {
    0x000190f8 beq 0x19214                                   |             goto label_5;
                                                             |         }
    0x000190fc ldrsb r2, [sb]                                |         r2 = *(sb);
    0x00019100 cmp r2, 0x23                                  |         
    0x00019104 beq 0x190e0                                   |         
                                                             |     } while (r2 == 0x23);
    0x00019108 mov r2, 5                                     |     r2 = 5;
    0x0001910c ldr r1, [sp, 0xc]                             |     r1 = s2;
    0x00019110 mov r0, sb                                    |     r0 = sb;
    0x00019114 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00019118 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001911c beq 0x190e0                                   |         goto label_0;
                                                             |     }
    0x00019120 add r6, sp, 0x94                              |     r6 += src;
    0x00019124 mov r2, r6                                    |     r2 = r6;
    0x00019128 mov r1, sl                                    |     r1 = sl;
    0x0001912c mov r0, sb                                    |     r0 = sb;
    0x00019130 bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x00019134 cmp r0, 1                                     |     
    0x00019138 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 != 1) {
    0x0001913c bne 0x190e0                                   |         goto label_0;
                                                             |     }
    0x00019140 mov r1, fp                                    |     r1 = fp;
    0x00019144 mov r0, r6                                    |     r0 = r6;
    0x00019148 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x0001914c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019150 beq 0x19214                                   |         goto label_5;
                                                             |     }
    0x00019154 cmp r8, 0                                     |     
    0x00019158 bne 0x19188                                   |     
                                                             |     while (r0 != 0) {
    0x0001915c cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00019160 bne 0x191a0                                   |             goto label_6;
                                                             |         }
    0x00019164 ldr r3, [pc, 0x11c]                           |         
    0x00019168 ldr r1, [pc, 0x11c]                           |         r1 = *(0x19288);
    0x0001916c ldr r0, [pc, 0x11c]                           |         r0 = *(0x1928c);
    0x00019170 add r3, pc, r3                                |         r3 = pc + r3;
    0x00019174 add r3, r3, 0x49                              |         r3 = 0x192cd;
    0x00019178 mov r2, 0x1c8                                 |         r2 = 0x1c8;
    0x0001917c add r1, pc, r1                                |         r1 = pc + r1;
    0x00019180 add r0, pc, r0                                |         r0 = pc + r0;
    0x00019184 bl 0x908c                                     |         assert ();
    0x00019188 mov r1, r8                                    |         r1 = r8;
    0x0001918c mov r0, r6                                    |         r0 = r6;
    0x00019190 bl 0x7ef8                                     |         r0 = fcn_00007ef8 ();
    0x00019194 cmp r0, 0                                     |         
    0x00019198 bne 0x1915c                                   |         
                                                             |     }
    0x0001919c b 0x190e0                                     |     goto label_0;
                                                             | label_6:
    0x000191a0 ldr sb, [r5]                                  |     sb = *(r5);
    0x000191a4 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x000191a8 moveq r4, sb                                  |         r4 = sb;
                                                             |     }
                                                             |     if (sb == 0) {
    0x000191ac beq 0x191ec                                   |         goto label_7;
                                                             |     }
    0x000191b0 mov r4, 0                                     |     r4 = 0;
    0x000191b4 b 0x191cc                                     |     goto label_8;
                                                             | label_1:
    0x000191b8 mov r1, r6                                    |     r1 = r6;
    0x000191bc bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000191c0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000191c4 beq 0x190e0                                   |         goto label_0;
                                                             |     }
    0x000191c8 add r4, r4, 1                                 |     r4++;
                                                             | label_8:
    0x000191cc ldr r0, [sb, r4, lsl 2]                       |     offset_0 = r4 << 2;
                                                             |     r0 = *((sb + offset_0));
    0x000191d0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000191d4 bne 0x191b8                                   |         goto label_1;
                                                             |     }
    0x000191d8 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000191dc beq 0x191ec                                   |         
    0x000191e0 add r2, r4, 1                                 |         r2 = r4 + 1;
    0x000191e4 tst r2, 0xf                                   |         
                                                             |         if ((r2 & 0xf) != 0) {
    0x000191e8 bne 0x1922c                                   |             goto label_9;
                                                             |         }
                                                             |     }
                                                             | label_7:
    0x000191ec add r1, r4, 0x11                              |     r1 += size;
    0x000191f0 asr r1, r1, 4                                 |     r1 >>= 4;
    0x000191f4 lsl r1, r1, 6                                 |     r1 <<= 6;
    0x000191f8 mov r0, sb                                    |     r0 = sb;
    0x000191fc bl 0x89cc                                     |     r0 = realloc (r0, r1);
    0x00019200 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019204 bne 0x19228                                   |         
                                                             | label_2:
    0x00019208 ldr r0, [r5]                                  |         r0 = *(r5);
    0x0001920c bl 0x19008                                    |         fcn_00019008 (r0);
    0x00019210 mvn r4, 0xb                                   |         r4 = ~0xb;
                                                             | label_5:
    0x00019214 mov r0, r7                                    |         r0 = r7;
    0x00019218 bl 0x8b94                                     |         fclose (r0);
                                                             | label_3:
    0x0001921c mov r0, r4                                    |         r0 = r4;
    0x00019220 add sp, sp, 0x11c                             |         
    0x00019224 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00019228 str r0, [r5]                                  |     *(r5) = r0;
                                                             | label_9:
    0x0001922c mov r0, r6                                    |     r0 = r6;
    0x00019230 bl 0x8ae0                                     |     strdup (r0);
    0x00019234 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00019238 str r0, [r3, r4, lsl 2]                       |     offset_1 = r4 << 2;
                                                             |     *((r3 + offset_1)) = r0;
    0x0001923c add r4, r3, r4, lsl 2                         |     r4 = r3 + (r4 << 2);
    0x00019240 mov r3, 0                                     |     r3 = 0;
    0x00019244 cmp r0, r3                                    |     
    0x00019248 str r3, [r4, 4]                               |     *((r4 + 4)) = r3;
                                                             |     if (r0 != r3) {
    0x0001924c bne 0x190e0                                   |         goto label_0;
                                                             |     }
    0x00019250 b 0x19208                                     |     goto label_2;
                                                             | label_4:
    0x00019254 mov r4, 1                                     |     r4 = 1;
    0x00019258 b 0x1921c                                     |     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/lib/libmount.so.1.1.0 @ 0x19374 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00019374 ()                      | void fcn_00019374 (uint32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_28h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00019374 push {r4, r5, r6, r7, r8, lr}     |     
    0x00019378 ldr r7, [pc, 0xec]                |     r7 = *(0x19468);
    0x0001937c cmp r1, 0                         |     
    0x00019380 cmpne r0, 0                       |     __asm ("cmpne r0, 0");
    0x00019384 add r7, pc, r7                    |     r7 = pc + r7;
    0x00019388 sub sp, sp, 0x28                  |     
                                                 |     if (r1 != 0) {
    0x0001938c mvneq r4, 0x15                    |         r4 = ~0x15;
                                                 |     }
                                                 |     if (r1 != 0) {
    0x00019390 beq 0x19460                       |         
    0x00019394 mov r5, r0                        |         r5 = r0;
    0x00019398 mov r0, 0x4000                    |         r0 = 0x4000;
    0x0001939c mov r6, r1                        |         r6 = r1;
    0x000193a0 bl 0x83cc                         |         r0 = malloc (r0);
    0x000193a4 subs r8, r0, 0                    |         r8 = r0 - 0;
                                                 |         if (r8 != r0) {
    0x000193a8 mvneq r4, 0xb                     |             r4 = ~0xb;
                                                 |         }
                                                 |         if (r8 == r0) {
    0x000193ac beq 0x19460                       |             goto label_0;
                                                 |         }
    0x000193b0 add r3, sp, 8                     |         r3 += var_8h;
    0x000193b4 str r3, [sp]                      |         *(sp) = r3;
    0x000193b8 mov r2, r8                        |         r2 = r8;
    0x000193bc mov r3, 0x4000                    |         r3 = 0x4000;
    0x000193c0 add r1, sp, 0xc                   |         r1 += var_ch;
    0x000193c4 mov r0, r5                        |         r0 = r5;
    0x000193c8 bl 0x8e70                         |         r0 = getpwnam_r ();
    0x000193cc subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x000193d0 bne 0x193e8                       |             
    0x000193d4 ldr r3, [sp, 8]                   |             r3 = var_8h;
    0x000193d8 cmp r3, 0                         |             
                                                 |             if (r3 == 0) {
    0x000193dc ldrne r3, [r3, 8]                 |                 r3 = *((r3 + 8));
                                                 |             }
                                                 |             if (r3 == 0) {
    0x000193e0 strne r3, [r6]                    |                 *(r6) = r3;
                                                 |             }
                                                 |             if (r3 != 0) {
    0x000193e4 bne 0x19458                       |                 goto label_1;
                                                 |             }
                                                 |         }
    0x000193e8 ldr r3, [pc, 0x80]                |         
    0x000193ec ldr r3, [r7, r3]                  |         r3 = *((r7 + r3));
    0x000193f0 ldr r3, [r3]                      |         r3 = *(0x1946c);
    0x000193f4 tst r3, 0x100                     |         
                                                 |         if ((r3 & 0x100) != 0) {
    0x000193f8 beq 0x19444                       |             
    0x000193fc ldr r3, [pc, 0x70]                |             r3 = *(0x19470);
    0x00019400 ldr r3, [r7, r3]                  |             r3 = *((r7 + r3));
    0x00019404 ldr r4, [r3]                      |             r4 = *(0x19470);
    0x00019408 bl 0x8204                         |             getpid ();
    0x0001940c ldr r3, [pc, 0x64]                |             r3 = *(0x19474);
    0x00019410 ldr r1, [pc, 0x64]                |             r1 = *(0x19478);
    0x00019414 add r3, pc, r3                    |             r3 = pc + r3;
    0x00019418 str r3, [sp]                      |             *(sp) = r3;
    0x0001941c ldr r3, [pc, 0x5c]                |             r3 = *(0x1947c);
    0x00019420 add r1, pc, r1                    |             r1 = pc + r1;
    0x00019424 add r3, pc, r3                    |             r3 = pc + r3;
    0x00019428 mov r2, r0                        |             r2 = r0;
    0x0001942c mov r0, r4                        |             r0 = r4;
    0x00019430 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00019434 ldr r0, [pc, 0x48]                |             r0 = *(0x19480);
    0x00019438 mov r1, r5                        |             r1 = r5;
    0x0001943c add r0, pc, r0                    |             r0 = pc + r0;
    0x00019440 bl 0x17b10                        |             fcn_00017b10 ();
                                                 |         }
    0x00019444 bl 0x8f6c                         |         r0 = errno_location ();
    0x00019448 ldr r4, [r0]                      |         r4 = *(r0);
    0x0001944c cmp r4, 0                         |         
    0x00019450 rsbne r4, r4, 0                   |         __asm ("rsbne r4, r4, 0");
                                                 |         if (r4 != 0) {
    0x00019454 mvneq r4, 0x15                    |             r4 = ~0x15;
                                                 |         }
                                                 | label_1:
    0x00019458 mov r0, r8                        |         r0 = r8;
    0x0001945c bl 0x91c4                         |         free (r0);
                                                 |     }
                                                 | label_0:
    0x00019460 mov r0, r4                        |     r0 = r4;
    0x00019464 add sp, sp, 0x28                  |     
    0x00019468 pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x19488 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00019488 ()                      | void fcn_00019488 (uint32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_10h;
                                                 |     int32_t var_20h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00019488 push {r4, r5, r6, r7, r8, lr}     |     
    0x0001948c ldr r7, [pc, 0xec]                |     r7 = *(0x1957c);
    0x00019490 cmp r1, 0                         |     
    0x00019494 cmpne r0, 0                       |     __asm ("cmpne r0, 0");
    0x00019498 add r7, pc, r7                    |     r7 = pc + r7;
    0x0001949c sub sp, sp, 0x20                  |     
                                                 |     if (r1 != 0) {
    0x000194a0 mvneq r4, 0x15                    |         r4 = ~0x15;
                                                 |     }
                                                 |     if (r1 != 0) {
    0x000194a4 beq 0x19574                       |         
    0x000194a8 mov r5, r0                        |         r5 = r0;
    0x000194ac mov r0, 0x4000                    |         r0 = 0x4000;
    0x000194b0 mov r6, r1                        |         r6 = r1;
    0x000194b4 bl 0x83cc                         |         r0 = malloc (r0);
    0x000194b8 subs r8, r0, 0                    |         r8 = r0 - 0;
                                                 |         if (r8 != r0) {
    0x000194bc mvneq r4, 0xb                     |             r4 = ~0xb;
                                                 |         }
                                                 |         if (r8 == r0) {
    0x000194c0 beq 0x19574                       |             goto label_0;
                                                 |         }
    0x000194c4 add r3, sp, 0xc                   |         r3 += var_ch;
    0x000194c8 str r3, [sp]                      |         *(sp) = r3;
    0x000194cc mov r2, r8                        |         r2 = r8;
    0x000194d0 mov r3, 0x4000                    |         r3 = 0x4000;
    0x000194d4 add r1, sp, 0x10                  |         r1 += var_10h;
    0x000194d8 mov r0, r5                        |         r0 = r5;
    0x000194dc bl 0x8b88                         |         r0 = getgrnam_r ();
    0x000194e0 subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x000194e4 bne 0x194fc                       |             
    0x000194e8 ldr r3, [sp, 0xc]                 |             r3 = var_ch;
    0x000194ec cmp r3, 0                         |             
                                                 |             if (r3 == 0) {
    0x000194f0 ldrne r3, [r3, 8]                 |                 r3 = *((r3 + 8));
                                                 |             }
                                                 |             if (r3 == 0) {
    0x000194f4 strne r3, [r6]                    |                 *(r6) = r3;
                                                 |             }
                                                 |             if (r3 != 0) {
    0x000194f8 bne 0x1956c                       |                 goto label_1;
                                                 |             }
                                                 |         }
    0x000194fc ldr r3, [pc, 0x80]                |         
    0x00019500 ldr r3, [r7, r3]                  |         r3 = *((r7 + r3));
    0x00019504 ldr r3, [r3]                      |         r3 = *(0x19580);
    0x00019508 tst r3, 0x100                     |         
                                                 |         if ((r3 & 0x100) != 0) {
    0x0001950c beq 0x19558                       |             
    0x00019510 ldr r3, [pc, 0x70]                |             r3 = *(0x19584);
    0x00019514 ldr r3, [r7, r3]                  |             r3 = *((r7 + r3));
    0x00019518 ldr r4, [r3]                      |             r4 = *(0x19584);
    0x0001951c bl 0x8204                         |             getpid ();
    0x00019520 ldr r3, [pc, 0x64]                |             r3 = *(0x19588);
    0x00019524 ldr r1, [pc, 0x64]                |             r1 = *(0x1958c);
    0x00019528 add r3, pc, r3                    |             r3 = pc + r3;
    0x0001952c str r3, [sp]                      |             *(sp) = r3;
    0x00019530 ldr r3, [pc, 0x5c]                |             r3 = *(0x19590);
    0x00019534 add r1, pc, r1                    |             r1 = pc + r1;
    0x00019538 add r3, pc, r3                    |             r3 = pc + r3;
    0x0001953c mov r2, r0                        |             r2 = r0;
    0x00019540 mov r0, r4                        |             r0 = r4;
    0x00019544 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00019548 ldr r0, [pc, 0x48]                |             r0 = *(0x19594);
    0x0001954c mov r1, r5                        |             r1 = r5;
    0x00019550 add r0, pc, r0                    |             r0 = pc + r0;
    0x00019554 bl 0x17b10                        |             fcn_00017b10 ();
                                                 |         }
    0x00019558 bl 0x8f6c                         |         r0 = errno_location ();
    0x0001955c ldr r4, [r0]                      |         r4 = *(r0);
    0x00019560 cmp r4, 0                         |         
    0x00019564 rsbne r4, r4, 0                   |         __asm ("rsbne r4, r4, 0");
                                                 |         if (r4 != 0) {
    0x00019568 mvneq r4, 0x15                    |             r4 = ~0x15;
                                                 |         }
                                                 | label_1:
    0x0001956c mov r0, r8                        |         r0 = r8;
    0x00019570 bl 0x91c4                         |         free (r0);
                                                 |     }
                                                 | label_0:
    0x00019574 mov r0, r4                        |     r0 = r4;
    0x00019578 add sp, sp, 0x20                  |     
    0x0001957c pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x19994 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00019994 ()                          | void fcn_00019994 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     int32_t var_18h;
                                                     |     int32_t var_74h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00019994 push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00019998 ldr r7, [pc, 0x1d4]                   |     r7 = *(0x19b70);
    0x0001999c subs r6, r0, 0                        |     r6 = r0 - 0;
    0x000199a0 add r7, pc, r7                        |     r7 = pc + r7;
    0x000199a4 sub sp, sp, 0x74                      |     
    0x000199a8 mov r5, r1                            |     r5 = r1;
                                                     |     if (r6 != r0) {
    0x000199ac beq 0x199bc                           |         
    0x000199b0 ldr r4, [r6]                          |         r4 = *(r6);
    0x000199b4 cmp r4, 0                             |         
                                                     |         if (r4 != 0) {
    0x000199b8 bne 0x19b68                           |             goto label_5;
                                                     |         }
                                                     |     }
    0x000199bc bl 0x19934                            |     fcn_00019934 ();
    0x000199c0 cmp r5, 0                             |     
    0x000199c4 mov r4, r0                            |     r4 = r0;
                                                     |     if (r5 != 0) {
    0x000199c8 beq 0x199d4                           |         
                                                     | label_3:
    0x000199cc mov r3, 0                             |         r3 = 0;
    0x000199d0 str r3, [r5]                          |         *(r5) = r3;
                                                     |     }
    0x000199d4 cmp r6, 0                             |     
                                                     |     if (r6 != 0) {
    0x000199d8 beq 0x199e8                           |         
                                                     | label_4:
    0x000199dc ldr r3, [r6]                          |         r3 = *(r6);
    0x000199e0 cmp r3, 0                             |         
                                                     |         if (r3 == 0) {
    0x000199e4 streq r4, [r6]                        |             *(r6) = r4;
                                                     |             goto label_6;
                                                     |         }
                                                     |     }
                                                     | label_6:
    0x000199e8 ldr r3, [pc, 0x188]                   |     r3 = *(0x19b74);
    0x000199ec ldr r8, [r7, r3]                      |     r8 = *((r7 + r3));
    0x000199f0 ldr r3, [r8]                          |     r3 = *(r8);
    0x000199f4 tst r3, 0x100                         |     
                                                     |     if ((r3 & 0x100) != 0) {
    0x000199f8 beq 0x19a44                           |         
    0x000199fc ldr r3, [pc, 0x178]                   |         r3 = *(0x19b78);
    0x00019a00 ldr r3, [r7, r3]                      |         r3 = *((r7 + r3));
    0x00019a04 ldr r6, [r3]                          |         r6 = *(0x19b78);
    0x00019a08 bl 0x8204                             |         getpid ();
    0x00019a0c ldr r3, [pc, 0x16c]                   |         r3 = *(0x19b7c);
    0x00019a10 ldr r1, [pc, 0x16c]                   |         r1 = *(0x19b80);
    0x00019a14 add r3, pc, r3                        |         r3 = pc + r3;
    0x00019a18 str r3, [sp]                          |         *(sp) = r3;
    0x00019a1c ldr r3, [pc, 0x164]                   |         r3 = *(0x19b84);
    0x00019a20 add r1, pc, r1                        |         r1 = pc + r1;
    0x00019a24 add r3, pc, r3                        |         r3 = pc + r3;
    0x00019a28 mov r2, r0                            |         r2 = r0;
    0x00019a2c mov r0, r6                            |         r0 = r6;
    0x00019a30 bl 0x8798                             |         fprintf (r0, r1, r2, r3)
    0x00019a34 ldr r0, [pc, 0x150]                   |         r0 = *(0x19b88);
    0x00019a38 mov r1, r4                            |         r1 = r4;
    0x00019a3c add r0, pc, r0                        |         r0 = pc + r0;
    0x00019a40 bl 0x17b10                            |         fcn_00017b10 ();
                                                     |     }
    0x00019a44 add r1, sp, 8                         |     r1 += var_8h;
    0x00019a48 mov r0, r4                            |     r0 = r4;
    0x00019a4c bl 0x8a98                             |     r0 = lstat64 ();
    0x00019a50 subs r1, r0, 0                        |     r1 = r0 - 0;
                                                     |     if (r1 != r0) {
    0x00019a54 bne 0x19a94                           |         goto label_7;
                                                     |     }
    0x00019a58 ldr r3, [sp, 0x18]                    |     r3 = var_18h;
    0x00019a5c and r3, r3, 0xf000                    |     r3 &= 0xf000;
    0x00019a60 cmp r3, 0x8000                        |     
                                                     |     if (r3 != fcn.00008000) {
    0x00019a64 bne 0x19adc                           |         goto label_1;
                                                     |     }
    0x00019a68 cmp r5, 0                             |     
    0x00019a6c bne 0x19a7c                           |     
                                                     |     while (1) {
                                                     | label_2:
    0x00019a70 mov r0, 1                             |         r0 = 1;
                                                     | label_0:
    0x00019a74 add sp, sp, 0x74                      |         
    0x00019a78 pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00019a7c mov r0, r4                            |         r0 = r4;
    0x00019a80 bl 0x17b9c                            |         r0 = fcn_00017b9c (r0, r1);
    0x00019a84 clz r0, r0                            |         r0 &= r0;
    0x00019a88 lsr r0, r0, 5                         |         r0 >>= 5;
    0x00019a8c str r0, [r5]                          |         *(r5) = r0;
    0x00019a90 b 0x19a70                             |         
                                                     |     }
                                                     | label_7:
    0x00019a94 cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x00019a98 beq 0x19adc                           |         
    0x00019a9c mov r0, r4                            |         r0 = r4;
    0x00019aa0 bl 0x8ae0                             |         r0 = strdup (r0);
    0x00019aa4 subs r6, r0, 0                        |         r6 = r0 - 0;
                                                     |         if (r6 == r0) {
    0x00019aa8 beq 0x19adc                           |             goto label_1;
                                                     |         }
    0x00019aac bl 0x2a12c                            |         fcn_0002a12c (r0);
    0x00019ab0 ldr r1, [pc, 0xd8]                    |         r1 = *(0x19b8c);
    0x00019ab4 mov r0, r6                            |         r0 = r6;
    0x00019ab8 bl 0x914c                             |         r0 = mkdir ();
    0x00019abc cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00019ac0 beq 0x19b38                           |             goto label_8;
                                                     |         }
    0x00019ac4 bl 0x8f6c                             |         r0 = errno_location ();
    0x00019ac8 ldr r3, [r0]                          |         r3 = *(r0);
    0x00019acc cmp r3, 0x11                          |         
                                                     |         if (r3 == 0x11) {
    0x00019ad0 beq 0x19b38                           |             goto label_8;
                                                     |         }
    0x00019ad4 mov r0, r6                            |         r0 = r6;
    0x00019ad8 bl 0x91c4                             |         free (r0);
                                                     |     }
                                                     | label_1:
    0x00019adc ldr r0, [r8]                          |     r0 = *(r8);
    0x00019ae0 ands r0, r0, 0x100                    |     r0 &= 0x100;
                                                     |     if (r0 == r0) {
    0x00019ae4 beq 0x19a74                           |         goto label_0;
                                                     |     }
    0x00019ae8 ldr r3, [pc, 0x8c]                    |     r3 = *(0x19b78);
    0x00019aec ldr r3, [r7, r3]                      |     r3 = *((r7 + r3));
    0x00019af0 ldr r5, [r3]                          |     r5 = *(0x19b78);
    0x00019af4 bl 0x8204                             |     getpid ();
    0x00019af8 ldr r3, [pc, 0x94]                    |     r3 = *(0x19b90);
    0x00019afc ldr r1, [pc, 0x94]                    |     r1 = *(0x19b94);
    0x00019b00 add r3, pc, r3                        |     r3 = pc + r3;
    0x00019b04 str r3, [sp]                          |     *(sp) = r3;
    0x00019b08 ldr r3, [pc, 0x8c]                    |     r3 = *(0x19b98);
    0x00019b0c add r1, pc, r1                        |     r1 = pc + r1;
    0x00019b10 add r3, pc, r3                        |     r3 = pc + r3;
    0x00019b14 mov r2, r0                            |     r2 = r0;
    0x00019b18 mov r0, r5                            |     r0 = r5;
    0x00019b1c bl 0x8798                             |     fprintf (r0, r1, r2, r3)
    0x00019b20 ldr r0, [pc, 0x78]                    |     r0 = *(0x19b9c);
    0x00019b24 mov r1, r4                            |     r1 = r4;
    0x00019b28 add r0, pc, r0                        |     r0 = pc + r0;
    0x00019b2c bl 0x17b10                            |     fcn_00017b10 ();
    0x00019b30 mov r0, 0                             |     r0 = 0;
    0x00019b34 b 0x19a74                             |     goto label_0;
                                                     | label_8:
    0x00019b38 mov r1, r6                            |     r1 = r6;
    0x00019b3c mov r0, r4                            |     r0 = r4;
    0x00019b40 bl 0x17b9c                            |     r0 = fcn_00017b9c (r0, r1);
    0x00019b44 mov sb, r0                            |     sb = r0;
    0x00019b48 clz r0, r0                            |     r0 &= r0;
    0x00019b4c lsr r0, r0, 5                         |     r0 >>= 5;
    0x00019b50 str r0, [r5]                          |     *(r5) = r0;
    0x00019b54 mov r0, r6                            |     r0 = r6;
    0x00019b58 bl 0x91c4                             |     free (r0);
    0x00019b5c cmp sb, 0                             |     
                                                     |     if (sb != 0) {
    0x00019b60 bne 0x19adc                           |         goto label_1;
                                                     |     }
    0x00019b64 b 0x19a70                             |     goto label_2;
                                                     | label_5:
    0x00019b68 cmp r1, 0                             |     
                                                     |     if (r1 != 0) {
    0x00019b6c bne 0x199cc                           |         goto label_3;
                                                     |     }
    0x00019b70 b 0x199dc                             |     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/lib/libmount.so.1.1.0 @ 0x19fb4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00019fb4 ()                                      | void fcn_00019fb4 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_8h;
                                                                 |     char * * endptr;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1000h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00019fb4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00019fb8 ldr r6, [pc, 0x410]                               |     r6 = *(0x1a3cc);
    0x00019fbc sub sp, sp, 0x1000                                |     
    0x00019fc0 subs r7, r3, 0                                    |     r7 = r3 - 0;
    0x00019fc4 add r6, pc, r6                                    |     r6 = pc + r6;
    0x00019fc8 sub sp, sp, 0x1c                                  |     
                                                                 |     if (r7 == r3) {
    0x00019fcc bne 0x19ff4                                       |         
    0x00019fd0 ldr r3, [pc, 0x3fc]                               |         
    0x00019fd4 ldr r1, [pc, 0x3fc]                               |         r1 = *(0x1a3d4);
    0x00019fd8 ldr r0, [pc, 0x3fc]                               |         r0 = *(0x1a3d8);
    0x00019fdc add r3, pc, r3                                    |         r3 = pc + r3;
    0x00019fe0 add r3, r3, 0x58                                  |         r3 = 0x1a428;
    0x00019fe4 ldr r2, [pc, 0x3f4]                               |         r2 = *(0x1a3dc);
    0x00019fe8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x00019fec add r0, pc, r0                                    |         r0 = pc + r0;
    0x00019ff0 bl 0x908c                                         |         r0 = assert ();
                                                                 |     }
    0x00019ff4 mov r8, r0                                        |     r8 = r0;
    0x00019ff8 mov sb, r1                                        |     sb = r1;
    0x00019ffc mov r4, r2                                        |     r4 = r2;
    0x0001a000 bl 0x8294                                         |     gnu_dev_major ();
    0x0001a004 ldr r3, [pc, 0x3d8]                               |     r3 = *(0x1a3e0);
    0x0001a008 ldr sl, [r6, r3]                                  |     sl = *((r6 + r3));
    0x0001a00c ldr r3, [sl]                                      |     r3 = *(sl);
    0x0001a010 tst r3, 0x100                                     |     
    0x0001a014 mov r5, r0                                        |     r5 = r0;
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0001a018 beq 0x1a074                                       |         
    0x0001a01c ldr r3, [pc, 0x3c4]                               |         r3 = *(0x1a3e4);
    0x0001a020 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001a024 ldr fp, [r3]                                      |         fp = *(0x1a3e4);
    0x0001a028 bl 0x8204                                         |         getpid ();
    0x0001a02c ldr r3, [pc, 0x3b8]                               |         r3 = *(0x1a3e8);
    0x0001a030 ldr r1, [pc, 0x3b8]                               |         r1 = *(0x1a3ec);
    0x0001a034 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001a038 str r3, [sp]                                      |         *(sp) = r3;
    0x0001a03c ldr r3, [pc, 0x3b0]                               |         r3 = *(0x1a3f0);
    0x0001a040 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001a044 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001a048 mov r2, r0                                        |         r2 = r0;
    0x0001a04c mov r0, fp                                        |         r0 = fp;
    0x0001a050 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001a054 mov r1, sb                                        |         r1 = sb;
    0x0001a058 mov r0, r8                                        |         r0 = r8;
    0x0001a05c bl 0x8570                                         |         gnu_dev_minor ();
    0x0001a060 mov r1, r5                                        |         r1 = r5;
    0x0001a064 mov r2, r0                                        |         r2 = r0;
    0x0001a068 ldr r0, [pc, 0x388]                               |         r0 = *(0x1a3f4);
    0x0001a06c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001a070 bl 0x17b10                                        |         fcn_00017b10 ();
                                                                 |     }
    0x0001a074 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0001a078 beq 0x1a0f8                                       |         
    0x0001a07c mov r3, 0x1000                                    |         r3 = 0x1000;
    0x0001a080 add r2, sp, 0x18                                  |         r2 += var_18h;
    0x0001a084 mov r0, r8                                        |         r0 = r8;
    0x0001a088 mov r1, sb                                        |         r1 = sb;
    0x0001a08c bl 0x3cecc                                        |         r0 = fcn_0003cecc ();
    0x0001a090 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 != r0) {
    0x0001a094 beq 0x1a0f8                                       |             
    0x0001a098 ldr r4, [sl]                                      |             r4 = *(sl);
    0x0001a09c ands r4, r4, 0x100                                |             r4 &= 0x100;
                                                                 |             if (r4 != r4) {
    0x0001a0a0 beq 0x1a0f0                                       |                 
    0x0001a0a4 ldr r3, [pc, 0x33c]                               |                 r3 = *(0x1a3e4);
    0x0001a0a8 ldr r3, [r6, r3]                                  |                 r3 = *((r6 + r3));
    0x0001a0ac ldr r4, [r3]                                      |                 r4 = *(0x1a3e4);
    0x0001a0b0 bl 0x8204                                         |                 getpid ();
    0x0001a0b4 ldr r3, [pc, 0x340]                               |                 r3 = *(0x1a3f8);
    0x0001a0b8 ldr r1, [pc, 0x340]                               |                 r1 = *(0x1a3fc);
    0x0001a0bc add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0001a0c0 str r3, [sp]                                      |                 *(sp) = r3;
    0x0001a0c4 ldr r3, [pc, 0x338]                               |                 r3 = *(0x1a400);
    0x0001a0c8 add r1, pc, r1                                    |                 r1 = pc + r1;
    0x0001a0cc add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0001a0d0 mov r2, r0                                        |                 r2 = r0;
    0x0001a0d4 mov r0, r4                                        |                 r0 = r4;
    0x0001a0d8 bl 0x8798                                         |                 fprintf (r0, r1, r2, r3)
    0x0001a0dc ldr r0, [pc, 0x324]                               |                 r0 = *(0x1a404);
    0x0001a0e0 mov r1, r5                                        |                 r1 = r5;
    0x0001a0e4 add r0, pc, r0                                    |                 r0 = pc + r0;
    0x0001a0e8 bl 0x17b10                                        |                 fcn_00017b10 ();
    0x0001a0ec mov r4, 0                                         |                 r4 = 0;
                                                                 |             }
    0x0001a0f0 mov r8, r4                                        |             r8 = r4;
    0x0001a0f4 b 0x1a1ac                                         |             
                                                                 |         }
                                                                 |     } else {
    0x0001a0f8 ldr r0, [pc, 0x30c]                               |         r0 = *(0x1a408);
    0x0001a0fc add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001a100 bl 0x19dc0                                        |         r0 = fcn_00019dc0 (r0);
    0x0001a104 subs r8, r0, 0                                    |         r8 = r0 - 0;
                                                                 |         if (r8 == r0) {
    0x0001a108 beq 0x1a3c8                                       |             goto label_3;
                                                                 |         }
    0x0001a10c ldr r1, [pc, 0x2fc]                               |         r1 = *(0x1a40c);
    0x0001a110 add r5, sp, 0x18                                  |         r5 += var_18h;
    0x0001a114 sub r3, r5, 8                                     |         r3 -= var_8h;
    0x0001a118 sub r2, r5, 0xc                                   |         r2 -= var_ch;
    0x0001a11c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001a120 bl 0x8a74                                         |         r0 = sscanf (r0, r1, r2);
    0x0001a124 cmp r0, 2                                         |         
                                                                 |         if (r0 != 2) {
    0x0001a128 bne 0x1a1f0                                       |             goto label_4;
                                                                 |         }
    0x0001a12c ldr r1, [r5, -8]                                  |         r1 = var_8h;
    0x0001a130 ldr r0, [r5, -0xc]                                |         r0 = var_ch;
    0x0001a134 bl 0x8fd8                                         |         gnu_dev_makedev ();
    0x0001a138 mov r2, r5                                        |         r2 = r5;
    0x0001a13c mov r3, 0x1000                                    |         r3 = 0x1000;
    0x0001a140 bl 0x3cecc                                        |         r0 = fcn_0003cecc ();
    0x0001a144 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 != r0) {
    0x0001a148 moveq r4, r5                                      |             r4 = r5;
                                                                 |         }
                                                                 |         if (r5 == r0) {
    0x0001a14c beq 0x1a1ac                                       |             goto label_1;
                                                                 |         }
    0x0001a150 ldr r4, [sl]                                      |         r4 = *(sl);
    0x0001a154 ands r4, r4, 0x100                                |         r4 &= 0x100;
                                                                 |         if (r4 == r4) {
    0x0001a158 beq 0x1a1ac                                       |             goto label_1;
                                                                 |         }
    0x0001a15c ldr r3, [pc, 0x284]                               |         r3 = *(0x1a3e4);
    0x0001a160 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001a164 ldr r4, [r3]                                      |         r4 = *(0x1a3e4);
    0x0001a168 bl 0x8204                                         |         getpid ();
    0x0001a16c ldr r3, [pc, 0x2a0]                               |         r3 = *(0x1a410);
    0x0001a170 ldr r1, [pc, 0x2a0]                               |         r1 = *(0x1a414);
    0x0001a174 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001a178 str r3, [sp]                                      |         *(sp) = r3;
    0x0001a17c ldr r3, [pc, 0x298]                               |         r3 = *(0x1a418);
    0x0001a180 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001a184 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001a188 mov r2, r0                                        |         r2 = r0;
    0x0001a18c mov r0, r4                                        |         r0 = r4;
    0x0001a190 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001a194 ldr r0, [pc, 0x284]                               |         r0 = *(0x1a41c);
    0x0001a198 mov r2, r5                                        |         r2 = r5;
    0x0001a19c mov r1, r8                                        |         r1 = r8;
    0x0001a1a0 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001a1a4 bl 0x17b10                                        |         fcn_00017b10 ();
                                                                 | label_2:
    0x0001a1a8 mov r4, 0                                         |         r4 = 0;
                                                                 |     }
                                                                 |     do {
                                                                 | label_1:
    0x0001a1ac mov r0, r8                                        |         r0 = r8;
    0x0001a1b0 bl 0x91c4                                         |         free (r0);
    0x0001a1b4 cmp r5, 0                                         |         
                                                                 |         if (r5 != 0) {
    0x0001a1b8 moveq r0, 1                                       |             r0 = 1;
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x0001a1bc beq 0x1a1e4                                       |             
    0x0001a1c0 cmp r4, 0                                         |             
                                                                 |             if (r4 == 0) {
    0x0001a1c4 bne 0x1a1d4                                       |                 
    0x0001a1c8 mov r0, r5                                        |                 r0 = r5;
    0x0001a1cc bl 0x8ae0                                         |                 r0 = strdup (r0);
    0x0001a1d0 mov r5, r0                                        |                 r5 = r0;
                                                                 |             }
    0x0001a1d4 cmp r5, 0                                         |             
                                                                 |             if (r5 == 0) {
    0x0001a1d8 movne r0, 0                                       |                 r0 = 0;
                                                                 |             }
                                                                 |             if (r5 != 0) {
    0x0001a1dc mvneq r0, 0xb                                     |                 r0 = ~0xb;
                                                                 |             }
    0x0001a1e0 str r5, [r7]                                      |             *(r7) = r5;
                                                                 |         }
    0x0001a1e4 add sp, sp, 0x1000                                |         
    0x0001a1e8 add sp, sp, 0x1c                                  |         
    0x0001a1ec pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_4:
    0x0001a1f0 mov r1, 0                                         |         r1 = 0;
    0x0001a1f4 mov r0, r8                                        |         r0 = r8;
    0x0001a1f8 bl 0x2fd20                                        |         r0 = fcn_0002fd20 (r0, r1);
    0x0001a1fc cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001a200 beq 0x1a350                                       |             goto label_5;
                                                                 |         }
    0x0001a204 mov fp, 0                                         |         
    0x0001a208 mov r4, r5                                        |         r4 = r5;
    0x0001a20c str fp, [r4, -4]!                                 |         *((r4 -= 4)) = fp;
    0x0001a210 bl 0x8f6c                                         |         errno_location ();
    0x0001a214 mov r1, r4                                        |         r1 = r4;
    0x0001a218 mov r2, 0x10                                      |         r2 = 0x10;
    0x0001a21c mov sb, r0                                        |         sb = r0;
    0x0001a220 str fp, [r0]                                      |         *(r0) = fp;
    0x0001a224 mov r0, r8                                        |         r0 = r8;
    0x0001a228 bl 0x8450                                         |         strtoul (r0, r1, r2);
    0x0001a22c ldr r4, [sb]                                      |         r4 = *(sb);
    0x0001a230 cmp r4, fp                                        |         
    0x0001a234 mov r3, r0                                        |         r3 = r0;
                                                                 |         if (r4 == fp) {
    0x0001a238 bne 0x1a25c                                       |             
    0x0001a23c ldr r2, [r5, -4]                                  |             r2 = endptr;
    0x0001a240 cmp r2, r8                                        |             
                                                                 |             if (r2 == r8) {
    0x0001a244 beq 0x1a25c                                       |                 goto label_6;
                                                                 |             }
    0x0001a248 cmp r2, fp                                        |             
                                                                 |             if (r2 == fp) {
    0x0001a24c beq 0x1a2bc                                       |                 goto label_7;
                                                                 |             }
    0x0001a250 ldrsb r2, [r2]                                    |             r2 = *(r2);
    0x0001a254 cmp r2, fp                                        |             
                                                                 |             if (r2 == fp) {
    0x0001a258 beq 0x1a2bc                                       |                 goto label_7;
                                                                 |             }
                                                                 |         }
                                                                 | label_6:
    0x0001a25c ldr r3, [sl]                                      |         r3 = *(sl);
    0x0001a260 tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0001a264 beq 0x1a2b0                                       |             
    0x0001a268 ldr r3, [pc, 0x178]                               |             r3 = *(0x1a3e4);
    0x0001a26c ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x0001a270 ldr r4, [r3]                                      |             r4 = *(0x1a3e4);
    0x0001a274 bl 0x8204                                         |             getpid ();
    0x0001a278 ldr r3, [pc, 0x1a4]                               |             r3 = *(0x1a420);
    0x0001a27c ldr r1, [pc, 0x1a4]                               |             r1 = *(0x1a424);
    0x0001a280 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001a284 str r3, [sp]                                      |             *(sp) = r3;
    0x0001a288 ldr r3, [pc, 0x19c]                               |             r3 = *(0x1a428);
    0x0001a28c add r1, pc, r1                                    |             r1 = pc + r1;
    0x0001a290 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001a294 mov r2, r0                                        |             r2 = r0;
    0x0001a298 mov r0, r4                                        |             r0 = r4;
    0x0001a29c bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
    0x0001a2a0 ldr r0, [pc, 0x188]                               |             r0 = *(0x1a42c);
    0x0001a2a4 mov r1, r8                                        |             r1 = r8;
    0x0001a2a8 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0001a2ac bl 0x17b10                                        |             fcn_00017b10 ();
                                                                 |         }
                                                                 | label_0:
    0x0001a2b0 mov r4, 0                                         |         r4 = 0;
    0x0001a2b4 mov r5, r4                                        |         r5 = r4;
    0x0001a2b8 b 0x1a1ac                                         |         
                                                                 |     } while (1);
                                                                 | label_7:
    0x0001a2bc ldr r0, [pc, 0x170]                               |     r0 = *(0x1a430);
    0x0001a2c0 ldr r1, [pc, 0x170]                               |     r1 = *(0x1a434);
    0x0001a2c4 and r0, r0, r3, lsr 8                             |     r0 &= (r3 >> 8);
    0x0001a2c8 and r1, r1, r3, lsr 12                            |     r1 &= (r3 >> 12);
    0x0001a2cc and r3, r3, 0xff                                  |     r3 &= 0xff;
    0x0001a2d0 orr r1, r1, r3                                    |     r1 |= r3;
    0x0001a2d4 str r0, [r5, -0xc]                                |     var_ch = r0;
    0x0001a2d8 str r1, [r5, -8]                                  |     var_8h = r1;
    0x0001a2dc bl 0x8fd8                                         |     gnu_dev_makedev ();
    0x0001a2e0 mov r2, r5                                        |     r2 = r5;
    0x0001a2e4 mov r3, 0x1000                                    |     r3 = 0x1000;
    0x0001a2e8 bl 0x3cecc                                        |     r0 = fcn_0003cecc ();
    0x0001a2ec subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 == r0) {
    0x0001a2f0 beq 0x1a2b0                                       |         goto label_0;
                                                                 |     }
    0x0001a2f4 ldr r3, [sl]                                      |     r3 = *(sl);
    0x0001a2f8 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001a2fc beq 0x1a1ac                                       |         goto label_1;
                                                                 |     }
    0x0001a300 ldr r3, [pc, 0xe0]                                |     r3 = *(0x1a3e4);
    0x0001a304 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0001a308 ldr r6, [r3]                                      |     r6 = *(0x1a3e4);
    0x0001a30c bl 0x8204                                         |     getpid ();
    0x0001a310 ldr r3, [pc, 0x124]                               |     r3 = *(0x1a438);
    0x0001a314 ldr r1, [pc, 0x124]                               |     r1 = *(0x1a43c);
    0x0001a318 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001a31c str r3, [sp]                                      |     *(sp) = r3;
    0x0001a320 ldr r3, [pc, 0x11c]                               |     r3 = *(0x1a440);
    0x0001a324 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001a328 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001a32c mov r2, r0                                        |     r2 = r0;
    0x0001a330 mov r0, r6                                        |     r0 = r6;
    0x0001a334 bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x0001a338 ldr r0, [pc, 0x108]                               |     r0 = *(0x1a444);
    0x0001a33c mov r2, r5                                        |     r2 = r5;
    0x0001a340 mov r1, r8                                        |     r1 = r8;
    0x0001a344 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001a348 bl 0x17b10                                        |     fcn_00017b10 ();
    0x0001a34c b 0x1a1ac                                         |     goto label_1;
                                                                 | label_5:
    0x0001a350 ldr r3, [sl]                                      |     r3 = *(sl);
    0x0001a354 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0001a358 beq 0x1a3a4                                       |         
    0x0001a35c ldr r3, [pc, 0x84]                                |         r3 = *(0x1a3e4);
    0x0001a360 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001a364 ldr r5, [r3]                                      |         r5 = *(0x1a3e4);
    0x0001a368 bl 0x8204                                         |         getpid ();
    0x0001a36c ldr r3, [pc, 0xd8]                                |         r3 = *(0x1a448);
    0x0001a370 ldr r1, [pc, 0xd8]                                |         r1 = *(0x1a44c);
    0x0001a374 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001a378 str r3, [sp]                                      |         *(sp) = r3;
    0x0001a37c ldr r3, [pc, 0xd0]                                |         r3 = *(0x1a450);
    0x0001a380 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001a384 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001a388 mov r2, r0                                        |         r2 = r0;
    0x0001a38c mov r0, r5                                        |         r0 = r5;
    0x0001a390 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001a394 ldr r0, [pc, 0xbc]                                |         r0 = *(0x1a454);
    0x0001a398 mov r1, r8                                        |         r1 = r8;
    0x0001a39c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001a3a0 bl 0x17b10                                        |         fcn_00017b10 ();
                                                                 |     }
    0x0001a3a4 mov r1, r4                                        |     r1 = r4;
    0x0001a3a8 mov r0, r8                                        |     r0 = r8;
    0x0001a3ac bl 0x7ec8                                         |     fcn_00007ec8 ();
    0x0001a3b0 clz r4, r4                                        |     r4 &= r4;
    0x0001a3b4 lsr r4, r4, 5                                     |     r4 >>= 5;
    0x0001a3b8 cmp r0, 0                                         |     
    0x0001a3bc mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 != 0) {
    0x0001a3c0 moveq r4, 0                                       |         r4 = 0;
                                                                 |     }
    0x0001a3c4 b 0x1a1ac                                         |     goto label_1;
                                                                 | label_3:
    0x0001a3c8 mov r5, r8                                        |     r5 = r8;
    0x0001a3cc b 0x1a1a8                                         |     goto label_2;
                                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1a538 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0001a538 ()                      | void fcn_0001a538 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0001a538 push {r1, r2, r3}                 |     
    0x0001a53c ldr r3, [pc, 0xa4]                |     r3 = *(0x1a5e4);
    0x0001a540 push {r0, r1, r2, r4, lr}         |     
    0x0001a544 ldr r1, [pc, 0xa0]                |     r1 = *(0x1a5e8);
    0x0001a548 add r3, pc, r3                    |     r3 = pc + r3;
    0x0001a54c subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0001a550 ldr r4, [r3, r1]                  |     r4 = *(0x1a5e4);
                                                 |     if (r2 != r0) {
    0x0001a554 beq 0x1a57c                       |         
    0x0001a558 ldr r1, [pc, 0x90]                |         r1 = *(0x1a5ec);
    0x0001a55c ldr r3, [r3, r1]                  |         r3 = *((r3 + r1));
    0x0001a560 ldr r3, [r3]                      |         r3 = *(r3);
    0x0001a564 tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0001a568 bne 0x1a57c                       |             goto label_1;
                                                 |         }
    0x0001a56c ldr r1, [pc, 0x80]                |         r1 = *(0x1a5f0);
    0x0001a570 ldr r0, [r4]                      |         r0 = *(r4);
    0x0001a574 add r1, pc, r1                    |         r1 = pc + r1;
    0x0001a578 bl 0x8798                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0001a57c add r2, sp, 0x18                  |     r2 += var_18h;
    0x0001a580 ldr r1, [sp, 0x14]                |     r1 = format;
    0x0001a584 ldr r0, [r4]                      |     r0 = *(r4);
    0x0001a588 str r2, [sp, 4]                   |     var_4h = r2;
    0x0001a58c bl 0x91a0                         |     vfprintf (r0, r1, r2)
    0x0001a590 ldr r1, [r4]                      |     r1 = *(r4);
    0x0001a594 ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0001a598 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0001a59c beq 0x1a5dc                       |         goto label_2;
                                                 |     }
    0x0001a5a0 ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0001a5a4 ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0001a5a8 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0001a5ac bhs 0x1a5d0                       |         goto label_3;
                                                 |     }
    0x0001a5b0 add r2, r3, 1                     |     r2 = r3 + 1;
    0x0001a5b4 str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0001a5b8 mov r2, 0xa                       |     r2 = 0xa;
    0x0001a5bc strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0001a5c0 add sp, sp, 0xc                   |         
    0x0001a5c4 pop {r4, lr}                      |         
    0x0001a5c8 add sp, sp, 0xc                   |         
    0x0001a5cc bx lr                             |         return;
                                                 | label_3:
    0x0001a5d0 mov r0, 0xa                       |         r0 = 0xa;
    0x0001a5d4 bl 0x91dc                         |         fputc_unlocked ();
    0x0001a5d8 b 0x1a5c0                         |         
                                                 |     } while (1);
                                                 | label_2:
    0x0001a5dc mov r0, 0xa                       |     r0 = 0xa;
    0x0001a5e0 bl 0x8ea0                         |     fputc (r0, r1);
    0x0001a5e4 b 0x1a5c0                         |     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/lib/libmount.so.1.1.0 @ 0x1a6b8 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.0001a6b8 ()                                  | void fcn_0001a6b8 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     r0 = arg1;
    0x0001a6b8 ldr r3, [pc, 0x104]                           |     r3 = *(0x1a7c0);
    0x0001a6bc push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0001a6c0 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001a6c4 add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     if (r4 != r0) {
    0x0001a6c8 mvneq r5, 0x15                                |         r5 = ~0x15;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x0001a6cc beq 0x1a754                                   |         goto label_0;
                                                             |     }
    0x0001a6d0 mov r5, r2                                    |     r5 = r2;
    0x0001a6d4 ldr r2, [pc, 0xec]                            |     
    0x0001a6d8 cmp r5, 0                                     |     
    0x0001a6dc ldr r2, [r3, r2]                              |     r2 = *((r3 + r2));
    0x0001a6e0 mov r6, r1                                    |     r6 = r1;
    0x0001a6e4 ldr r2, [r2]                                  |     r2 = "_S";
    0x0001a6e8 and r2, r2, 0x200                             |     r2 &= 0x200;
                                                             |     if (r5 == 0) {
    0x0001a6ec beq 0x1a760                                   |         goto label_1;
                                                             |     }
    0x0001a6f0 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0001a6f4 beq 0x1a744                                   |         
    0x0001a6f8 ldr r2, [pc, 0xcc]                            |         r2 = *(0x1a7c8);
    0x0001a6fc ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x0001a700 ldr r5, [r3]                                  |         r5 = *(r3);
    0x0001a704 bl 0x8204                                     |         getpid ();
    0x0001a708 ldr r3, [pc, 0xc0]                            |         r3 = *(0x1a7cc);
    0x0001a70c ldr r1, [pc, 0xc0]                            |         r1 = *(0x1a7d0);
    0x0001a710 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001a714 str r3, [sp]                                  |         *(sp) = r3;
    0x0001a718 ldr r3, [pc, 0xb8]                            |         r3 = *(0x1a7d4);
    0x0001a71c add r1, pc, r1                                |         r1 = pc + r1;
    0x0001a720 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001a724 mov r2, r0                                    |         r2 = r0;
    0x0001a728 mov r0, r5                                    |         r0 = r5;
    0x0001a72c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001a730 ldr r1, [pc, 0xa4]                            |         r1 = *(0x1a7d8);
    0x0001a734 mov r2, r6                                    |         r2 = r6;
    0x0001a738 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001a73c mov r0, r4                                    |         r0 = r4;
    0x0001a740 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001a744 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x0001a748 mov r5, 0                                     |     r5 = 0;
    0x0001a74c orr r6, r3, r6                                |     r6 = r3 | r6;
    0x0001a750 str r6, [r4, 0x6c]                            |     *((r4 + 0x6c)) = r6;
                                                             |     do {
                                                             | label_0:
    0x0001a754 mov r0, r5                                    |         r0 = r5;
    0x0001a758 add sp, sp, 0xc                               |         
    0x0001a75c pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_1:
    0x0001a760 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x0001a764 beq 0x1a7b4                                   |             
    0x0001a768 ldr r2, [pc, 0x5c]                            |             r2 = *(0x1a7c8);
    0x0001a76c ldr r3, [r3, r2]                              |             r3 = *((r3 + r2));
    0x0001a770 ldr r7, [r3]                                  |             r7 = *(r3);
    0x0001a774 bl 0x8204                                     |             getpid ();
    0x0001a778 ldr r3, [pc, 0x60]                            |             r3 = *(0x1a7dc);
    0x0001a77c ldr r1, [pc, 0x60]                            |             r1 = *(0x1a7e0);
    0x0001a780 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001a784 str r3, [sp]                                  |             *(sp) = r3;
    0x0001a788 ldr r3, [pc, 0x58]                            |             r3 = *(0x1a7e4);
    0x0001a78c add r1, pc, r1                                |             r1 = pc + r1;
    0x0001a790 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001a794 mov r2, r0                                    |             r2 = r0;
    0x0001a798 mov r0, r7                                    |             r0 = r7;
    0x0001a79c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001a7a0 ldr r1, [pc, 0x44]                            |             r1 = *(0x1a7e8);
    0x0001a7a4 mov r2, r6                                    |             r2 = r6;
    0x0001a7a8 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001a7ac mov r0, r4                                    |             r0 = r4;
    0x0001a7b0 bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001a7b4 ldr r3, [r4, 0x6c]                            |         r3 = *((r4 + 0x6c));
    0x0001a7b8 bic r6, r3, r6                                |         r6 = BIT_MASK (r3, r6);
    0x0001a7bc str r6, [r4, 0x6c]                            |         *((r4 + 0x6c)) = r6;
    0x0001a7c0 b 0x1a754                                     |         
                                                             |     } 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/lib/libmount.so.1.1.0 @ 0x1ab14 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0001ab14 ()                                                  | void fcn_0001ab14 (int32_t arg1, int32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_ch;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0001ab14 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001ab18 ldr sl, [pc, 0x358]                                           |     sl = *(0x1ae74);
    0x0001ab1c subs r4, r0, 0                                                |     r4 = r0 - 0;
    0x0001ab20 add sl, pc, sl                                                |     sl = pc + sl;
                                                                             |     if (r4 != r0) {
    0x0001ab24 bne 0x1ab48                                                   |         goto label_8;
                                                                             |     }
    0x0001ab28 ldr r3, [pc, 0x34c]                                           |     r3 = *(0x1ae78);
    0x0001ab2c ldr r1, [pc, 0x34c]                                           |     r1 = *(0x1ae7c);
    0x0001ab30 ldr r0, [pc, 0x34c]                                           |     r0 = *(0x1ae80);
    0x0001ab34 ldr r2, [pc, 0x34c]                                           |     r2 = *(0x1ae84);
    0x0001ab38 add r3, pc, r3                                                |     r3 = pc + r3;
    0x0001ab3c add r1, pc, r1                                                |     r1 = pc + r1;
    0x0001ab40 add r0, pc, r0                                                |     r0 = pc + r0;
                                                                             |     do {
    0x0001ab44 bl 0x908c                                                     |         assert ();
                                                                             | label_8:
    0x0001ab48 ldr r0, [r4, 0x10]                                            |         r0 = *((r4 + 0x10));
    0x0001ab4c cmp r0, 0                                                     |         
                                                                             |         if (r0 != 0) {
    0x0001ab50 bne 0x1ab74                                                   |             goto label_9;
                                                                             |         }
    0x0001ab54 ldr r3, [pc, 0x330]                                           |         r3 = *(0x1ae88);
    0x0001ab58 ldr r1, [pc, 0x330]                                           |         r1 = *(0x1ae8c);
    0x0001ab5c ldr r0, [pc, 0x330]                                           |         r0 = *(0x1ae90);
    0x0001ab60 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001ab64 ldr r2, [pc, 0x32c]                                           |         r2 = *(0x1ae94);
    0x0001ab68 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001ab6c add r0, pc, r0                                                |         r0 = pc + r0;
    0x0001ab70 b 0x1ab44                                                     |         
                                                                             |     } while (1);
                                                                             | label_9:
    0x0001ab74 mov r8, r1                                                    |     r8 = r1;
    0x0001ab78 mov sb, r2                                                    |     sb = r2;
    0x0001ab7c bl 0x8c90                                                     |     r0 = fcn_00008c90 ();
    0x0001ab80 mov r7, r0                                                    |     r7 = r0;
    0x0001ab84 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001ab88 bl 0x81d4                                                     |     r0 = fcn_000081d4 ();
    0x0001ab8c adds fp, r0, 0                                                |     
                                                                             |     if (fp == r0) {
    0x0001ab90 movne fp, 1                                                   |         
                                                                             |     }
    0x0001ab94 cmp r7, 0                                                     |     
    0x0001ab98 cmpne r0, 0                                                   |     __asm ("cmpne r0, 0");
    0x0001ab9c mov r6, r0                                                    |     r6 = r0;
                                                                             |     if (r7 != 0) {
    0x0001aba0 beq 0x1abc8                                                   |         
    0x0001aba4 mov r2, r0                                                    |         r2 = r0;
    0x0001aba8 mov r3, sb                                                    |         r3 = sb;
    0x0001abac mov r1, r7                                                    |         r1 = r7;
    0x0001abb0 mov r0, r8                                                    |         r0 = r8;
    0x0001abb4 bl 0x8330                                                     |         r0 = fcn_00008330 ();
                                                                             | label_1:
    0x0001abb8 mov r5, r0                                                    |         r5 = r0;
                                                                             | label_0:
    0x0001abbc cmp r5, 0                                                     |         
                                                                             |         if (r5 != 0) {
    0x0001abc0 bne 0x1abec                                                   |             goto label_10;
                                                                             |         }
    0x0001abc4 b 0x1ad84                                                     |         goto label_11;
                                                                             |     }
    0x0001abc8 cmp r7, 0                                                     |     
                                                                             |     if (r7 == 0) {
    0x0001abcc beq 0x1ad6c                                                   |         goto label_12;
                                                                             |     }
    0x0001abd0 mov r2, sb                                                    |     r2 = sb;
    0x0001abd4 mov r1, r7                                                    |     r1 = r7;
    0x0001abd8 mov r0, r8                                                    |     r0 = r8;
    0x0001abdc bl 0x8174                                                     |     r0 = fcn_00008174 ();
                                                                             |     do {
    0x0001abe0 cmp r0, 0                                                     |         
    0x0001abe4 mov r5, r0                                                    |         r5 = r0;
                                                                             |         if (r0 != 0) {
    0x0001abe8 beq 0x1ad74                                                   |             
                                                                             | label_10:
    0x0001abec ldr r3, [pc, 0x2a8]                                           |             r3 = *(0x1ae98);
    0x0001abf0 ldr r6, [sl, r3]                                              |             r6 = *((sl + r3));
    0x0001abf4 ldr r3, [r6]                                                  |             r3 = *(r6);
    0x0001abf8 tst r3, 0x200                                                 |             
                                                                             |             if ((r3 & 0x200) != 0) {
    0x0001abfc beq 0x1ac48                                                   |                 
    0x0001ac00 ldr r3, [pc, 0x298]                                           |                 r3 = *(0x1ae9c);
    0x0001ac04 ldr r3, [sl, r3]                                              |                 r3 = *((sl + r3));
    0x0001ac08 ldr r7, [r3]                                                  |                 r7 = *(0x1ae9c);
    0x0001ac0c bl 0x8204                                                     |                 getpid ();
    0x0001ac10 ldr r3, [pc, 0x28c]                                           |                 r3 = *(0x1aea0);
    0x0001ac14 ldr r1, [pc, 0x28c]                                           |                 r1 = *(0x1aea4);
    0x0001ac18 add r3, pc, r3                                                |                 r3 = pc + r3;
    0x0001ac1c str r3, [sp]                                                  |                 *(sp) = r3;
    0x0001ac20 ldr r3, [pc, 0x284]                                           |                 r3 = *(0x1aea8);
    0x0001ac24 add r1, pc, r1                                                |                 r1 = pc + r1;
    0x0001ac28 add r3, pc, r3                                                |                 r3 = pc + r3;
    0x0001ac2c mov r2, r0                                                    |                 r2 = r0;
    0x0001ac30 mov r0, r7                                                    |                 r0 = r7;
    0x0001ac34 bl 0x8798                                                     |                 fprintf (r0, r1, r2, r3)
    0x0001ac38 ldr r1, [pc, 0x270]                                           |                 r1 = *(0x1aeac);
    0x0001ac3c mov r0, r4                                                    |                 r0 = r4;
    0x0001ac40 add r1, pc, r1                                                |                 r1 = pc + r1;
    0x0001ac44 bl 0x1a538                                                    |                 fcn_0001a538 (r0);
                                                                             |             }
    0x0001ac48 ldr r3, [r6]                                                  |             r3 = *(r6);
    0x0001ac4c tst r3, 0x200                                                 |             
                                                                             |             if ((r3 & 0x200) != 0) {
    0x0001ac50 beq 0x1ac98                                                   |                 
    0x0001ac54 ldr r3, [pc, 0x244]                                           |                 r3 = *(0x1ae9c);
    0x0001ac58 ldr r6, [sl, r3]                                              |                 r6 = *((sl + r3));
    0x0001ac5c ldr r7, [r6]                                                  |                 r7 = *(r6);
    0x0001ac60 bl 0x8204                                                     |                 getpid ();
    0x0001ac64 ldr r3, [pc, 0x248]                                           |                 r3 = *(0x1aeb0);
    0x0001ac68 ldr r1, [pc, 0x248]                                           |                 r1 = *(0x1aeb4);
    0x0001ac6c add r3, pc, r3                                                |                 r3 = pc + r3;
    0x0001ac70 str r3, [sp]                                                  |                 *(sp) = r3;
    0x0001ac74 ldr r3, [pc, 0x240]                                           |                 r3 = "__trying_to_remount_read_only";
    0x0001ac78 add r1, pc, r1                                                |                 r1 = pc + r1;
    0x0001ac7c add r3, pc, r3                                                |                 r3 = pc + r3;
    0x0001ac80 mov r2, r0                                                    |                 r2 = r0;
    0x0001ac84 mov r0, r7                                                    |                 r0 = r7;
    0x0001ac88 bl 0x8798                                                     |                 fprintf (r0, r1, r2, r3)
    0x0001ac8c ldr r1, [r6]                                                  |                 r1 = *(r6);
    0x0001ac90 mov r0, r5                                                    |                 r0 = r5;
    0x0001ac94 bl 0x86f0                                                     |                 fcn_000086f0 ();
                                                                             |             }
    0x0001ac98 mov r0, r5                                                    |             r0 = r5;
    0x0001ac9c ldr r6, [r4, 0x10]                                            |             r6 = *((r4 + 0x10));
    0x0001aca0 bl 0x8c90                                                     |             r0 = fcn_00008c90 ();
    0x0001aca4 mov r1, r0                                                    |             r1 = r0;
    0x0001aca8 mov r0, r6                                                    |             r0 = r6;
    0x0001acac bl 0x8594                                                     |             r0 = fcn_00008594 ();
    0x0001acb0 subs r6, r0, 0                                                |             r6 = r0 - 0;
                                                                             |             if (r6 != r0) {
    0x0001acb4 bne 0x1ad88                                                   |                 goto label_5;
                                                                             |             }
    0x0001acb8 mov r0, r5                                                    |             r0 = r5;
    0x0001acbc ldr r6, [r4, 0x10]                                            |             r6 = *((r4 + 0x10));
    0x0001acc0 bl 0x81d4                                                     |             r0 = fcn_000081d4 ();
    0x0001acc4 mov r1, r0                                                    |             r1 = r0;
    0x0001acc8 mov r0, r6                                                    |             r0 = r6;
    0x0001accc bl 0x8870                                                     |             r0 = fcn_00008870 ();
    0x0001acd0 subs r6, r0, 0                                                |             r6 = r0 - 0;
                                                                             |             if (r6 != r0) {
    0x0001acd4 bne 0x1ad88                                                   |                 goto label_5;
                                                                             |             }
    0x0001acd8 ldr r0, [r4, 0x10]                                            |             r0 = *((r4 + 0x10));
    0x0001acdc bl 0x8de0                                                     |             r0 = fcn_00008de0 ();
    0x0001ace0 cmp r0, 0                                                     |             
                                                                             |             if (r0 == 0) {
    0x0001ace4 beq 0x1ae08                                                   |                 goto label_13;
                                                                             |             }
                                                                             | label_4:
    0x0001ace8 ldr r0, [r4, 0x10]                                            |             r0 = *((r4 + 0x10));
    0x0001acec bl 0x8f54                                                     |             r0 = fcn_00008f54 ();
    0x0001acf0 cmp r0, 0                                                     |             
                                                                             |             if (r0 == 0) {
    0x0001acf4 bne 0x1ad28                                                   |                 
    0x0001acf8 mov r0, r5                                                    |                 r0 = r5;
    0x0001acfc bl 0x8f54                                                     |                 r0 = fcn_00008f54 ();
    0x0001ad00 cmp r0, 0                                                     |                 
                                                                             |                 if (r0 == 0) {
    0x0001ad04 beq 0x1ad28                                                   |                     goto label_14;
                                                                             |                 }
    0x0001ad08 mov r0, r5                                                    |                 r0 = r5;
    0x0001ad0c ldr r7, [r4, 0x10]                                            |                 r7 = *((r4 + 0x10));
    0x0001ad10 bl 0x8f54                                                     |                 r0 = fcn_00008f54 ();
    0x0001ad14 mov r1, r0                                                    |                 r1 = r0;
    0x0001ad18 mov r0, r7                                                    |                 r0 = r7;
    0x0001ad1c bl 0x7f4c                                                     |                 r0 = fcn_00007f4c ();
    0x0001ad20 cmp r0, 0                                                     |                 
                                                                             |                 if (r0 != 0) {
    0x0001ad24 bne 0x1ae28                                                   |                     goto label_15;
                                                                             |                 }
                                                                             |             }
                                                                             | label_14:
    0x0001ad28 ldr r3, [r4, 0x34]                                            |             r3 = *((r4 + 0x34));
    0x0001ad2c tst r3, 2                                                     |             
                                                                             |             if ((r3 & 2) == 0) {
    0x0001ad30 bne 0x1ad5c                                                   |                 
    0x0001ad34 tst r3, 0x10                                                  |                 
                                                                             |                 if ((r3 & 0x10) == 0) {
    0x0001ad38 beq 0x1ae30                                                   |                     goto label_16;
                                                                             |                 }
    0x0001ad3c mov r0, r5                                                    |                 r0 = r5;
    0x0001ad40 ldr r7, [r4, 0x10]                                            |                 r7 = *((r4 + 0x10));
    0x0001ad44 bl 0x86fc                                                     |                 r0 = fcn_000086fc ();
    0x0001ad48 mov r1, r0                                                    |                 r1 = r0;
    0x0001ad4c mov r0, r7                                                    |                 r0 = r7;
    0x0001ad50 bl 0x9128                                                     |                 r0 = fcn_00009128 ();
                                                                             | label_6:
    0x0001ad54 cmp r0, 0                                                     |                 
                                                                             |                 if (r0 != 0) {
    0x0001ad58 bne 0x1ae28                                                   |                     goto label_15;
                                                                             |                 }
                                                                             |             }
                                                                             | label_7:
    0x0001ad5c ldr r3, [r4, 0x6c]                                            |             r3 = *((r4 + 0x6c));
    0x0001ad60 orr r3, r3, 0x200000                                          |             r3 |= 0x200000;
    0x0001ad64 str r3, [r4, 0x6c]                                            |             *((r4 + 0x6c)) = r3;
    0x0001ad68 b 0x1ad88                                                     |             goto label_5;
                                                                             | label_12:
    0x0001ad6c cmp r0, 0                                                     |             
                                                                             |             if (r0 != 0) {
    0x0001ad70 bne 0x1ad94                                                   |                 goto label_17;
                                                                             |             }
                                                                             |         }
    0x0001ad74 mov r0, r4                                                    |         r0 = r4;
    0x0001ad78 bl 0x8aa4                                                     |         r0 = fcn_00008aa4 ();
    0x0001ad7c cmp r0, 0                                                     |         
                                                                             |         if (r0 != 0) {
    0x0001ad80 bne 0x1ada8                                                   |             goto label_18;
                                                                             |         }
                                                                             | label_11:
    0x0001ad84 ldr r6, [pc, 0x134]                                           |         r6 = *(0x1aebc);
                                                                             | label_5:
    0x0001ad88 mov r0, r6                                                    |         r0 = r6;
    0x0001ad8c add sp, sp, 0xc                                               |         
    0x0001ad90 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
                                                                             | label_17:
    0x0001ad94 mov r1, r0                                                    |         r1 = r0;
    0x0001ad98 mov r2, sb                                                    |         r2 = sb;
    0x0001ad9c mov r0, r8                                                    |         r0 = r8;
    0x0001ada0 bl 0x86a8                                                     |         fcn_000086a8 ();
    0x0001ada4 b 0x1abe0                                                     |         
                                                                             |     } while (1);
                                                                             | label_18:
    0x0001ada8 cmp r7, 0                                                     |     
                                                                             |     if (r7 != 0) {
    0x0001adac bne 0x1add8                                                   |         goto label_19;
                                                                             |     }
                                                                             | label_2:
    0x0001adb0 mov r5, 0                                                     |     r5 = 0;
                                                                             | label_3:
    0x0001adb4 cmp r5, 0                                                     |     
                                                                             |     if (r5 == 0) {
    0x0001adb8 movne fp, 0                                                   |         
                                                                             |     }
    0x0001adbc cmp fp, 0                                                     |     
                                                                             |     if (fp == 0) {
    0x0001adc0 beq 0x1abbc                                                   |         goto label_0;
                                                                             |     }
    0x0001adc4 mov r2, sb                                                    |     r2 = sb;
    0x0001adc8 mov r1, r6                                                    |     r1 = r6;
    0x0001adcc mov r0, r8                                                    |     r0 = r8;
    0x0001add0 bl 0x8174                                                     |     fcn_00008174 ();
    0x0001add4 b 0x1abb8                                                     |     goto label_1;
                                                                             | label_19:
    0x0001add8 mov r2, 0                                                     |     r2 = 0;
    0x0001addc mov r1, r2                                                    |     r1 = r2;
    0x0001ade0 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001ade4 bl 0x9158                                                     |     r0 = fcn_00009158 ();
    0x0001ade8 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001adec bne 0x1adb0                                                   |         goto label_2;
                                                                             |     }
    0x0001adf0 mov r2, sb                                                    |     r2 = sb;
    0x0001adf4 mov r1, r7                                                    |     r1 = r7;
    0x0001adf8 mov r0, r8                                                    |     r0 = r8;
    0x0001adfc bl 0x86a8                                                     |     r0 = fcn_000086a8 ();
    0x0001ae00 mov r5, r0                                                    |     r5 = r0;
    0x0001ae04 b 0x1adb4                                                     |     goto label_3;
                                                                             | label_13:
    0x0001ae08 mov r0, r5                                                    |     r0 = r5;
    0x0001ae0c ldr r7, [r4, 0x10]                                            |     r7 = *((r4 + 0x10));
    0x0001ae10 bl 0x8de0                                                     |     r0 = fcn_00008de0 ();
    0x0001ae14 mov r1, r0                                                    |     r1 = r0;
    0x0001ae18 mov r0, r7                                                    |     r0 = r7;
    0x0001ae1c bl 0x8144                                                     |     r0 = fcn_00008144 ();
    0x0001ae20 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x0001ae24 beq 0x1ace8                                                   |         goto label_4;
                                                                             |     }
                                                                             | label_15:
    0x0001ae28 mov r6, r0                                                    |     r6 = r0;
    0x0001ae2c b 0x1ad88                                                     |     goto label_5;
                                                                             | label_16:
    0x0001ae30 tst r3, 4                                                     |     
                                                                             |     if ((r3 & 4) != 0) {
    0x0001ae34 beq 0x1ae54                                                   |         
    0x0001ae38 mov r0, r5                                                    |         r0 = r5;
    0x0001ae3c ldr r7, [r4, 0x10]                                            |         r7 = *((r4 + 0x10));
    0x0001ae40 bl 0x86fc                                                     |         r0 = fcn_000086fc ();
    0x0001ae44 mov r1, r0                                                    |         r1 = r0;
    0x0001ae48 mov r0, r7                                                    |         r0 = r7;
    0x0001ae4c bl 0x8c0c                                                     |         fcn_00008c0c ();
    0x0001ae50 b 0x1ad54                                                     |         goto label_6;
                                                                             |     }
    0x0001ae54 tst r3, 8                                                     |     
                                                                             |     if ((r3 & 8) == 0) {
    0x0001ae58 beq 0x1ad5c                                                   |         goto label_7;
                                                                             |     }
    0x0001ae5c mov r0, r5                                                    |     r0 = r5;
    0x0001ae60 ldr r7, [r4, 0x10]                                            |     r7 = *((r4 + 0x10));
    0x0001ae64 bl 0x86fc                                                     |     r0 = fcn_000086fc ();
    0x0001ae68 mov r1, r0                                                    |     r1 = r0;
    0x0001ae6c mov r0, r7                                                    |     r0 = r7;
    0x0001ae70 bl 0x8f00                                                     |     fcn_00008f00 ();
    0x0001ae74 b 0x1ad54                                                     |     goto label_6;
                                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1b12c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001b12c ()                          | void fcn_0001b12c (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0001b12c push {r0, r1, r4, r5, r6, lr}         |     
    0x0001b130 ldr r6, [pc, 0xac]                    |     r6 = *(0x1b1e0);
    0x0001b134 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0001b138 add r6, pc, r6                        |     r6 = pc + r6;
                                                     |     if (r4 != r0) {
    0x0001b13c mvneq r0, 0x15                        |         r0 = ~0x15;
                                                     |     }
                                                     |     if (r4 == r0) {
    0x0001b140 beq 0x1b1d0                           |         goto label_0;
                                                     |     }
    0x0001b144 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001b148 mov r5, r1                            |     r5 = r1;
    0x0001b14c cmp r0, 0                             |     
    0x0001b150 str r1, [r4, 0x24]                    |     *((r4 + 0x24)) = r1;
    0x0001b154 str r2, [r4, 0x28]                    |     *((r4 + 0x28)) = r2;
                                                     |     if (r0 != 0) {
    0x0001b158 beq 0x1b160                           |         
    0x0001b15c bl 0x14f9c                            |         fcn_00014f9c (r0, r1);
                                                     |     }
    0x0001b160 ldr r3, [pc, 0x80]                    |     r3 = *(0x1b1e4);
    0x0001b164 ldr r3, [r6, r3]                      |     r3 = *((r6 + r3));
    0x0001b168 ldr r0, [r3]                          |     r0 = *(0x1b1e4);
    0x0001b16c ands r0, r0, 0x200                    |     r0 &= 0x200;
                                                     |     if (r0 == r0) {
    0x0001b170 beq 0x1b1d0                           |         goto label_0;
                                                     |     }
    0x0001b174 ldr r3, [pc, 0x70]                    |     r3 = *(0x1b1e8);
    0x0001b178 ldr r3, [r6, r3]                      |     r3 = *((r6 + r3));
    0x0001b17c ldr r6, [r3]                          |     r6 = *(0x1b1e8);
    0x0001b180 bl 0x8204                             |     getpid ();
    0x0001b184 ldr r3, [pc, 0x64]                    |     r3 = *(0x1b1ec);
    0x0001b188 ldr r1, [pc, 0x64]                    |     r1 = *(0x1b1f0);
    0x0001b18c add r3, pc, r3                        |     r3 = pc + r3;
    0x0001b190 str r3, [sp]                          |     *(sp) = r3;
    0x0001b194 ldr r3, [pc, 0x5c]                    |     r3 = "eaning";
    0x0001b198 add r1, pc, r1                        |     r1 = pc + r1;
    0x0001b19c add r3, pc, r3                        |     r3 = pc + r3;
    0x0001b1a0 mov r2, r0                            |     r2 = r0;
    0x0001b1a4 mov r0, r6                            |     r0 = r6;
    0x0001b1a8 bl 0x8798                             |     fprintf (r0, r1, r2, r3)
    0x0001b1ac cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x0001b1b0 bne 0x1b1d8                           |         goto label_1;
                                                     |     }
    0x0001b1b4 ldr r2, [pc, 0x40]                    |     r2 = *(0x1b1f8);
    0x0001b1b8 add r2, pc, r2                        |     r2 = pc + r2;
                                                     |     do {
    0x0001b1bc ldr r1, [pc, 0x3c]                    |         r1 = *(0x1b1fc);
    0x0001b1c0 mov r0, r4                            |         r0 = r4;
    0x0001b1c4 add r1, pc, r1                        |         r1 = pc + r1;
    0x0001b1c8 bl 0x1a538                            |         fcn_0001a538 (r0);
    0x0001b1cc mov r0, 0                             |         r0 = 0;
                                                     | label_0:
    0x0001b1d0 add sp, sp, 8                         |         
    0x0001b1d4 pop {r4, r5, r6, pc}                  |         
                                                     | label_1:
    0x0001b1d8 ldr r2, [pc, 0x24]                    |         r2 = *(0x1b200);
    0x0001b1dc add r2, pc, r2                        |         r2 = pc + r2;
    0x0001b1e0 b 0x1b1bc                             |         
                                                     |     } 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/lib/libmount.so.1.1.0 @ 0x1b4e4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0001b4e4 ()                                          | void fcn_0001b4e4 (int32_t arg1) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_10h;
                                                                     |     r0 = arg1;
    0x0001b4e4 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}         |     
    0x0001b4e8 ldr r5, [pc, 0x144]                                   |     r5 = *(0x1b630);
    0x0001b4ec mov r3, 0                                             |     r3 = 0;
    0x0001b4f0 subs r4, r0, 0                                        |     r4 = r0 - 0;
    0x0001b4f4 add r5, pc, r5                                        |     r5 = pc + r5;
    0x0001b4f8 str r3, [sp, 0xc]                                     |     var_ch = r3;
                                                                     |     if (r4 == r0) {
    0x0001b4fc bne 0x1b524                                           |         
    0x0001b500 ldr r3, [pc, 0x130]                                   |         
    0x0001b504 ldr r1, [pc, 0x130]                                   |         r1 = *(0x1b638);
    0x0001b508 ldr r0, [pc, 0x130]                                   |         r0 = *(0x1b63c);
    0x0001b50c add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001b510 add r3, r3, 0xc                                       |         r3 = 0x1b640;
    0x0001b514 ldr r2, [pc, 0x128]                                   |         r2 = *(0x1b640);
    0x0001b518 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001b51c add r0, pc, r0                                        |         r0 = pc + r0;
    0x0001b520 bl 0x908c                                             |         assert ();
                                                                     |     }
    0x0001b524 ldr r3, [pc, 0x11c]                                   |     r3 = *(0x1b644);
    0x0001b528 ldr r7, [r5, r3]                                      |     r7 = *((r5 + r3));
    0x0001b52c ldr r3, [r7]                                          |     r3 = *(r7);
    0x0001b530 tst r3, 0x200                                         |     
                                                                     |     if ((r3 & 0x200) != 0) {
    0x0001b534 beq 0x1b580                                           |         
    0x0001b538 ldr r3, [pc, 0x10c]                                   |         r3 = *(0x1b648);
    0x0001b53c ldr r3, [r5, r3]                                      |         r3 = *((r5 + r3));
    0x0001b540 ldr r6, [r3]                                          |         r6 = *(0x1b648);
    0x0001b544 bl 0x8204                                             |         getpid ();
    0x0001b548 ldr r3, [pc, 0x100]                                   |         r3 = *(0x1b64c);
    0x0001b54c ldr r1, [pc, 0x100]                                   |         r1 = *(0x1b650);
    0x0001b550 add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001b554 str r3, [sp]                                          |         *(sp) = r3;
    0x0001b558 ldr r3, [pc, 0xf8]                                    |         r3 = *(0x1b654);
    0x0001b55c add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001b560 add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001b564 mov r2, r0                                            |         r2 = r0;
    0x0001b568 mov r0, r6                                            |         r0 = r6;
    0x0001b56c bl 0x8798                                             |         fprintf (r0, r1, r2, r3)
    0x0001b570 ldr r1, [pc, 0xe4]                                    |         r1 = *(0x1b658);
    0x0001b574 mov r0, r4                                            |         r0 = r4;
    0x0001b578 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001b57c bl 0x1a538                                            |         fcn_0001a538 (r0);
                                                                     |     }
    0x0001b580 add r8, sp, 0xc                                       |     r8 += var_ch;
    0x0001b584 mov r1, r8                                            |     r1 = r8;
    0x0001b588 mov r0, r4                                            |     r0 = r4;
    0x0001b58c bl 0x8768                                             |     r0 = fcn_00008768 ();
    0x0001b590 subs r6, r0, 0                                        |     r6 = r0 - 0;
                                                                     |     if (r6 == r0) {
    0x0001b594 bne 0x1b628                                           |         
    0x0001b598 ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0001b59c mov r1, r8                                            |         r1 = r8;
    0x0001b5a0 str r3, [r4, 0x3c]                                    |         *((r4 + 0x3c)) = r3;
    0x0001b5a4 mov r0, r4                                            |         r0 = r4;
    0x0001b5a8 str r6, [sp, 0xc]                                     |         var_ch = r6;
    0x0001b5ac bl 0x8954                                             |         r0 = fcn_00008954 ();
    0x0001b5b0 subs r6, r0, 0                                        |         r6 = r0 - 0;
                                                                     |         if (r6 != r0) {
    0x0001b5b4 bne 0x1b628                                           |             goto label_0;
                                                                     |         }
    0x0001b5b8 ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0001b5bc str r3, [r4, 0x44]                                    |         *((r4 + 0x44)) = r3;
    0x0001b5c0 ldr r3, [r7]                                          |         r3 = *(r7);
    0x0001b5c4 tst r3, 0x200                                         |         
                                                                     |         if ((r3 & 0x200) != 0) {
    0x0001b5c8 beq 0x1b61c                                           |             
    0x0001b5cc ldr r3, [pc, 0x78]                                    |             r3 = *(0x1b648);
    0x0001b5d0 ldr r3, [r5, r3]                                      |             r3 = *((r5 + r3));
    0x0001b5d4 ldr r5, [r3]                                          |             r5 = *(0x1b648);
    0x0001b5d8 bl 0x8204                                             |             getpid ();
    0x0001b5dc ldr r3, [pc, 0x7c]                                    |             r3 = *(0x1b65c);
    0x0001b5e0 ldr r1, [pc, 0x7c]                                    |             r1 = *(0x1b660);
    0x0001b5e4 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0001b5e8 str r3, [sp]                                          |             *(sp) = r3;
    0x0001b5ec ldr r3, [pc, 0x74]                                    |             r3 = *(0x1b664);
    0x0001b5f0 add r1, pc, r1                                        |             r1 = pc + r1;
    0x0001b5f4 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0001b5f8 mov r2, r0                                            |             r2 = r0;
    0x0001b5fc mov r0, r5                                            |             r0 = r5;
    0x0001b600 bl 0x8798                                             |             fprintf (r0, r1, r2, r3)
    0x0001b604 ldr r1, [pc, 0x60]                                    |             r1 = *(0x1b668);
    0x0001b608 ldr r3, [r4, 0x44]                                    |             r3 = *((r4 + 0x44));
    0x0001b60c ldr r2, [r4, 0x3c]                                    |             r2 = *((r4 + 0x3c));
    0x0001b610 add r1, pc, r1                                        |             r1 = pc + r1;
    0x0001b614 mov r0, r4                                            |             r0 = r4;
    0x0001b618 bl 0x1a538                                            |             fcn_0001a538 (r0);
                                                                     |         }
    0x0001b61c ldr r3, [r4, 0x6c]                                    |         r3 = *((r4 + 0x6c));
    0x0001b620 orr r3, r3, 0x400000                                  |         r3 |= 0x400000;
    0x0001b624 str r3, [r4, 0x6c]                                    |         *((r4 + 0x6c)) = r3;
                                                                     |     }
                                                                     | label_0:
    0x0001b628 mov r0, r6                                            |     r0 = r6;
    0x0001b62c add sp, sp, 0x10                                      |     
    0x0001b630 pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x1bca0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001bca0 ()                                  | void fcn_0001bca0 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
    0x0001bca0 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0001bca4 ldr r5, [pc, 0x234]                           |     r5 = *(0x1bedc);
    0x0001bca8 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001bcac add r5, pc, r5                                |     r5 = pc + r5;
                                                             |     if (r4 == r0) {
    0x0001bcb0 bne 0x1bcd8                                   |         
    0x0001bcb4 ldr r3, [pc, 0x228]                           |         
    0x0001bcb8 ldr r1, [pc, 0x228]                           |         r1 = *(0x1bee4);
    0x0001bcbc ldr r0, [pc, 0x228]                           |         r0 = *(0x1bee8);
    0x0001bcc0 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001bcc4 add r3, r3, 0x42                              |         r3 = 0x1bf22;
    0x0001bcc8 ldr r2, [pc, 0x220]                           |         r2 = *(0x1beec);
    0x0001bccc add r1, pc, r1                                |         r1 = pc + r1;
    0x0001bcd0 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001bcd4 bl 0x908c                                     |         assert ();
                                                             |     }
    0x0001bcd8 bl 0x87d4                                     |     r0 = fcn_000087d4 ();
    0x0001bcdc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001bce0 mvneq r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x0001bce4 beq 0x1be68                                   |         goto label_0;
                                                             |     }
    0x0001bce8 ldr r3, [pc, 0x204]                           |     r3 = *(0x1bef0);
    0x0001bcec ldr r7, [r5, r3]                              |     r7 = *((r5 + r3));
    0x0001bcf0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001bcf4 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001bcf8 beq 0x1bd44                                   |         
    0x0001bcfc ldr r3, [pc, 0x1f4]                           |         r3 = *(0x1bef4);
    0x0001bd00 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001bd04 ldr r6, [r3]                                  |         r6 = *(0x1bef4);
    0x0001bd08 bl 0x8204                                     |         getpid ();
    0x0001bd0c ldr r3, [pc, 0x1e8]                           |         r3 = *(0x1bef8);
    0x0001bd10 ldr r1, [pc, 0x1e8]                           |         r1 = *(0x1befc);
    0x0001bd14 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001bd18 str r3, [sp]                                  |         *(sp) = r3;
    0x0001bd1c ldr r3, [pc, 0x1e0]                           |         r3 = *(0x1bf00);
    0x0001bd20 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001bd24 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001bd28 mov r2, r0                                    |         r2 = r0;
    0x0001bd2c mov r0, r6                                    |         r0 = r6;
    0x0001bd30 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001bd34 ldr r1, [pc, 0x1cc]                           |         r1 = *(0x1bf04);
    0x0001bd38 mov r0, r4                                    |         r0 = r4;
    0x0001bd3c add r1, pc, r1                                |         r1 = pc + r1;
    0x0001bd40 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001bd44 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001bd48 bics r3, r3, 2                                |     __asm ("bics r3, r3, 2");
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001bd4c beq 0x1bd60                                   |         
    0x0001bd50 ldr r3, [pc, 0x1a0]                           |         r3 = *(0x1bef4);
    0x0001bd54 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001bd58 ldr r0, [r3]                                  |         r0 = *(0x1bef4);
    0x0001bd5c bl 0x84f8                                     |         r0 = fflush (r0);
                                                             |     }
    0x0001bd60 bl 0x8a68                                     |     r0 = fork ();
    0x0001bd64 cmn r0, 1                                     |     
    0x0001bd68 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r0 != 1) {
    0x0001bd6c beq 0x1be08                                   |         
    0x0001bd70 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001bd74 beq 0x1be70                                   |             goto label_1;
                                                             |         }
    0x0001bd78 ldr r1, [r4, 0x84]                            |         r1 = *((r4 + 0x84));
    0x0001bd7c ldr r0, [r4, 0x80]                            |         r0 = *((r4 + 0x80));
    0x0001bd80 lsl r1, r1, 2                                 |         r1 <<= 2;
    0x0001bd84 add r1, r1, 1                                 |         r1++;
    0x0001bd88 bl 0x89cc                                     |         r0 = realloc (r0, r1);
    0x0001bd8c subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x0001bd90 mvneq r0, 0xb                                 |             r0 = ~0xb;
                                                             |         }
                                                             |         if (r8 == r0) {
    0x0001bd94 beq 0x1be68                                   |             goto label_0;
                                                             |         }
    0x0001bd98 ldr r3, [r7]                                  |         r3 = *(r7);
    0x0001bd9c tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0001bda0 beq 0x1bdf0                                   |             
    0x0001bda4 ldr r3, [pc, 0x14c]                           |             r3 = *(0x1bef4);
    0x0001bda8 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x0001bdac ldr r5, [r3]                                  |             r5 = *(0x1bef4);
    0x0001bdb0 bl 0x8204                                     |             getpid ();
    0x0001bdb4 ldr r3, [pc, 0x150]                           |             r3 = *(0x1bf08);
    0x0001bdb8 ldr r1, [pc, 0x150]                           |             r1 = *(0x1bf0c);
    0x0001bdbc add r3, pc, r3                                |             r3 = pc + r3;
    0x0001bdc0 str r3, [sp]                                  |             *(sp) = r3;
    0x0001bdc4 ldr r3, [pc, 0x148]                           |             r3 = *(0x1bf10);
    0x0001bdc8 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001bdcc add r3, pc, r3                                |             r3 = pc + r3;
    0x0001bdd0 mov r2, r0                                    |             r2 = r0;
    0x0001bdd4 mov r0, r5                                    |             r0 = r5;
    0x0001bdd8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001bddc ldr r1, [pc, 0x134]                           |             r1 = *(0x1bf14);
    0x0001bde0 mov r2, r6                                    |             r2 = r6;
    0x0001bde4 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001bde8 mov r0, r4                                    |             r0 = r4;
    0x0001bdec bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001bdf0 ldr r3, [r4, 0x84]                            |         r3 = *((r4 + 0x84));
    0x0001bdf4 str r8, [r4, 0x80]                            |         *((r4 + 0x80)) = r8;
    0x0001bdf8 add r2, r3, 1                                 |         r2 = r3 + 1;
    0x0001bdfc str r2, [r4, 0x84]                            |         *((r4 + 0x84)) = r2;
    0x0001be00 str r6, [r8, r3, lsl 2]                       |         offset_0 = r3 << 2;
                                                             |         *((r8 + offset_0)) = r6;
    0x0001be04 b 0x1bed8                                     |         goto label_2;
                                                             |     }
    0x0001be08 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001be0c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001be10 beq 0x1be5c                                   |         
    0x0001be14 ldr r3, [pc, 0xdc]                            |         r3 = *(0x1bef4);
    0x0001be18 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001be1c ldr r5, [r3]                                  |         r5 = *(0x1bef4);
    0x0001be20 bl 0x8204                                     |         getpid ();
    0x0001be24 ldr r3, [pc, 0xf0]                            |         r3 = *(0x1bf18);
    0x0001be28 ldr r1, [pc, 0xf0]                            |         r1 = *(0x1bf1c);
    0x0001be2c add r3, pc, r3                                |         r3 = pc + r3;
    0x0001be30 str r3, [sp]                                  |         *(sp) = r3;
    0x0001be34 ldr r3, [pc, 0xe8]                            |         r3 = *(0x1bf20);
    0x0001be38 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001be3c add r3, pc, r3                                |         r3 = pc + r3;
    0x0001be40 mov r2, r0                                    |         r2 = r0;
    0x0001be44 mov r0, r5                                    |         r0 = r5;
    0x0001be48 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001be4c ldr r1, [pc, 0xd4]                            |         r1 = *(0x1bf24);
    0x0001be50 mov r0, r4                                    |         r0 = r4;
    0x0001be54 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001be58 bl 0x1a538                                    |         r0 = fcn_0001a538 (r0);
                                                             |     }
    0x0001be5c bl 0x8f6c                                     |     r0 = errno_location ();
    0x0001be60 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001be64 rsb r0, r0, 0                                 |     r0 -= ;
                                                             |     do {
                                                             | label_0:
    0x0001be68 add sp, sp, 8                                 |         
    0x0001be6c pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_1:
    0x0001be70 bl 0x8204                                     |         getpid ();
    0x0001be74 mov r1, r6                                    |         r1 = r6;
    0x0001be78 str r0, [r4, 0x88]                            |         *((r4 + 0x88)) = r0;
    0x0001be7c mov r0, r4                                    |         r0 = r4;
    0x0001be80 bl 0x80c0                                     |         fcn_000080c0 ();
    0x0001be84 ldr r0, [r7]                                  |         r0 = *(r7);
    0x0001be88 ands r0, r0, 0x200                            |         r0 &= 0x200;
    0x0001be8c beq 0x1be68                                   |         
                                                             |     } while (r0 == r0);
    0x0001be90 ldr r3, [pc, 0x60]                            |     r3 = *(0x1bef4);
    0x0001be94 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0001be98 ldr r5, [r3]                                  |     r5 = *(0x1bef4);
    0x0001be9c bl 0x8204                                     |     getpid ();
    0x0001bea0 ldr r3, [pc, 0x84]                            |     r3 = *(0x1bf28);
    0x0001bea4 ldr r1, [pc, 0x84]                            |     r1 = *(0x1bf2c);
    0x0001bea8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001beac str r3, [sp]                                  |     *(sp) = r3;
    0x0001beb0 ldr r3, [pc, 0x7c]                            |     r3 = *(0x1bf30);
    0x0001beb4 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001beb8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001bebc mov r2, r0                                    |     r2 = r0;
    0x0001bec0 mov r0, r5                                    |     r0 = r5;
    0x0001bec4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001bec8 ldr r1, [pc, 0x68]                            |     r1 = *(0x1bf34);
    0x0001becc mov r0, r4                                    |     r0 = r4;
    0x0001bed0 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001bed4 bl 0x1a538                                    |     fcn_0001a538 (r0);
                                                             | label_2:
    0x0001bed8 mov r0, 0                                     |     r0 = 0;
    0x0001bedc b 0x1be68                                     |     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/lib/libmount.so.1.1.0 @ 0x1c654 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001c654 ()                                      | void fcn_0001c654 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     void * s1;
                                                                 |     int32_t var_38h;
                                                                 |     char * src;
                                                                 |     int32_t var_1080h;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001c654 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001c658 ldr sb, [pc, 0x330]                               |     sb = *(0x1c98c);
    0x0001c65c sub sp, sp, 0x1080                                |     
    0x0001c660 sub sp, sp, 0x24                                  |     
    0x0001c664 str r1, [sp, 8]                                   |     var_8h = r1;
    0x0001c668 ldr r1, [pc, 0x324]                               |     r1 = *(0x1c990);
    0x0001c66c add r7, sp, 0xa0                                  |     r7 += src;
    0x0001c670 mov r4, r0                                        |     r4 = r0;
    0x0001c674 mov r6, r2                                        |     r6 = r2;
    0x0001c678 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001c67c mov r2, 0x1a                                      |     r2 = 0x1a;
    0x0001c680 sub r0, r7, 0x84                                  |     r0 -= s1;
    0x0001c684 bl 0x82a0                                         |     memcpy (r0, r1, r2);
    0x0001c688 mov r3, 0                                         |     r3 = 0;
    0x0001c68c cmp r4, r3                                        |     
    0x0001c690 add sb, pc, sb                                    |     sb = pc + sb;
    0x0001c694 str r3, [r7, -0x88]                               |     var_18h = r3;
                                                                 |     if (r4 != r3) {
    0x0001c698 bne 0x1c6c0                                       |         goto label_4;
                                                                 |     }
    0x0001c69c ldr r3, [pc, 0x2f4]                               |     
    0x0001c6a0 ldr r1, [pc, 0x2f4]                               |     r1 = *(0x1c998);
    0x0001c6a4 ldr r0, [pc, 0x2f4]                               |     r0 = *(0x1c99c);
    0x0001c6a8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001c6ac add r3, r3, 0x71                                  |     r3 = 0x1ca05;
    0x0001c6b0 mov r2, 0x750                                     |     r2 = 0x750;
    0x0001c6b4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001c6b8 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
                                                                 | label_0:
    0x0001c6bc bl 0x908c                                         |         assert ();
                                                                 | label_4:
    0x0001c6c0 ldr r0, [r4, 0x10]                                |         r0 = *((r4 + 0x10));
    0x0001c6c4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001c6c8 bne 0x1c6f0                                       |             goto label_5;
                                                                 |         }
    0x0001c6cc ldr r3, [pc, 0x2d0]                               |         
    0x0001c6d0 ldr r1, [pc, 0x2d0]                               |         r1 = *(0x1c9a4);
    0x0001c6d4 ldr r0, [pc, 0x2d0]                               |         r0 = *(0x1c9a8);
    0x0001c6d8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c6dc add r3, r3, 0x71                                  |         r3 = 0x1ca11;
    0x0001c6e0 ldr r2, [pc, 0x2c8]                               |         r2 = *(0x1c9ac);
    0x0001c6e4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001c6e8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001c6ec b 0x1c6bc                                         |         
                                                                 |     } while (1);
                                                                 | label_5:
    0x0001c6f0 ldr r3, [r4, 0x6c]                                |     r3 = *((r4 + 0x6c));
    0x0001c6f4 tst r3, 0x400000                                  |     
                                                                 |     if ((r3 & 0x400000) == 0) {
    0x0001c6f8 bne 0x1c720                                       |         
    0x0001c6fc ldr r3, [pc, 0x2b0]                               |         
    0x0001c700 ldr r1, [pc, 0x2b0]                               |         r1 = *(0x1c9b4);
    0x0001c704 ldr r0, [pc, 0x2b0]                               |         r0 = *(0x1c9b8);
    0x0001c708 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c70c add r3, r3, 0x71                                  |         r3 = 0x1ca21;
    0x0001c710 ldr r2, [pc, 0x2a8]                               |         r2 = *(0x1c9bc);
    0x0001c714 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001c718 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001c71c b 0x1c6bc                                         |         goto label_0;
                                                                 |     }
    0x0001c720 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0001c724 bne 0x1c734                                       |         
    0x0001c728 bl 0x8de0                                         |         r0 = fcn_00008de0 ();
    0x0001c72c subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 == r0) {
    0x0001c730 beq 0x1c748                                       |             goto label_6;
                                                                 |         }
                                                                 |     }
    0x0001c734 mov r1, 0x2c                                      |     r1 = 0x2c;
    0x0001c738 mov r0, r6                                        |     r0 = r6;
    0x0001c73c bl 0x90a4                                         |     r0 = strchr (r0, r1);
    0x0001c740 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c744 bne 0x1c818                                       |         goto label_7;
                                                                 |     }
                                                                 | label_6:
    0x0001c748 mov r0, r4                                        |     r0 = r4;
    0x0001c74c bl 0x7ff4                                         |     fcn_00007ff4 ();
    0x0001c750 clz r3, r6                                        |     r3 &= r6;
    0x0001c754 lsr r3, r3, 5                                     |     r3 >>= 5;
    0x0001c758 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c75c moveq r0, r3                                      |         r0 = r3;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x0001c760 movne r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x0001c764 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c768 bne 0x1c818                                       |         goto label_7;
                                                                 |     }
    0x0001c76c ldr r1, [pc, 0x250]                               |     r1 = *(0x1c9c0);
    0x0001c770 mov r0, r6                                        |     r0 = r6;
    0x0001c774 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001c778 bl 0x8cb4                                         |     r0 = strcmp (r0, r1);
    0x0001c77c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001c780 beq 0x1c818                                       |         goto label_7;
                                                                 |     }
    0x0001c784 ldr r1, [pc, 0x23c]                               |     r1 = *(0x1c9c4);
    0x0001c788 mov r0, r6                                        |     r0 = r6;
    0x0001c78c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001c790 bl 0x88b8                                         |     r0 = strstr (r0, r1);
    0x0001c794 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c798 bne 0x1c818                                       |         goto label_7;
                                                                 |     }
    0x0001c79c ldr r0, [r4, 0x10]                                |     r0 = *((r4 + 0x10));
    0x0001c7a0 bl 0x845c                                         |     r0 = fcn_0000845c ();
    0x0001c7a4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c7a8 bne 0x1c818                                       |         goto label_7;
                                                                 |     }
    0x0001c7ac mov r0, r4                                        |     r0 = r4;
    0x0001c7b0 bl 0x8258                                         |     r0 = fcn_00008258 ();
    0x0001c7b4 subs sl, r0, 0                                    |     sl = r0 - 0;
    0x0001c7b8 bne 0x1c7c4                                       |     
                                                                 |     while (r0 == 0) {
                                                                 | label_2:
    0x0001c7bc ldr r5, [pc, 0x208]                               |         r5 = *(0x1c9c8);
    0x0001c7c0 b 0x1c974                                         |         goto label_8;
    0x0001c7c4 ldr r1, [pc, 0x204]                               |         r1 = *(0x1c9cc);
    0x0001c7c8 add r3, sp, 0x18                                  |         r3 += var_18h;
    0x0001c7cc mov r2, r3                                        |         r2 = r3;
    0x0001c7d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001c7d4 add r0, sp, 0x1c                                  |         r0 += s1;
    0x0001c7d8 str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x0001c7dc bl 0x7f58                                         |         strtok_r ();
    0x0001c7e0 ldr r3, [pc, 0x1ec]                               |         r3 = *(0x1c9d0);
    0x0001c7e4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c7e8 str r3, [sp, 0x10]                                |         var_10h = r3;
    0x0001c7ec ldr r3, [pc, 0x1e4]                               |         r3 = *(0x1c9d4);
    0x0001c7f0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c7f4 str r3, [sp, 0x14]                                |         var_14h = r3;
    0x0001c7f8 mov r8, r0                                        |         r8 = r0;
                                                                 | label_1:
    0x0001c7fc cmp r8, 0                                         |         
                                                                 |         if (r8 != 0) {
    0x0001c800 bne 0x1c820                                       |             goto label_9;
                                                                 |         }
    0x0001c804 mov r1, sl                                        |         r1 = sl;
    0x0001c808 mov r0, r4                                        |         r0 = r4;
    0x0001c80c bl 0x85e8                                         |         r0 = fcn_000085e8 ();
    0x0001c810 cmp r0, 0                                         |         
    0x0001c814 beq 0x1c7bc                                       |         
                                                                 |     }
                                                                 | label_7:
    0x0001c818 mov r5, 0                                         |     r5 = 0;
    0x0001c81c b 0x1c974                                         |     goto label_8;
                                                                 | label_9:
    0x0001c820 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0001c824 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0001c828 str r3, [sp]                                      |     *(sp) = r3;
    0x0001c82c mov r1, 0x1000                                    |     r1 = 0x1000;
    0x0001c830 mov r3, r8                                        |     r3 = r8;
    0x0001c834 str r6, [sp, 4]                                   |     var_4h = r6;
    0x0001c838 mov r0, r7                                        |     r0 = r7;
    0x0001c83c bl 0x809c                                         |     snprintf (r0, r1, r2, r3);
    0x0001c840 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0001c844 ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x0001c848 mov r5, r0                                        |     r5 = r0;
    0x0001c84c mov r0, 0                                         |     r0 = 0;
    0x0001c850 bl 0x7f58                                         |     strtok_r ();
    0x0001c854 ldr r3, [pc, 0x180]                               |     r3 = *(0x1c9d8);
    0x0001c858 cmp r5, r3                                        |     
    0x0001c85c mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r5 > r3) {
    0x0001c860 bhi 0x1c7fc                                       |         goto label_1;
                                                                 |     }
    0x0001c864 add fp, sp, 0x38                                  |     
    0x0001c868 mov r1, fp                                        |     r1 = fp;
    0x0001c86c mov r0, r7                                        |     r0 = r7;
    0x0001c870 bl 0x8060                                         |     r0 = stat64 ();
    0x0001c874 cmn r0, 1                                         |     
    0x0001c878 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 1) {
    0x0001c87c bne 0x1c8cc                                       |         
    0x0001c880 bl 0x8f6c                                         |         r0 = errno_location ();
    0x0001c884 ldr r3, [r0]                                      |         r3 = *(r0);
    0x0001c888 cmp r3, 2                                         |         
                                                                 |         if (r3 != 2) {
    0x0001c88c bne 0x1c8cc                                       |             goto label_10;
                                                                 |         }
    0x0001c890 mov r1, 0x2e                                      |         r1 = 0x2e;
    0x0001c894 mov r0, r6                                        |         r0 = r6;
    0x0001c898 bl 0x90a4                                         |         r0 = strchr (r0, r1);
    0x0001c89c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001c8a0 beq 0x1c8cc                                       |             goto label_10;
                                                                 |         }
    0x0001c8a4 mov r1, 0x2e                                      |         r1 = 0x2e;
    0x0001c8a8 mov r0, r7                                        |         r0 = r7;
    0x0001c8ac bl 0x86b4                                         |         strrchr (r0, r1);
    0x0001c8b0 mov r1, fp                                        |         r1 = fp;
    0x0001c8b4 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001c8b8 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x0001c8bc strbne r3, [r0]                                   |             *(r0) = r3;
                                                                 |         }
    0x0001c8c0 mov r0, r7                                        |         r0 = r7;
    0x0001c8c4 bl 0x8060                                         |         r0 = stat64 ();
    0x0001c8c8 mov r5, r0                                        |         r5 = r0;
                                                                 |     }
                                                                 | label_10:
    0x0001c8cc ldr r3, [pc, 0x10c]                               |     
    0x0001c8d0 ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x0001c8d4 ldr r3, [r3]                                      |     r3 = *(0x1c9dc);
    0x0001c8d8 tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) != 0) {
    0x0001c8dc beq 0x1c93c                                       |         
    0x0001c8e0 ldr r3, [pc, 0xfc]                                |         r3 = *(0x1c9e0);
    0x0001c8e4 ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0001c8e8 ldr fp, [r3]                                      |         fp = *(0x1c9e0);
    0x0001c8ec bl 0x8204                                         |         getpid ();
    0x0001c8f0 ldr r3, [pc, 0xf0]                                |         r3 = *(0x1c9e4);
    0x0001c8f4 ldr r1, [pc, 0xf0]                                |         r1 = *(0x1c9e8);
    0x0001c8f8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c8fc str r3, [sp]                                      |         *(sp) = r3;
    0x0001c900 ldr r3, [pc, 0xe8]                                |         r3 = *(0x1c9ec);
    0x0001c904 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001c908 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c90c mov r2, r0                                        |         r2 = r0;
    0x0001c910 mov r0, fp                                        |         r0 = fp;
    0x0001c914 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001c918 cmp r5, 0                                         |         
                                                                 |         if (r5 != 0) {
    0x0001c91c bne 0x1c984                                       |             goto label_11;
                                                                 |         }
    0x0001c920 ldr r3, [pc, 0xcc]                                |         r3 = *(0x1c9f0);
    0x0001c924 add r3, pc, r3                                    |         r3 = pc + r3;
                                                                 | label_3:
    0x0001c928 ldr r1, [pc, 0xc8]                                |         r1 = *(0x1c9f4);
    0x0001c92c mov r2, r7                                        |         r2 = r7;
    0x0001c930 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001c934 mov r0, r4                                        |         r0 = r4;
    0x0001c938 bl 0x1a538                                        |         fcn_0001a538 (r0);
                                                                 |     }
    0x0001c93c cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0001c940 bne 0x1c7fc                                       |         goto label_1;
                                                                 |     }
    0x0001c944 mov r1, sl                                        |     r1 = sl;
    0x0001c948 mov r0, r4                                        |     r0 = r4;
    0x0001c94c bl 0x85e8                                         |     r0 = fcn_000085e8 ();
    0x0001c950 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001c954 beq 0x1c7bc                                       |         goto label_2;
                                                                 |     }
    0x0001c958 ldr r0, [r4, 0x70]                                |     r0 = *((r4 + 0x70));
    0x0001c95c bl 0x91c4                                         |     free (r0);
    0x0001c960 mov r0, r7                                        |     r0 = r7;
    0x0001c964 bl 0x8ae0                                         |     r0 = strdup (r0);
    0x0001c968 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c96c mvneq r5, 0xb                                     |         r5 = ~0xb;
                                                                 |     }
    0x0001c970 str r0, [r4, 0x70]                                |     *((r4 + 0x70)) = r0;
                                                                 | label_8:
    0x0001c974 mov r0, r5                                        |     r0 = r5;
    0x0001c978 add sp, sp, 0x1080                                |     
    0x0001c97c add sp, sp, 0x24                                  |     
    0x0001c980 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_11:
    0x0001c984 ldr r3, [pc, 0x70]                                |     r3 = *(0x1c9f8);
    0x0001c988 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001c98c b 0x1c928                                         |     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/lib/libmount.so.1.1.0 @ 0x1ca1c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001ca1c ()                                  | void fcn_0001ca1c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001ca1c push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0001ca20 ldr r6, [pc, 0x184]                           |     r6 = *(0x1cba8);
    0x0001ca24 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001ca28 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 == r0) {
    0x0001ca2c bne 0x1ca54                                   |         
    0x0001ca30 ldr r3, [pc, 0x178]                           |         
    0x0001ca34 ldr r1, [pc, 0x178]                           |         r1 = *(0x1cbb0);
    0x0001ca38 ldr r0, [pc, 0x178]                           |         r0 = *(0x1cbb4);
    0x0001ca3c add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ca40 add r3, r3, 0x8c                              |         r3 = 0x1cc38;
    0x0001ca44 mov r2, 0xdf                                  |         r2 = 0xdf;
    0x0001ca48 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ca4c add r0, pc, r0                                |         r0 = pc + r0;
    0x0001ca50 bl 0x908c                                     |         assert ();
                                                             |     }
    0x0001ca54 ldr r3, [r4, 0x64]                            |     r3 = *((r4 + 0x64));
    0x0001ca58 mov r5, r1                                    |     r5 = r1;
    0x0001ca5c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001ca60 bne 0x1cacc                                   |         
    0x0001ca64 bl 0x19934                                    |         fcn_00019934 ();
    0x0001ca68 ldr r3, [pc, 0x14c]                           |         
    0x0001ca6c str r0, [r4, 0x64]                            |         *((r4 + 0x64)) = r0;
    0x0001ca70 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001ca74 ldr r3, [r3]                                  |         r3 = *(0x1cbb8);
    0x0001ca78 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) == 0) {
    0x0001ca7c beq 0x1cacc                                   |             goto label_2;
                                                             |         }
    0x0001ca80 ldr r3, [pc, 0x138]                           |         r3 = *(0x1cbbc);
    0x0001ca84 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001ca88 ldr r7, [r3]                                  |         r7 = *(0x1cbbc);
    0x0001ca8c bl 0x8204                                     |         getpid ();
    0x0001ca90 ldr r3, [pc, 0x12c]                           |         r3 = *(0x1cbc0);
    0x0001ca94 ldr r1, [pc, 0x12c]                           |         r1 = *(0x1cbc4);
    0x0001ca98 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ca9c str r3, [sp]                                  |         *(sp) = r3;
    0x0001caa0 ldr r3, [pc, 0x124]                           |         r3 = *(0x1cbc8);
    0x0001caa4 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001caa8 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001caac mov r2, r0                                    |         r2 = r0;
    0x0001cab0 mov r0, r7                                    |         r0 = r7;
    0x0001cab4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001cab8 ldr r1, [pc, 0x110]                           |         r1 = *(0x1cbcc);
    0x0001cabc ldr r2, [r4, 0x64]                            |         r2 = *((r4 + 0x64));
    0x0001cac0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cac4 mov r0, r4                                    |         r0 = r4;
    0x0001cac8 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
                                                             | label_2:
    0x0001cacc cmp r5, 0                                     |     
    0x0001cad0 bne 0x1cae4                                   |     
                                                             |     while (r0 != 0) {
                                                             | label_0:
    0x0001cad4 mov r5, 0                                     |         r5 = 0;
                                                             | label_1:
    0x0001cad8 mov r0, r5                                    |         r0 = r5;
    0x0001cadc add sp, sp, 0xc                               |         
    0x0001cae0 pop {r4, r5, r6, r7, pc}                      |         
    0x0001cae4 mov r0, r4                                    |         r0 = r4;
    0x0001cae8 bl 0x88c4                                     |         r0 = fcn_000088c4 ();
    0x0001caec cmp r0, 0                                     |         
    0x0001caf0 bne 0x1cad4                                   |         
                                                             |     }
    0x0001caf4 ldr r5, [r4, 0x6c]                            |     r5 = *((r4 + 0x6c));
    0x0001caf8 ands r5, r5, 0x10000000                       |     r5 &= 0x10000000;
                                                             |     if (r5 != r5) {
    0x0001cafc bne 0x1cad4                                   |         goto label_0;
                                                             |     }
    0x0001cb00 ldr r3, [pc, 0xb4]                            |     
    0x0001cb04 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001cb08 ldr r3, [r3]                                  |     r3 = *(0x1cbb8);
    0x0001cb0c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001cb10 beq 0x1cb5c                                   |         
    0x0001cb14 ldr r3, [pc, 0xa4]                            |         r3 = *(0x1cbbc);
    0x0001cb18 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001cb1c ldr r6, [r3]                                  |         r6 = *(0x1cbbc);
    0x0001cb20 bl 0x8204                                     |         getpid ();
    0x0001cb24 ldr r3, [pc, 0xa8]                            |         r3 = *(0x1cbd0);
    0x0001cb28 ldr r1, [pc, 0xa8]                            |         r1 = *(0x1cbd4);
    0x0001cb2c add r3, pc, r3                                |         r3 = pc + r3;
    0x0001cb30 str r3, [sp]                                  |         *(sp) = r3;
    0x0001cb34 ldr r3, [pc, 0xa0]                            |         r3 = *(0x1cbd8);
    0x0001cb38 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cb3c add r3, pc, r3                                |         r3 = pc + r3;
    0x0001cb40 mov r2, r0                                    |         r2 = r0;
    0x0001cb44 mov r0, r6                                    |         r0 = r6;
    0x0001cb48 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001cb4c ldr r1, [pc, 0x8c]                            |         r1 = *(0x1cbdc);
    0x0001cb50 mov r0, r4                                    |         r0 = r4;
    0x0001cb54 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cb58 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001cb5c mov r3, 0                                     |     r3 = 0;
    0x0001cb60 str r3, [r4, 0x60]                            |     *((r4 + 0x60)) = r3;
    0x0001cb64 mov r0, r4                                    |     r0 = r4;
    0x0001cb68 bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x0001cb6c subs r6, r0, 0                                |     r6 = r0 - 0;
    0x0001cb70 bne 0x1cb7c                                   |     
                                                             |     while (r0 == 0) {
    0x0001cb74 ldr r5, [pc, 0x68]                            |         r5 = *(0x1cbe0);
    0x0001cb78 b 0x1cad8                                     |         goto label_1;
    0x0001cb7c add r1, r4, 0x68                              |         r1 = r4 + 0x68;
    0x0001cb80 add r0, r4, 0x64                              |         r0 = r4 + 0x64;
    0x0001cb84 bl 0x19994                                    |         fcn_00019994 (r0, r1);
    0x0001cb88 mov r1, r6                                    |         r1 = r6;
    0x0001cb8c mov r0, r4                                    |         r0 = r4;
    0x0001cb90 bl 0x85e8                                     |         r0 = fcn_000085e8 ();
    0x0001cb94 cmp r0, 0                                     |         
    0x0001cb98 beq 0x1cb74                                   |         
                                                             |     }
    0x0001cb9c ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x0001cba0 orr r3, r3, 0x10000000                        |     r3 |= 0x10000000;
    0x0001cba4 str r3, [r4, 0x6c]                            |     *((r4 + 0x6c)) = r3;
    0x0001cba8 b 0x1cad8                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x1cd54 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001cd54 ()                                  | void fcn_0001cd54 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
    0x0001cd54 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0001cd58 ldr r6, [pc, 0x450]                           |     r6 = *(0x1d1ac);
    0x0001cd5c subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001cd60 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 != r0) {
    0x0001cd64 bne 0x1cd8c                                   |         goto label_5;
                                                             |     }
    0x0001cd68 ldr r3, [pc, 0x444]                           |     
    0x0001cd6c ldr r1, [pc, 0x444]                           |     r1 = *(0x1d1b4);
    0x0001cd70 ldr r0, [pc, 0x444]                           |     r0 = *(0x1d1b8);
    0x0001cd74 ldr r2, [pc, 0x444]                           |     r2 = *(0x1d1bc);
    0x0001cd78 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001cd7c add r3, r3, 0xf4                              |     r3 = 0x1d2a4;
    0x0001cd80 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001cd84 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_0:
    0x0001cd88 bl 0x908c                                     |         assert ();
                                                             | label_5:
    0x0001cd8c ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x0001cd90 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001cd94 bne 0x1cdbc                                   |             goto label_6;
                                                             |         }
    0x0001cd98 ldr r3, [pc, 0x424]                           |         
    0x0001cd9c ldr r1, [pc, 0x424]                           |         r1 = *(0x1d1c4);
    0x0001cda0 ldr r0, [pc, 0x424]                           |         r0 = *(0x1d1c8);
    0x0001cda4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001cda8 add r3, r3, 0xf4                              |         r3 = 0x1d2b4;
    0x0001cdac ldr r2, [pc, 0x41c]                           |         r2 = *(0x1d1cc);
    0x0001cdb0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cdb4 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001cdb8 b 0x1cd88                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x0001cdbc ldr r3, [r4]                                  |     r3 = *(r4);
    0x0001cdc0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001cdc4 bne 0x1cdec                                   |         
    0x0001cdc8 ldr r3, [pc, 0x404]                           |         
    0x0001cdcc ldr r1, [pc, 0x404]                           |         r1 = *(0x1d1d4);
    0x0001cdd0 ldr r0, [pc, 0x404]                           |         r0 = *(0x1d1d8);
    0x0001cdd4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001cdd8 add r3, r3, 0xf4                              |         r3 = 0x1d2c4;
    0x0001cddc ldr r2, [pc, 0x3fc]                           |         r2 = *(0x1d1dc);
    0x0001cde0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cde4 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001cde8 b 0x1cd88                                     |         goto label_0;
                                                             |     }
    0x0001cdec ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x0001cdf0 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x0001cdf4 bne 0x1ce1c                                   |         
    0x0001cdf8 ldr r3, [pc, 0x3e4]                           |         
    0x0001cdfc ldr r1, [pc, 0x3e4]                           |         r1 = *(0x1d1e4);
    0x0001ce00 ldr r0, [pc, 0x3e4]                           |         r0 = *(0x1d1e8);
    0x0001ce04 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ce08 add r3, r3, 0xf4                              |         r3 = 0x1d2d4;
    0x0001ce0c ldr r2, [pc, 0x3dc]                           |         r2 = *(0x1d1ec);
    0x0001ce10 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ce14 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001ce18 b 0x1cd88                                     |         goto label_0;
                                                             |     }
    0x0001ce1c ldr r3, [pc, 0x3d0]                           |     r3 = *(0x1d1f0);
    0x0001ce20 ldr r7, [r6, r3]                              |     r7 = *((r6 + r3));
    0x0001ce24 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001ce28 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001ce2c beq 0x1ce78                                   |         
    0x0001ce30 ldr r3, [pc, 0x3c0]                           |         r3 = *(0x1d1f4);
    0x0001ce34 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001ce38 ldr r5, [r3]                                  |         r5 = *(0x1d1f4);
    0x0001ce3c bl 0x8204                                     |         getpid ();
    0x0001ce40 ldr r3, [pc, 0x3b4]                           |         r3 = *(0x1d1f8);
    0x0001ce44 ldr r1, [pc, 0x3b4]                           |         r1 = *(0x1d1fc);
    0x0001ce48 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ce4c str r3, [sp]                                  |         *(sp) = r3;
    0x0001ce50 ldr r3, [pc, 0x3ac]                           |         r3 = *(0x1d200);
    0x0001ce54 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ce58 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ce5c mov r2, r0                                    |         r2 = r0;
    0x0001ce60 mov r0, r5                                    |         r0 = r5;
    0x0001ce64 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001ce68 ldr r1, [pc, 0x398]                           |         r1 = *(0x1d204);
    0x0001ce6c mov r0, r4                                    |         r0 = r4;
    0x0001ce70 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ce74 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001ce78 mov r0, r4                                    |     r0 = r4;
    0x0001ce7c bl 0x1b67c                                    |     r0 = fcn_0001b67c (r0);
    0x0001ce80 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001ce84 beq 0x1cef0                                   |         goto label_7;
                                                             |     }
    0x0001ce88 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001ce8c tst r3, 0x200                                 |     
    0x0001ce90 bne 0x1cea4                                   |     
                                                             |     while (1) {
                                                             | label_1:
    0x0001ce94 mov r5, 0                                     |         r5 = 0;
                                                             | label_3:
    0x0001ce98 mov r0, r5                                    |         r0 = r5;
    0x0001ce9c add sp, sp, 8                                 |         
    0x0001cea0 pop {r4, r5, r6, r7, r8, pc}                  |         
    0x0001cea4 ldr r3, [pc, 0x34c]                           |         r3 = *(0x1d1f4);
    0x0001cea8 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001ceac ldr r5, [r3]                                  |         r5 = *(0x1d1f4);
    0x0001ceb0 bl 0x8204                                     |         getpid ();
    0x0001ceb4 ldr r3, [pc, 0x350]                           |         r3 = *(0x1d208);
    0x0001ceb8 ldr r1, [pc, 0x350]                           |         r1 = *(0x1d20c);
    0x0001cebc add r3, pc, r3                                |         r3 = pc + r3;
    0x0001cec0 str r3, [sp]                                  |         *(sp) = r3;
    0x0001cec4 ldr r3, [pc, 0x348]                           |         r3 = *(0x1d210);
    0x0001cec8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cecc add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ced0 mov r2, r0                                    |         r2 = r0;
    0x0001ced4 mov r0, r5                                    |         r0 = r5;
    0x0001ced8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001cedc ldr r1, [pc, 0x334]                           |         r1 = *(0x1d214);
    0x0001cee0 add r1, pc, r1                                |         r1 = pc + r1;
                                                             | label_2:
    0x0001cee4 mov r0, r4                                    |         r0 = r4;
    0x0001cee8 bl 0x1a538                                    |         fcn_0001a538 (r0);
    0x0001ceec b 0x1ce94                                     |         
                                                             |     }
                                                             | label_7:
    0x0001cef0 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0001cef4 bl 0x81d4                                     |     fcn_000081d4 ();
    0x0001cef8 ldr r2, [r4]                                  |     r2 = *(r4);
    0x0001cefc sub r3, r2, 2                                 |     r3 = r2 - 2;
    0x0001cf00 clz r3, r3                                    |     r3 &= r3;
    0x0001cf04 lsr r3, r3, 5                                 |     r3 >>= 5;
    0x0001cf08 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001cf0c moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x0001cf10 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001cf14 beq 0x1cf8c                                   |         
    0x0001cf18 ldr r1, [pc, 0x2fc]                           |         r1 = *(0x1d218);
    0x0001cf1c add r1, pc, r1                                |         r1 = pc + r1;
    0x0001cf20 bl 0x8cb4                                     |         r0 = strcmp (r0, r1);
    0x0001cf24 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001cf28 bne 0x1cf8c                                   |             goto label_8;
                                                             |         }
    0x0001cf2c ldr r3, [r7]                                  |         r3 = *(r7);
    0x0001cf30 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0001cf34 beq 0x1cf80                                   |             
    0x0001cf38 ldr r3, [pc, 0x2b8]                           |             r3 = *(0x1d1f4);
    0x0001cf3c ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0001cf40 ldr r5, [r3]                                  |             r5 = *(0x1d1f4);
    0x0001cf44 bl 0x8204                                     |             getpid ();
    0x0001cf48 ldr r3, [pc, 0x2d0]                           |             r3 = *(0x1d21c);
    0x0001cf4c ldr r1, [pc, 0x2d0]                           |             r1 = *(0x1d220);
    0x0001cf50 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001cf54 str r3, [sp]                                  |             *(sp) = r3;
    0x0001cf58 ldr r3, [pc, 0x2c8]                           |             r3 = *(0x1d224);
    0x0001cf5c add r1, pc, r1                                |             r1 = pc + r1;
    0x0001cf60 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001cf64 mov r2, r0                                    |             r2 = r0;
    0x0001cf68 mov r0, r5                                    |             r0 = r5;
    0x0001cf6c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001cf70 ldr r1, [pc, 0x2b4]                           |             r1 = *(0x1d228);
    0x0001cf74 mov r0, r4                                    |             r0 = r4;
    0x0001cf78 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001cf7c bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001cf80 mov r1, 1                                     |         r1 = 1;
    0x0001cf84 mov r0, r4                                    |         r0 = r4;
    0x0001cf88 bl 0x8630                                     |         fcn_00008630 ();
                                                             |     }
                                                             | label_8:
    0x0001cf8c mov r0, r4                                    |     r0 = r4;
    0x0001cf90 bl 0x88c4                                     |     r0 = fcn_000088c4 ();
    0x0001cf94 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x0001cf98 beq 0x1cfec                                   |         goto label_9;
                                                             |     }
    0x0001cf9c ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001cfa0 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001cfa4 beq 0x1ce94                                   |         goto label_1;
                                                             |     }
    0x0001cfa8 ldr r3, [pc, 0x248]                           |     r3 = *(0x1d1f4);
    0x0001cfac ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001cfb0 ldr r5, [r3]                                  |     r5 = *(0x1d1f4);
    0x0001cfb4 bl 0x8204                                     |     getpid ();
    0x0001cfb8 ldr r3, [pc, 0x270]                           |     r3 = *(0x1d22c);
    0x0001cfbc ldr r1, [pc, 0x270]                           |     r1 = *(0x1d230);
    0x0001cfc0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001cfc4 str r3, [sp]                                  |     *(sp) = r3;
    0x0001cfc8 ldr r3, [pc, 0x268]                           |     r3 = *(0x1d234);
    0x0001cfcc add r1, pc, r1                                |     r1 = pc + r1;
    0x0001cfd0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001cfd4 mov r2, r0                                    |     r2 = r0;
    0x0001cfd8 mov r0, r5                                    |     r0 = r5;
    0x0001cfdc bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001cfe0 ldr r1, [pc, 0x254]                           |     r1 = *(0x1d238);
    0x0001cfe4 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001cfe8 b 0x1cee4                                     |     goto label_2;
                                                             | label_9:
    0x0001cfec mov r0, r4                                    |     r0 = r4;
    0x0001cff0 bl 0x1cca0                                    |     r0 = fcn_0001cca0 (r0);
    0x0001cff4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001cff8 bne 0x1d054                                   |         goto label_10;
                                                             |     }
    0x0001cffc ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001d000 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001d004 beq 0x1ce94                                   |         goto label_1;
                                                             |     }
    0x0001d008 ldr r3, [pc, 0x1e8]                           |     r3 = *(0x1d1f4);
    0x0001d00c ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001d010 ldr r6, [r3]                                  |     r6 = *(0x1d1f4);
    0x0001d014 bl 0x8204                                     |     getpid ();
    0x0001d018 ldr r3, [pc, 0x220]                           |     r3 = *(0x1d23c);
    0x0001d01c ldr r1, [pc, 0x220]                           |     r1 = *(0x1d240);
    0x0001d020 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001d024 str r3, [sp]                                  |     *(sp) = r3;
    0x0001d028 ldr r3, [pc, 0x218]                           |     r3 = *(0x1d244);
    0x0001d02c add r1, pc, r1                                |     r1 = pc + r1;
    0x0001d030 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001d034 mov r2, r0                                    |     r2 = r0;
    0x0001d038 mov r0, r6                                    |     r0 = r6;
    0x0001d03c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001d040 ldr r1, [pc, 0x204]                           |     r1 = *(0x1d248);
    0x0001d044 add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_4:
    0x0001d048 mov r0, r4                                    |     r0 = r4;
    0x0001d04c bl 0x1a538                                    |     fcn_0001a538 (r0);
    0x0001d050 b 0x1ce98                                     |     goto label_3;
                                                             | label_10:
    0x0001d054 ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x0001d058 cmp r3, 1                                     |     
                                                             |     if (r3 < 1) {
    0x0001d05c bls 0x1d0bc                                   |         goto label_11;
                                                             |     }
    0x0001d060 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001d064 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001d068 beq 0x1ce94                                   |         goto label_1;
                                                             |     }
    0x0001d06c ldr r3, [pc, 0x184]                           |     r3 = *(0x1d1f4);
    0x0001d070 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001d074 ldr r6, [r3]                                  |     r6 = *(0x1d1f4);
    0x0001d078 bl 0x8204                                     |     getpid ();
    0x0001d07c ldr r3, [pc, 0x1cc]                           |     r3 = *(0x1d24c);
    0x0001d080 ldr r1, [pc, 0x1cc]                           |     r1 = *(0x1d250);
    0x0001d084 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001d088 str r3, [sp]                                  |     *(sp) = r3;
    0x0001d08c ldr r3, [pc, 0x1c4]                           |     r3 = *(0x1d254);
    0x0001d090 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001d094 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001d098 mov r2, r0                                    |     r2 = r0;
    0x0001d09c mov r0, r6                                    |     r0 = r6;
    0x0001d0a0 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001d0a4 ldr r1, [pc, 0x1b0]                           |     r1 = *(0x1d258);
    0x0001d0a8 ldr r2, [r4, 0x8c]                            |     r2 = *((r4 + 0x8c));
    0x0001d0ac add r1, pc, r1                                |     r1 = pc + r1;
    0x0001d0b0 mov r0, r4                                    |     r0 = r4;
    0x0001d0b4 bl 0x1a538                                    |     fcn_0001a538 (r0);
    0x0001d0b8 b 0x1ce98                                     |     goto label_3;
                                                             | label_11:
    0x0001d0bc ldr r3, [r4, 0x58]                            |     r3 = *((r4 + 0x58));
    0x0001d0c0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001d0c4 bne 0x1d170                                   |         goto label_12;
                                                             |     }
    0x0001d0c8 mov r0, r4                                    |     r0 = r4;
    0x0001d0cc bl 0x1cca0                                    |     fcn_0001cca0 (r0);
    0x0001d0d0 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0001d0d4 cmp r3, 2                                     |     
    0x0001d0d8 mov r8, r0                                    |     r8 = r0;
                                                             |     if (r3 != 2) {
    0x0001d0dc bne 0x1d13c                                   |         goto label_13;
                                                             |     }
    0x0001d0e0 bl 0x17f2c                                    |     r0 = fcn_00017f2c (r0);
    0x0001d0e4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001d0e8 beq 0x1d13c                                   |         goto label_13;
                                                             |     }
    0x0001d0ec ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001d0f0 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001d0f4 beq 0x1ce94                                   |         goto label_1;
                                                             |     }
    0x0001d0f8 ldr r3, [pc, 0xf8]                            |     r3 = *(0x1d1f4);
    0x0001d0fc ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001d100 ldr r6, [r3]                                  |     r6 = *(0x1d1f4);
    0x0001d104 bl 0x8204                                     |     getpid ();
    0x0001d108 ldr r3, [pc, 0x150]                           |     r3 = *(0x1d25c);
    0x0001d10c ldr r1, [pc, 0x150]                           |     r1 = *(0x1d260);
    0x0001d110 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001d114 str r3, [sp]                                  |     *(sp) = r3;
    0x0001d118 ldr r3, [pc, 0x148]                           |     r3 = *(0x1d264);
    0x0001d11c add r1, pc, r1                                |     r1 = pc + r1;
    0x0001d120 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001d124 mov r2, r0                                    |     r2 = r0;
    0x0001d128 mov r0, r6                                    |     r0 = r6;
    0x0001d12c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001d130 ldr r1, [pc, 0x134]                           |     r1 = *(0x1d268);
    0x0001d134 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001d138 b 0x1d048                                     |     goto label_4;
                                                             | label_13:
    0x0001d13c bl 0x81f8                                     |     r0 = fcn_000081f8 ();
    0x0001d140 cmp r0, 0                                     |     
    0x0001d144 mov r5, r0                                    |     r5 = r0;
    0x0001d148 str r0, [r4, 0x58]                            |     *((r4 + 0x58)) = r0;
                                                             |     if (r0 == 0) {
    0x0001d14c mvneq r5, 0xb                                 |         r5 = ~0xb;
                                                             |         goto label_14;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_14:
    0x0001d150 beq 0x1ce98                                   |         goto label_3;
                                                             |     }
    0x0001d154 mov r0, r4                                    |     r0 = r4;
    0x0001d158 bl 0x1cbe8                                    |     fcn_0001cbe8 (r0);
    0x0001d15c mov r1, r8                                    |     r1 = r8;
    0x0001d160 clz r2, r0                                    |     r2 &= r0;
    0x0001d164 mov r0, r5                                    |     r0 = r5;
    0x0001d168 lsr r2, r2, 5                                 |     r2 >>= 5;
    0x0001d16c bl 0x16278                                    |     fcn_00016278 (r0, r1);
                                                             | label_12:
    0x0001d170 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0001d174 ldr r5, [r4, 0x58]                            |     r5 = *((r4 + 0x58));
    0x0001d178 cmp r3, 2                                     |     
    0x0001d17c ldr r6, [r4, 0x3c]                            |     r6 = *((r4 + 0x3c));
                                                             |     if (r3 == 2) {
    0x0001d180 ldrne r3, [r4, 0x10]                          |         r3 = *((r4 + 0x10));
                                                             |     }
                                                             |     if (r3 == 2) {
    0x0001d184 movne r2, 0                                   |         r2 = 0;
                                                             |     }
                                                             |     if (r3 == 2) {
    0x0001d188 bne 0x1d19c                                   |         
    0x0001d18c mov r0, r4                                    |         r0 = r4;
    0x0001d190 bl 0x84b0                                     |         fcn_000084b0 ();
    0x0001d194 mov r3, 0                                     |         r3 = 0;
    0x0001d198 mov r2, r0                                    |         r2 = r0;
                                                             |     }
    0x0001d19c mov r0, r5                                    |     r0 = r5;
    0x0001d1a0 mov r1, r6                                    |     r1 = r6;
    0x0001d1a4 bl 0x9194                                     |     r0 = fcn_00009194 ();
    0x0001d1a8 and r5, r0, r0, asr 31                        |     r5 = r0 & (r0 >> 31);
    0x0001d1ac b 0x1ce98                                     |     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/lib/libmount.so.1.1.0 @ 0x1d69c */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0001d69c ()                                                  | void fcn_0001d69c (int32_t arg1) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_8h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_10h;
                                                                             |     r0 = arg1;
    0x0001d69c push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0001d6a0 ldr r7, [pc, 0x3e0]                                           |     r7 = *(0x1da84);
    0x0001d6a4 subs r4, r0, 0                                                |     r4 = r0 - 0;
    0x0001d6a8 add r7, pc, r7                                                |     r7 = pc + r7;
                                                                             |     if (r4 != r0) {
    0x0001d6ac bne 0x1d6d8                                                   |         goto label_13;
                                                                             |     }
    0x0001d6b0 ldr r3, [pc, 0x3d4]                                           |     
    0x0001d6b4 ldr r1, [pc, 0x3d4]                                           |     r1 = *(0x1da8c);
    0x0001d6b8 ldr r0, [pc, 0x3d4]                                           |     r0 = *(0x1da90);
    0x0001d6bc add r3, pc, r3                                                |     r3 = pc + r3;
    0x0001d6c0 ldr r2, [pc, 0x3d0]                                           |     r2 = *(0x1da94);
    0x0001d6c4 add r3, r3, 0x10c                                             |     r3 = 0x1db94;
    0x0001d6c8 add r3, r3, 3                                                 |     r3 += 3;
    0x0001d6cc add r1, pc, r1                                                |     r1 = pc + r1;
    0x0001d6d0 add r0, pc, r0                                                |     r0 = pc + r0;
                                                                             |     do {
                                                                             | label_0:
    0x0001d6d4 bl 0x908c                                                     |         assert ();
                                                                             | label_13:
    0x0001d6d8 ldr r3, [r4, 0x10]                                            |         r3 = *((r4 + 0x10));
    0x0001d6dc cmp r3, 0                                                     |         
                                                                             |         if (r3 != 0) {
    0x0001d6e0 bne 0x1d70c                                                   |             goto label_14;
                                                                             |         }
    0x0001d6e4 ldr r3, [pc, 0x3b0]                                           |         
    0x0001d6e8 ldr r1, [pc, 0x3b0]                                           |         r1 = *(0x1da9c);
    0x0001d6ec ldr r0, [pc, 0x3b0]                                           |         r0 = *(0x1daa0);
    0x0001d6f0 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001d6f4 add r3, r3, 0x10c                                             |         r3 = 0x1dba4;
    0x0001d6f8 add r3, r3, 3                                                 |         r3 += 3;
    0x0001d6fc ldr r2, [pc, 0x3a4]                                           |         r2 = *(0x1daa4);
    0x0001d700 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d704 add r0, pc, r0                                                |         r0 = pc + r0;
    0x0001d708 b 0x1d6d4                                                     |         
                                                                             |     } while (1);
                                                                             | label_14:
    0x0001d70c ldr r3, [r4, 0x6c]                                            |     r3 = *((r4 + 0x6c));
    0x0001d710 tst r3, 0x400000                                              |     
                                                                             |     if ((r3 & 0x400000) == 0) {
    0x0001d714 bne 0x1d740                                                   |         
    0x0001d718 ldr r3, [pc, 0x38c]                                           |         
    0x0001d71c ldr r1, [pc, 0x38c]                                           |         r1 = *(0x1daac);
    0x0001d720 ldr r0, [pc, 0x38c]                                           |         r0 = *(0x1dab0);
    0x0001d724 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001d728 add r3, r3, 0x10c                                             |         r3 = 0x1dbb4;
    0x0001d72c add r3, r3, 3                                                 |         r3 += 3;
    0x0001d730 ldr r2, [pc, 0x380]                                           |         r2 = *(0x1dab4);
    0x0001d734 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d738 add r0, pc, r0                                                |         r0 = pc + r0;
    0x0001d73c b 0x1d6d4                                                     |         goto label_0;
                                                                             |     }
    0x0001d740 ldr r3, [pc, 0x374]                                           |     r3 = *(0x1dab8);
    0x0001d744 ldr r8, [r7, r3]                                              |     r8 = *((r7 + r3));
    0x0001d748 ldr r3, [r8]                                                  |     r3 = *(r8);
    0x0001d74c tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) != 0) {
    0x0001d750 beq 0x1d79c                                                   |         
    0x0001d754 ldr r3, [pc, 0x364]                                           |         r3 = *(0x1dabc);
    0x0001d758 ldr r3, [r7, r3]                                              |         r3 = *((r7 + r3));
    0x0001d75c ldr r5, [r3]                                                  |         r5 = *(0x1dabc);
    0x0001d760 bl 0x8204                                                     |         getpid ();
    0x0001d764 ldr r3, [pc, 0x358]                                           |         r3 = *(0x1dac0);
    0x0001d768 ldr r1, [pc, 0x358]                                           |         r1 = *(0x1dac4);
    0x0001d76c add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001d770 str r3, [sp]                                                  |         *(sp) = r3;
    0x0001d774 ldr r3, [pc, 0x350]                                           |         r3 = *(0x1dac8);
    0x0001d778 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d77c add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001d780 mov r2, r0                                                    |         r2 = r0;
    0x0001d784 mov r0, r5                                                    |         r0 = r5;
    0x0001d788 bl 0x8798                                                     |         fprintf (r0, r1, r2, r3)
    0x0001d78c ldr r1, [pc, 0x33c]                                           |         r1 = *(0x1dacc);
    0x0001d790 mov r0, r4                                                    |         r0 = r4;
    0x0001d794 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d798 bl 0x1a538                                                    |         fcn_0001a538 (r0);
                                                                             |     }
    0x0001d79c ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d7a0 bl 0x8c90                                                     |     r0 = fcn_00008c90 ();
    0x0001d7a4 subs r6, r0, 0                                                |     r6 = r0 - 0;
                                                                             |     if (r6 != r0) {
    0x0001d7a8 bne 0x1da08                                                   |         goto label_15;
                                                                             |     }
    0x0001d7ac mov r0, r4                                                    |     r0 = r4;
    0x0001d7b0 bl 0x1b67c                                                    |     r0 = fcn_0001b67c (r0);
    0x0001d7b4 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001d7b8 bne 0x1d7cc                                                   |         goto label_16;
                                                                             |     }
                                                                             | label_11:
    0x0001d7bc mov r5, 0                                                     |     r5 = 0;
                                                                             |     do {
                                                                             | label_1:
    0x0001d7c0 mov r0, r5                                                    |         r0 = r5;
    0x0001d7c4 add sp, sp, 0x10                                              |         
    0x0001d7c8 pop {r4, r5, r6, r7, r8, sb, sl, pc}                          |         
                                                                             | label_16:
    0x0001d7cc ldr r1, [pc, 0x300]                                           |         r1 = *(0x1dad0);
    0x0001d7d0 ldr r0, [r4, 0x10]                                            |         r0 = *((r4 + 0x10));
    0x0001d7d4 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d7d8 bl 0x8594                                                     |         r0 = fcn_00008594 ();
    0x0001d7dc mov r5, r0                                                    |         r5 = r0;
    0x0001d7e0 b 0x1d7c0                                                     |         
                                                                             |     } while (1);
                                                                             | label_12:
    0x0001d7e4 mov r0, r4                                                    |     r0 = r4;
    0x0001d7e8 bl 0x8558                                                     |     fcn_00008558 ();
    0x0001d7ec add r2, sp, 0xc                                               |     r2 += var_ch;
    0x0001d7f0 add r1, sp, 8                                                 |     r1 += var_8h;
    0x0001d7f4 mov r5, r0                                                    |     r5 = r0;
    0x0001d7f8 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d7fc bl 0x9158                                                     |     r0 = fcn_00009158 ();
    0x0001d800 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001d804 bne 0x1d920                                                   |         goto label_17;
                                                                             |     }
    0x0001d808 cmp r5, 0                                                     |     
                                                                             |     if (r5 != 0) {
    0x0001d80c bne 0x1d884                                                   |         goto label_18;
                                                                             |     }
                                                                             | label_2:
    0x0001d810 ldr r5, [pc, 0x2c0]                                           |     r5 = *(0x1dad4);
                                                                             | label_3:
    0x0001d814 ldr r3, [r8]                                                  |     r3 = *(r8);
    0x0001d818 tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) != 0) {
    0x0001d81c beq 0x1d86c                                                   |         
    0x0001d820 ldr r3, [pc, 0x298]                                           |         r3 = *(0x1dabc);
    0x0001d824 ldr r3, [r7, r3]                                              |         r3 = *((r7 + r3));
    0x0001d828 ldr r6, [r3]                                                  |         r6 = *(0x1dabc);
    0x0001d82c bl 0x8204                                                     |         getpid ();
    0x0001d830 ldr r3, [pc, 0x2a4]                                           |         r3 = *(0x1dad8);
    0x0001d834 ldr r1, [pc, 0x2a4]                                           |         r1 = *(0x1dadc);
    0x0001d838 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001d83c str r3, [sp]                                                  |         *(sp) = r3;
    0x0001d840 ldr r3, [pc, 0x29c]                                           |         r3 = *(0x1dae0);
    0x0001d844 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d848 add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001d84c mov r2, r0                                                    |         r2 = r0;
    0x0001d850 mov r0, r6                                                    |         r0 = r6;
    0x0001d854 bl 0x8798                                                     |         fprintf (r0, r1, r2, r3)
    0x0001d858 ldr r1, [pc, 0x288]                                           |         r1 = *(0x1dae4);
    0x0001d85c mov r2, r5                                                    |         r2 = r5;
    0x0001d860 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001d864 mov r0, r4                                                    |         r0 = r4;
    0x0001d868 bl 0x1a538                                                    |         fcn_0001a538 (r0);
                                                                             |     }
                                                                             | label_4:
    0x0001d86c mov r1, sl                                                    |     r1 = sl;
    0x0001d870 mov r0, r4                                                    |     r0 = r4;
    0x0001d874 bl 0x85e8                                                     |     r0 = fcn_000085e8 ();
    0x0001d878 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001d87c bne 0x1d7c0                                                   |         goto label_1;
                                                                             |     }
    0x0001d880 b 0x1da80                                                     |     goto label_19;
                                                                             | label_18:
    0x0001d884 mov r2, r5                                                    |     r2 = r5;
    0x0001d888 ldrd r0, r1, [sp, 8]                                          |     __asm ("ldrd r0, r1, [var_ch]");
    0x0001d88c bl 0x9008                                                     |     r0 = fcn_00009008 ();
    0x0001d890 subs r6, r0, 0                                                |     r6 = r0 - 0;
                                                                             |     if (r6 == r0) {
    0x0001d894 beq 0x1d810                                                   |         goto label_2;
                                                                             |     }
    0x0001d898 mov r1, r6                                                    |     r1 = r6;
    0x0001d89c ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d8a0 bl 0x8594                                                     |     r0 = fcn_00008594 ();
    0x0001d8a4 mov r5, r0                                                    |     r5 = r0;
                                                                             | label_6:
    0x0001d8a8 cmp r5, 0                                                     |     
                                                                             |     if (r5 != 0) {
    0x0001d8ac bne 0x1d814                                                   |         goto label_3;
                                                                             |     }
                                                                             |     do {
                                                                             | label_5:
    0x0001d8b0 ldr r3, [r4, 0x3c]                                            |         r3 = *((r4 + 0x3c));
    0x0001d8b4 ldr r2, [pc, 0x230]                                           |         r2 = *(0x1dae8);
    0x0001d8b8 tst r2, r3                                                    |         
                                                                             |         if ((r2 & r3) == 0) {
    0x0001d8bc beq 0x1d978                                                   |             goto label_20;
                                                                             |         }
                                                                             | label_7:
    0x0001d8c0 ldr r3, [r8]                                                  |         r3 = *(r8);
    0x0001d8c4 tst r3, 0x200                                                 |         
                                                                             |         if ((r3 & 0x200) != 0) {
    0x0001d8c8 beq 0x1d918                                                   |             
    0x0001d8cc ldr r3, [pc, 0x1ec]                                           |             r3 = *(0x1dabc);
    0x0001d8d0 ldr r3, [r7, r3]                                              |             r3 = *((r7 + r3));
    0x0001d8d4 ldr r5, [r3]                                                  |             r5 = *(0x1dabc);
    0x0001d8d8 bl 0x8204                                                     |             getpid ();
    0x0001d8dc ldr r3, [pc, 0x20c]                                           |             r3 = *(0x1daec);
    0x0001d8e0 ldr r1, [pc, 0x20c]                                           |             r1 = *(0x1daf0);
    0x0001d8e4 add r3, pc, r3                                                |             r3 = pc + r3;
    0x0001d8e8 str r3, [sp]                                                  |             *(sp) = r3;
    0x0001d8ec ldr r3, [pc, 0x204]                                           |             r3 = *(0x1daf4);
    0x0001d8f0 add r1, pc, r1                                                |             r1 = pc + r1;
    0x0001d8f4 add r3, pc, r3                                                |             r3 = pc + r3;
    0x0001d8f8 mov r2, r0                                                    |             r2 = r0;
    0x0001d8fc mov r0, r5                                                    |             r0 = r5;
    0x0001d900 bl 0x8798                                                     |             fprintf (r0, r1, r2, r3)
    0x0001d904 ldr r1, [pc, 0x1f0]                                           |             r1 = *(0x1daf8);
    0x0001d908 mov r2, r6                                                    |             r2 = r6;
    0x0001d90c add r1, pc, r1                                                |             r1 = pc + r1;
                                                                             | label_9:
    0x0001d910 mov r0, r4                                                    |             r0 = r4;
    0x0001d914 bl 0x1a538                                                    |             fcn_0001a538 (r0);
                                                                             |         }
                                                                             | label_8:
    0x0001d918 mov r5, 0                                                     |         r5 = 0;
    0x0001d91c b 0x1d86c                                                     |         goto label_4;
                                                                             | label_17:
    0x0001d920 cmp r5, 0                                                     |         
    0x0001d924 beq 0x1d8b0                                                   |         
                                                                             |     } while (r5 == 0);
    0x0001d928 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d92c bl 0x8894                                                     |     r0 = fcn_00008894 ();
    0x0001d930 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001d934 bne 0x1d8b0                                                   |         goto label_5;
                                                                             |     }
    0x0001d938 mov r1, r5                                                    |     r1 = r5;
    0x0001d93c mov r0, r6                                                    |     r0 = r6;
    0x0001d940 bl 0x8d38                                                     |     r0 = fcn_00008d38 ();
    0x0001d944 subs sb, r0, 0                                                |     sb = r0 - 0;
                                                                             |     if (sb == r0) {
    0x0001d948 beq 0x1d8b0                                                   |         goto label_5;
                                                                             |     }
    0x0001d94c mov r1, r6                                                    |     r1 = r6;
    0x0001d950 bl 0x8cb4                                                     |     r0 = strcmp (r0, r1);
    0x0001d954 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x0001d958 moveq r6, sb                                                  |         r6 = sb;
                                                                             |         goto label_21;
                                                                             |     }
                                                                             |     if (r0 == 0) {
                                                                             | label_21:
    0x0001d95c beq 0x1d8b0                                                   |         goto label_5;
                                                                             |     }
    0x0001d960 mov r1, sb                                                    |     r1 = sb;
    0x0001d964 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d968 bl 0x8594                                                     |     fcn_00008594 ();
    0x0001d96c mov r6, sb                                                    |     r6 = sb;
    0x0001d970 mov r5, r0                                                    |     r5 = r0;
    0x0001d974 b 0x1d8a8                                                     |     goto label_6;
                                                                             | label_20:
    0x0001d978 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d97c bl 0x8894                                                     |     r0 = fcn_00008894 ();
    0x0001d980 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001d984 bne 0x1d8c0                                                   |         goto label_7;
                                                                             |     }
    0x0001d988 mov r0, r4                                                    |     r0 = r4;
    0x0001d98c bl 0x1f140                                                    |     r0 = fcn_0001f140 (r0);
    0x0001d990 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001d994 bne 0x1d9f4                                                   |         goto label_22;
                                                                             |     }
                                                                             | label_10:
    0x0001d998 ldr r3, [r8]                                                  |     r3 = *(r8);
    0x0001d99c tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) == 0) {
    0x0001d9a0 beq 0x1d918                                                   |         goto label_8;
                                                                             |     }
    0x0001d9a4 ldr r3, [pc, 0x114]                                           |     r3 = *(0x1dabc);
    0x0001d9a8 ldr r3, [r7, r3]                                              |     r3 = *((r7 + r3));
    0x0001d9ac ldr r5, [r3]                                                  |     r5 = *(0x1dabc);
    0x0001d9b0 bl 0x8204                                                     |     getpid ();
    0x0001d9b4 ldr r3, [pc, 0x144]                                           |     r3 = *(0x1dafc);
    0x0001d9b8 ldr r1, [pc, 0x144]                                           |     r1 = *(0x1db00);
    0x0001d9bc add r3, pc, r3                                                |     r3 = pc + r3;
    0x0001d9c0 str r3, [sp]                                                  |     *(sp) = r3;
    0x0001d9c4 ldr r3, [pc, 0x13c]                                           |     r3 = *(0x1db04);
    0x0001d9c8 add r1, pc, r1                                                |     r1 = pc + r1;
    0x0001d9cc add r3, pc, r3                                                |     r3 = pc + r3;
    0x0001d9d0 mov r2, r0                                                    |     r2 = r0;
    0x0001d9d4 mov r0, r5                                                    |     r0 = r5;
    0x0001d9d8 bl 0x8798                                                     |     fprintf (r0, r1, r2, r3)
    0x0001d9dc ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001d9e0 bl 0x8c90                                                     |     fcn_00008c90 ();
    0x0001d9e4 ldr r1, [pc, 0x120]                                           |     r1 = *(0x1db08);
    0x0001d9e8 add r1, pc, r1                                                |     r1 = pc + r1;
    0x0001d9ec mov r2, r0                                                    |     r2 = r0;
    0x0001d9f0 b 0x1d910                                                     |     goto label_9;
                                                                             | label_22:
    0x0001d9f4 mov r0, r4                                                    |     r0 = r4;
    0x0001d9f8 bl 0x1f3a4                                                    |     r0 = fcn_0001f3a4 (r0);
    0x0001d9fc subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 != r0) {
    0x0001da00 bne 0x1d86c                                                   |         goto label_4;
                                                                             |     }
    0x0001da04 b 0x1d998                                                     |     goto label_10;
                                                                             | label_15:
    0x0001da08 ldr r0, [r4, 0x10]                                            |     r0 = *((r4 + 0x10));
    0x0001da0c bl 0x8dc8                                                     |     r0 = fcn_00008dc8 ();
    0x0001da10 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x0001da14 bne 0x1d7bc                                                   |         goto label_11;
                                                                             |     }
    0x0001da18 ldr r3, [r8]                                                  |     r3 = *(r8);
    0x0001da1c tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) != 0) {
    0x0001da20 beq 0x1da70                                                   |         
    0x0001da24 ldr r3, [pc, 0x94]                                            |         r3 = *(0x1dabc);
    0x0001da28 ldr r3, [r7, r3]                                              |         r3 = *((r7 + r3));
    0x0001da2c ldr r5, [r3]                                                  |         r5 = *(0x1dabc);
    0x0001da30 bl 0x8204                                                     |         getpid ();
    0x0001da34 ldr r3, [pc, 0xd4]                                            |         r3 = *(0x1db0c);
    0x0001da38 ldr r1, [pc, 0xd4]                                            |         r1 = *(0x1db10);
    0x0001da3c add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001da40 str r3, [sp]                                                  |         *(sp) = r3;
    0x0001da44 ldr r3, [pc, 0xcc]                                            |         r3 = *(0x1db14);
    0x0001da48 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001da4c add r3, pc, r3                                                |         r3 = pc + r3;
    0x0001da50 mov r2, r0                                                    |         r2 = r0;
    0x0001da54 mov r0, r5                                                    |         r0 = r5;
    0x0001da58 bl 0x8798                                                     |         fprintf (r0, r1, r2, r3)
    0x0001da5c ldr r1, [pc, 0xb8]                                            |         r1 = *(0x1db18);
    0x0001da60 mov r2, r6                                                    |         r2 = r6;
    0x0001da64 add r1, pc, r1                                                |         r1 = pc + r1;
    0x0001da68 mov r0, r4                                                    |         r0 = r4;
    0x0001da6c bl 0x1a538                                                    |         fcn_0001a538 (r0);
                                                                             |     }
    0x0001da70 mov r0, r4                                                    |     r0 = r4;
    0x0001da74 bl 0x872c                                                     |     r0 = fcn_0000872c ();
    0x0001da78 subs sl, r0, 0                                                |     sl = r0 - 0;
                                                                             |     if (sl != r0) {
    0x0001da7c bne 0x1d7e4                                                   |         goto label_12;
                                                                             |     }
                                                                             | label_19:
    0x0001da80 ldr r5, [pc, 0x98]                                            |     r5 = *(0x1db1c);
    0x0001da84 b 0x1d7c0                                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x1db24 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001db24 ()                                      | void fcn_0001db24 (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     char * * endptr;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_88h;
                                                                 |     int32_t var_8ch;
                                                                 |     r0 = arg1;
    0x0001db24 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001db28 ldr r6, [pc, 0x4cc]                               |     r6 = *(0x1dff8);
    0x0001db2c subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x0001db30 add r6, pc, r6                                    |     r6 = pc + r6;
    0x0001db34 sub sp, sp, 0x8c                                  |     
                                                                 |     if (r4 != r0) {
    0x0001db38 bne 0x1db64                                       |         goto label_8;
                                                                 |     }
    0x0001db3c ldr r3, [pc, 0x4bc]                               |     
    0x0001db40 ldr r1, [pc, 0x4bc]                               |     r1 = *(0x1e000);
    0x0001db44 ldr r0, [pc, 0x4bc]                               |     r0 = *(0x1e004);
    0x0001db48 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001db4c ldr r2, [pc, 0x4b8]                               |     r2 = *(0x1e008);
    0x0001db50 add r3, r3, 0x128                                 |     r3 = 0x1e124;
    0x0001db54 add r3, r3, 3                                     |     r3 += 3;
    0x0001db58 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001db5c add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
                                                                 | label_0:
    0x0001db60 bl 0x908c                                         |         assert ();
                                                                 | label_8:
    0x0001db64 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0001db68 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0001db6c bne 0x1db98                                       |             goto label_9;
                                                                 |         }
    0x0001db70 ldr r3, [pc, 0x498]                               |         
    0x0001db74 ldr r1, [pc, 0x498]                               |         r1 = *(0x1e010);
    0x0001db78 ldr r0, [pc, 0x498]                               |         r0 = *(0x1e014);
    0x0001db7c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001db80 add r3, r3, 0x128                                 |         r3 = 0x1e134;
    0x0001db84 add r3, r3, 3                                     |         r3 += 3;
    0x0001db88 ldr r2, [pc, 0x48c]                               |         r2 = *(0x1e018);
    0x0001db8c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001db90 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001db94 b 0x1db60                                         |         
                                                                 |     } while (1);
                                                                 | label_9:
    0x0001db98 ldr r3, [r4, 0x6c]                                |     r3 = *((r4 + 0x6c));
    0x0001db9c tst r3, 0x400000                                  |     
                                                                 |     if ((r3 & 0x400000) == 0) {
    0x0001dba0 bne 0x1dbcc                                       |         
    0x0001dba4 ldr r3, [pc, 0x474]                               |         
    0x0001dba8 ldr r1, [pc, 0x474]                               |         r1 = *(0x1e020);
    0x0001dbac ldr r0, [pc, 0x474]                               |         r0 = *(0x1e024);
    0x0001dbb0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001dbb4 add r3, r3, 0x128                                 |         r3 = 0x1e144;
    0x0001dbb8 add r3, r3, 3                                     |         r3 += 3;
    0x0001dbbc ldr r2, [pc, 0x468]                               |         r2 = *(0x1e028);
    0x0001dbc0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001dbc4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001dbc8 b 0x1db60                                         |         goto label_0;
                                                                 |     }
    0x0001dbcc ldr r3, [pc, 0x45c]                               |     r3 = *(0x1e02c);
    0x0001dbd0 ldr r8, [r6, r3]                                  |     r8 = *((r6 + r3));
    0x0001dbd4 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0001dbd8 tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) != 0) {
    0x0001dbdc beq 0x1dc28                                       |         
    0x0001dbe0 ldr r3, [pc, 0x44c]                               |         r3 = *(0x1e030);
    0x0001dbe4 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001dbe8 ldr r5, [r3]                                      |         r5 = *(0x1e030);
    0x0001dbec bl 0x8204                                         |         getpid ();
    0x0001dbf0 ldr r3, [pc, 0x440]                               |         r3 = *(0x1e034);
    0x0001dbf4 ldr r1, [pc, 0x440]                               |         r1 = *(0x1e038);
    0x0001dbf8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001dbfc str r3, [sp]                                      |         *(sp) = r3;
    0x0001dc00 ldr r3, [pc, 0x438]                               |         r3 = *(0x1e03c);
    0x0001dc04 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001dc08 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001dc0c mov r2, r0                                        |         r2 = r0;
    0x0001dc10 mov r0, r5                                        |         r0 = r5;
    0x0001dc14 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001dc18 ldr r1, [pc, 0x424]                               |         r1 = *(0x1e040);
    0x0001dc1c mov r0, r4                                        |         r0 = r4;
    0x0001dc20 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001dc24 bl 0x1a538                                        |         fcn_0001a538 (r0);
                                                                 |     }
    0x0001dc28 ldr r0, [r4, 0x10]                                |     r0 = *((r4 + 0x10));
    0x0001dc2c bl 0x81d4                                         |     r0 = fcn_000081d4 ();
    0x0001dc30 subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 == r0) {
    0x0001dc34 bne 0x1dc40                                       |         
                                                                 | label_5:
    0x0001dc38 mov r5, 0                                         |         r5 = 0;
    0x0001dc3c b 0x1dc54                                         |         
                                                                 |     } else {
    0x0001dc40 mov r0, r4                                        |         r0 = r4;
    0x0001dc44 bl 0x872c                                         |         r0 = fcn_0000872c ();
    0x0001dc48 subs sb, r0, 0                                    |         sb = r0 - 0;
                                                                 |         if (sb != r0) {
    0x0001dc4c bne 0x1dc60                                       |             goto label_10;
                                                                 |         }
                                                                 | label_2:
    0x0001dc50 ldr r5, [pc, 0x3f0]                               |         r5 = *(0x1e044);
                                                                 |     }
                                                                 | label_1:
    0x0001dc54 mov r0, r5                                        |     r0 = r5;
    0x0001dc58 add sp, sp, 0x8c                                  |     
    0x0001dc5c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_10:
    0x0001dc60 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001dc64 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0001dc68 bne 0x1ded8                                       |         goto label_11;
                                                                 |     }
    0x0001dc6c mov r0, r4                                        |     r0 = r4;
    0x0001dc70 bl 0x8f84                                         |     r0 = fcn_00008f84 ();
    0x0001dc74 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001dc78 bne 0x1ded8                                       |         goto label_11;
                                                                 |     }
    0x0001dc7c ldr r3, [r4, 0x44]                                |     r3 = *((r4 + 0x44));
    0x0001dc80 tst r3, 0x22000                                   |     
                                                                 |     if ((r3 & 0x22000) == 0) {
    0x0001dc84 beq 0x1ded8                                       |         goto label_11;
                                                                 |     }
    0x0001dc88 ldr r5, [r4, 0x10]                                |     r5 = *((r4 + 0x10));
    0x0001dc8c str r0, [sp, 0x14]                                |     var_14h = r0;
    0x0001dc90 cmp r5, 0                                         |     
    0x0001dc94 str r0, [sp, 0x18]                                |     var_18h = r0;
                                                                 |     if (r5 == 0) {
    0x0001dc98 bne 0x1dcc4                                       |         
    0x0001dc9c ldr r3, [pc, 0x3a8]                               |         
    0x0001dca0 ldr r1, [pc, 0x3a8]                               |         r1 = *(0x1e04c);
    0x0001dca4 ldr r0, [pc, 0x3a8]                               |         r0 = *(0x1e050);
    0x0001dca8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001dcac add r3, r3, 0x144                                 |         r3 = 0x1e18c;
    0x0001dcb0 add r3, r3, 2                                     |         r3 += 2;
    0x0001dcb4 ldr r2, [pc, 0x39c]                               |         r2 = *(0x1e054);
    0x0001dcb8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001dcbc add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001dcc0 b 0x1db60                                         |         goto label_0;
                                                                 |     }
    0x0001dcc4 ldr r1, [pc, 0x390]                               |     r1 = *(0x1e058);
    0x0001dcc8 add fp, sp, 0x18                                  |     
    0x0001dccc add sl, sp, 0x14                                  |     sl += var_14h;
    0x0001dcd0 mov r3, fp                                        |     r3 = fp;
    0x0001dcd4 mov r2, sl                                        |     r2 = sl;
    0x0001dcd8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001dcdc ldr r0, [r5, 0x4c]                                |     r0 = *((r5 + 0x4c));
    0x0001dce0 bl 0x84a4                                         |     r0 = fcn_000084a4 ();
    0x0001dce4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001dce8 beq 0x1dd0c                                       |         
    0x0001dcec ldr r1, [pc, 0x36c]                               |         r1 = *(0x1e05c);
    0x0001dcf0 mov r3, fp                                        |         r3 = fp;
    0x0001dcf4 mov r2, sl                                        |         r2 = sl;
    0x0001dcf8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001dcfc ldr r0, [r5, 0x4c]                                |         r0 = *((r5 + 0x4c));
    0x0001dd00 bl 0x84a4                                         |         r0 = fcn_000084a4 ();
    0x0001dd04 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001dd08 bne 0x1ded8                                       |             goto label_11;
                                                                 |         }
                                                                 |     }
    0x0001dd0c ldr r3, [r8]                                      |     r3 = *(r8);
    0x0001dd10 tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) != 0) {
    0x0001dd14 beq 0x1dd64                                       |         
    0x0001dd18 ldr r3, [pc, 0x314]                               |         r3 = *(0x1e030);
    0x0001dd1c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001dd20 ldr r5, [r3]                                      |         r5 = *(0x1e030);
    0x0001dd24 bl 0x8204                                         |         getpid ();
    0x0001dd28 ldr r3, [pc, 0x334]                               |         r3 = *(0x1e060);
    0x0001dd2c ldr r1, [pc, 0x334]                               |         r1 = *(0x1e064);
    0x0001dd30 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001dd34 str r3, [sp]                                      |         *(sp) = r3;
    0x0001dd38 ldr r3, [pc, 0x32c]                               |         r3 = *(0x1e068);
    0x0001dd3c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001dd40 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001dd44 mov r2, r0                                        |         r2 = r0;
    0x0001dd48 mov r0, r5                                        |         r0 = r5;
    0x0001dd4c bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001dd50 ldr r0, [pc, 0x318]                               |         r0 = *(0x1e06c);
    0x0001dd54 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0001dd58 mov r1, r7                                        |         r1 = r7;
    0x0001dd5c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001dd60 bl 0x1a5f8                                        |         fcn_0001a5f8 ();
                                                                 |     }
    0x0001dd64 add r1, sp, 0x20                                  |     r1 += var_20h;
    0x0001dd68 mov r0, r7                                        |     r0 = r7;
    0x0001dd6c bl 0x180e4                                        |     r0 = fcn_000180e4 (r0, r1);
    0x0001dd70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001dd74 beq 0x1ded8                                       |         goto label_11;
                                                                 |     }
    0x0001dd78 ldr fp, [sp, 0x14]                                |     fp = var_14h;
    0x0001dd7c cmp fp, 0                                         |     
    0x0001dd80 bne 0x1ddf0                                       |     
                                                                 |     while (r3 == 0) {
                                                                 | label_3:
    0x0001dd84 ldr r1, [pc, 0x2e8]                               |         r1 = *(0x1e070);
                                                                 | label_4:
    0x0001dd88 mov r0, r7                                        |         r0 = r7;
    0x0001dd8c bl 0x2a05c                                        |         r0 = fcn_0002a05c (r0, r1);
    0x0001dd90 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 == r0) {
    0x0001dd94 beq 0x1ded8                                       |             goto label_11;
                                                                 |         }
    0x0001dd98 ldr r3, [r8]                                      |         r3 = *(r8);
    0x0001dd9c tst r3, 0x200                                     |         
                                                                 |         if ((r3 & 0x200) == 0) {
    0x0001dda0 beq 0x1deb4                                       |             goto label_12;
                                                                 |         }
    0x0001dda4 ldr r3, [pc, 0x288]                               |         r3 = *(0x1e030);
    0x0001dda8 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001ddac ldr r6, [r3]                                      |         r6 = *(0x1e030);
    0x0001ddb0 bl 0x8204                                         |         getpid ();
    0x0001ddb4 ldr r3, [pc, 0x2bc]                               |         r3 = *(0x1e074);
    0x0001ddb8 ldr r1, [pc, 0x2bc]                               |         r1 = *(0x1e078);
    0x0001ddbc add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001ddc0 str r3, [sp]                                      |         *(sp) = r3;
    0x0001ddc4 ldr r3, [pc, 0x2b4]                               |         r3 = *(0x1e07c);
    0x0001ddc8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001ddcc add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001ddd0 mov r2, r0                                        |         r2 = r0;
    0x0001ddd4 mov r0, r6                                        |         r0 = r6;
    0x0001ddd8 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001dddc ldr r0, [pc, 0x2a0]                               |         r0 = *(0x1e080);
    0x0001dde0 mov r1, r7                                        |         r1 = r7;
    0x0001dde4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001dde8 bl 0x1a5f8                                        |         fcn_0001a5f8 ();
    0x0001ddec b 0x1deb4                                         |         goto label_12;
    0x0001ddf0 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x0001ddf4 cmp r3, 0                                         |         
    0x0001ddf8 beq 0x1dd84                                       |         
                                                                 |     }
    0x0001ddfc mov r3, 0                                         |     r3 = 0;
    0x0001de00 add r5, sp, 0x88                                  |     r5 += var_88h;
    0x0001de04 str r3, [r5, -0x6c]!                              |     *((r5 -= 0x6c)) = r3;
    0x0001de08 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001de0c bl 0x8f6c                                         |     errno_location ();
    0x0001de10 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0001de14 mov r1, r5                                        |     r1 = r5;
    0x0001de18 mov r2, 8                                         |     r2 = 8;
    0x0001de1c str r3, [r0]                                      |     *(r0) = r3;
    0x0001de20 mov sl, r0                                        |     sl = r0;
    0x0001de24 mov r0, fp                                        |     r0 = fp;
    0x0001de28 bl 0x863c                                         |     strtol (r0, r1, r2);
    0x0001de2c ldr r3, [sl]                                      |     r3 = *(sl);
    0x0001de30 cmp r3, 0                                         |     
    0x0001de34 mov r1, r0                                        |     r1 = r0;
                                                                 |     if (r3 == 0) {
    0x0001de38 bne 0x1de5c                                       |         
    0x0001de3c ldr r2, [sp, 0x1c]                                |         r2 = endptr;
    0x0001de40 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0001de44 beq 0x1de5c                                       |             goto label_13;
                                                                 |         }
    0x0001de48 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0001de4c ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x0001de50 add r3, r3, r0                                    |         r3 += r0;
    0x0001de54 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x0001de58 beq 0x1decc                                       |             goto label_14;
                                                                 |         }
                                                                 |     }
                                                                 | label_13:
    0x0001de5c ldr r3, [r8]                                      |     r3 = *(r8);
    0x0001de60 tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) != 0) {
    0x0001de64 beq 0x1deb0                                       |         
    0x0001de68 ldr r3, [pc, 0x1c4]                               |         r3 = *(0x1e030);
    0x0001de6c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0001de70 ldr r5, [r3]                                      |         r5 = *(0x1e030);
    0x0001de74 bl 0x8204                                         |         getpid ();
    0x0001de78 ldr r3, [pc, 0x208]                               |         r3 = *(0x1e084);
    0x0001de7c ldr r1, [pc, 0x208]                               |         r1 = *(0x1e088);
    0x0001de80 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001de84 str r3, [sp]                                      |         *(sp) = r3;
    0x0001de88 ldr r3, [pc, 0x200]                               |         r3 = *(0x1e08c);
    0x0001de8c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001de90 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001de94 mov r2, r0                                        |         r2 = r0;
    0x0001de98 mov r0, r5                                        |         r0 = r5;
    0x0001de9c bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001dea0 ldr r0, [pc, 0x1ec]                               |         r0 = *(0x1e090);
    0x0001dea4 ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x0001dea8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001deac bl 0x1a5f8                                        |         fcn_0001a5f8 ();
                                                                 |     }
    0x0001deb0 ldr r5, [pc, 0x1e0]                               |     r5 = *(0x1e094);
                                                                 | label_12:
    0x0001deb4 mov r1, sb                                        |     r1 = sb;
    0x0001deb8 mov r0, r4                                        |     r0 = r4;
    0x0001debc bl 0x85e8                                         |     r0 = fcn_000085e8 ();
    0x0001dec0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001dec4 bne 0x1dc54                                       |         goto label_1;
                                                                 |     }
    0x0001dec8 b 0x1dc50                                         |     goto label_2;
                                                                 | label_14:
    0x0001decc cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001ded0 beq 0x1dd84                                       |         goto label_3;
                                                                 |     }
    0x0001ded4 b 0x1dd88                                         |     goto label_4;
                                                                 | label_11:
    0x0001ded8 mov r0, r4                                        |     r0 = r4;
    0x0001dedc bl 0x8558                                         |     r0 = fcn_00008558 ();
    0x0001dee0 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 != r0) {
    0x0001dee4 bne 0x1df68                                       |         goto label_15;
                                                                 |     }
                                                                 | label_6:
    0x0001dee8 mov r5, 0                                         |     r5 = 0;
                                                                 | label_7:
    0x0001deec mov r1, sb                                        |     r1 = sb;
    0x0001def0 mov r0, r4                                        |     r0 = r4;
    0x0001def4 bl 0x85e8                                         |     r0 = fcn_000085e8 ();
    0x0001def8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001defc beq 0x1dc50                                       |         goto label_2;
                                                                 |     }
    0x0001df00 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0001df04 cmp r5, 0                                         |     
    0x0001df08 and r3, r3, 0x200                                 |     r3 &= 0x200;
                                                                 |     if (r5 == 0) {
    0x0001df0c beq 0x1df9c                                       |         goto label_16;
                                                                 |     }
    0x0001df10 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001df14 beq 0x1dc38                                       |         goto label_5;
                                                                 |     }
    0x0001df18 ldr r3, [pc, 0x114]                               |     r3 = *(0x1e030);
    0x0001df1c ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0001df20 ldr r5, [r3]                                      |     r5 = *(0x1e030);
    0x0001df24 bl 0x8204                                         |     getpid ();
    0x0001df28 ldr r3, [pc, 0x16c]                               |     r3 = *(0x1e098);
    0x0001df2c ldr r1, [pc, 0x16c]                               |     r1 = *(0x1e09c);
    0x0001df30 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001df34 str r3, [sp]                                      |     *(sp) = r3;
    0x0001df38 ldr r3, [pc, 0x164]                               |     r3 = *(0x1e0a0);
    0x0001df3c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001df40 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001df44 mov r2, r0                                        |     r2 = r0;
    0x0001df48 mov r0, r5                                        |     r0 = r5;
    0x0001df4c bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x0001df50 ldr r1, [pc, 0x150]                               |     r1 = *(0x1e0a4);
    0x0001df54 mov r2, r7                                        |     r2 = r7;
    0x0001df58 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001df5c mov r0, r4                                        |     r0 = r4;
    0x0001df60 bl 0x1a538                                        |     fcn_0001a538 (r0);
    0x0001df64 b 0x1dc38                                         |     goto label_5;
                                                                 | label_15:
    0x0001df68 mov r0, r7                                        |     r0 = r7;
    0x0001df6c bl 0x8d38                                         |     r0 = fcn_00008d38 ();
    0x0001df70 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 == r0) {
    0x0001df74 beq 0x1dee8                                       |         goto label_6;
                                                                 |     }
    0x0001df78 mov r1, r7                                        |     r1 = r7;
    0x0001df7c bl 0x8cb4                                         |     r0 = strcmp (r0, r1);
    0x0001df80 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001df84 beq 0x1dee8                                       |         goto label_6;
                                                                 |     }
    0x0001df88 mov r1, r5                                        |     r1 = r5;
    0x0001df8c ldr r0, [r4, 0x10]                                |     r0 = *((r4 + 0x10));
    0x0001df90 bl 0x8870                                         |     r0 = fcn_00008870 ();
    0x0001df94 mov r5, r0                                        |     r5 = r0;
    0x0001df98 b 0x1deec                                         |     goto label_7;
                                                                 | label_16:
    0x0001df9c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001dfa0 beq 0x1dc38                                       |         goto label_5;
                                                                 |     }
    0x0001dfa4 ldr r3, [pc, 0x88]                                |     r3 = *(0x1e030);
    0x0001dfa8 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0001dfac ldr r6, [r3]                                      |     r6 = *(0x1e030);
    0x0001dfb0 bl 0x8204                                         |     getpid ();
    0x0001dfb4 ldr r3, [pc, 0xf0]                                |     r3 = *(0x1e0a8);
    0x0001dfb8 ldr r1, [pc, 0xf0]                                |     r1 = *(0x1e0ac);
    0x0001dfbc add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001dfc0 str r3, [sp]                                      |     *(sp) = r3;
    0x0001dfc4 ldr r3, [pc, 0xe8]                                |     r3 = *(0x1e0b0);
    0x0001dfc8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001dfcc add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001dfd0 mov r2, r0                                        |     r2 = r0;
    0x0001dfd4 mov r0, r6                                        |     r0 = r6;
    0x0001dfd8 bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x0001dfdc ldr r0, [r4, 0x10]                                |     r0 = *((r4 + 0x10));
    0x0001dfe0 bl 0x81d4                                         |     fcn_000081d4 ();
    0x0001dfe4 ldr r1, [pc, 0xcc]                                |     r1 = *(0x1e0b4);
    0x0001dfe8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001dfec mov r2, r0                                        |     r2 = r0;
    0x0001dff0 mov r0, r4                                        |     r0 = r4;
    0x0001dff4 bl 0x1a538                                        |     fcn_0001a538 (r0);
    0x0001dff8 b 0x1dc54                                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x1e0bc */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001e0bc ()                          | void fcn_0001e0bc (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     int32_t var_10h;
                                                     |     int32_t var_14h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0001e0bc push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x0001e0c0 ldr r7, [pc, 0x178]                   |     r7 = *(0x1e23c);
    0x0001e0c4 sub sp, sp, 0x14                      |     
    0x0001e0c8 mov r5, r0                            |     r5 = r0;
    0x0001e0cc ldr r0, [r0, 0x10]                    |     r0 = *((r0 + 0x10));
    0x0001e0d0 mov r6, r1                            |     r6 = r1;
    0x0001e0d4 bl 0x80cc                             |     fcn_000080cc ();
    0x0001e0d8 mov sb, 0                             |     sb = 0;
    0x0001e0dc add r7, pc, r7                        |     r7 = pc + r7;
    0x0001e0e0 str sb, [r6]                          |     *(r6) = sb;
    0x0001e0e4 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 == r0) {
    0x0001e0e8 beq 0x1e100                           |         goto label_2;
                                                     |     }
    0x0001e0ec mov r0, r5                            |     r0 = r5;
    0x0001e0f0 bl 0x872c                             |     r0 = fcn_0000872c ();
    0x0001e0f4 subs r8, r0, 0                        |     r8 = r0 - 0;
                                                     |     if (r8 != r0) {
    0x0001e0f8 bne 0x1e10c                           |         goto label_3;
                                                     |     }
                                                     | label_0:
    0x0001e0fc ldr r4, [pc, 0x140]                   |     r4 = *(0x1e240);
                                                     |     do {
                                                     | label_2:
    0x0001e100 mov r0, r4                            |         r0 = r4;
    0x0001e104 add sp, sp, 0x14                      |         
    0x0001e108 pop {r4, r5, r6, r7, r8, sb, pc}      |         
                                                     | label_3:
    0x0001e10c mov r1, sb                            |         r1 = sb;
    0x0001e110 mov r0, r4                            |         r0 = r4;
    0x0001e114 bl 0x8f18                             |         r0 = access (r0, r1);
    0x0001e118 subs sb, r0, 0                        |         sb = r0 - 0;
                                                     |         if (sb != r0) {
    0x0001e11c bne 0x1e180                           |             goto label_4;
                                                     |         }
    0x0001e120 mov r0, r5                            |         r0 = r5;
    0x0001e124 bl 0x8558                             |         fcn_00008558 ();
    0x0001e128 add r1, sp, 0x10                      |         r1 += var_10h;
    0x0001e12c str sb, [r1, -4]!                     |         *((r1 -= 4)) = sb;
    0x0001e130 mov r7, r0                            |         r7 = r0;
    0x0001e134 mov r2, r0                            |         r2 = r0;
    0x0001e138 mov r0, r4                            |         r0 = r4;
    0x0001e13c bl 0x82c4                             |         r0 = fcn_000082c4 ();
    0x0001e140 cmp r0, 0                             |         
    0x0001e144 cmpne r7, 0                           |         __asm ("cmpne r7, 0");
    0x0001e148 str r0, [r6]                          |         *(r6) = r0;
                                                     |         if (r0 != 0) {
    0x0001e14c beq 0x1e158                           |             
    0x0001e150 bl 0x8ae0                             |             strdup (r0);
    0x0001e154 str r0, [r6]                          |             *(r6) = r0;
                                                     |         }
    0x0001e158 ldr r4, [sp, 0xc]                     |         r4 = var_ch;
    0x0001e15c ldr r3, [pc, 0xe4]                    |         r3 = *(0x1e244);
    0x0001e160 cmp r4, 0                             |         
                                                     |         if (r4 == 0) {
    0x0001e164 movne r4, r3                          |             r4 = r3;
                                                     |         }
                                                     | label_1:
    0x0001e168 mov r1, r8                            |         r1 = r8;
    0x0001e16c mov r0, r5                            |         r0 = r5;
    0x0001e170 bl 0x85e8                             |         r0 = fcn_000085e8 ();
    0x0001e174 cmp r0, 0                             |         
    0x0001e178 bne 0x1e100                           |         
                                                     |     } while (r0 != 0);
    0x0001e17c b 0x1e0fc                             |     goto label_0;
                                                     | label_4:
    0x0001e180 ldr r3, [pc, 0xc4]                    |     
    0x0001e184 ldr r3, [r7, r3]                      |     r3 = *((r7 + r3));
    0x0001e188 ldr r3, [r3]                          |     r3 = *(0x1e248);
    0x0001e18c tst r3, 0x200                         |     
                                                     |     if ((r3 & 0x200) != 0) {
    0x0001e190 beq 0x1e1e0                           |         
    0x0001e194 ldr r3, [pc, 0xb4]                    |         r3 = *(0x1e24c);
    0x0001e198 ldr r3, [r7, r3]                      |         r3 = *((r7 + r3));
    0x0001e19c ldr r7, [r3]                          |         r7 = *(0x1e24c);
    0x0001e1a0 bl 0x8204                             |         getpid ();
    0x0001e1a4 ldr r3, [pc, 0xa8]                    |         r3 = *(0x1e250);
    0x0001e1a8 ldr r1, [pc, 0xa8]                    |         r1 = *(0x1e254);
    0x0001e1ac add r3, pc, r3                        |         r3 = pc + r3;
    0x0001e1b0 str r3, [sp]                          |         *(sp) = r3;
    0x0001e1b4 ldr r3, [pc, 0xa0]                    |         r3 = *(0x1e258);
    0x0001e1b8 add r1, pc, r1                        |         r1 = pc + r1;
    0x0001e1bc add r3, pc, r3                        |         r3 = pc + r3;
    0x0001e1c0 mov r2, r0                            |         r2 = r0;
    0x0001e1c4 mov r0, r7                            |         r0 = r7;
    0x0001e1c8 bl 0x8798                             |         fprintf (r0, r1, r2, r3)
    0x0001e1cc ldr r1, [pc, 0x8c]                    |         r1 = *(0x1e25c);
    0x0001e1d0 mov r2, r4                            |         r2 = r4;
    0x0001e1d4 add r1, pc, r1                        |         r1 = pc + r1;
    0x0001e1d8 mov r0, r5                            |         r0 = r5;
    0x0001e1dc bl 0x1a538                            |         fcn_0001a538 (r0);
                                                     |     }
    0x0001e1e0 mov r1, 0x3a                          |     r1 = 0x3a;
    0x0001e1e4 mov r0, r4                            |     r0 = r4;
    0x0001e1e8 bl 0x90a4                             |     r0 = strchr (r0, r1);
    0x0001e1ec subs r7, r0, 0                        |     r7 = r0 - 0;
                                                     |     if (r7 != r0) {
    0x0001e1f0 beq 0x1e20c                           |         
    0x0001e1f4 ldr r0, [pc, 0x68]                    |         r0 = *(0x1e260);
    0x0001e1f8 mov r4, 0                             |         r4 = 0;
    0x0001e1fc add r0, pc, r0                        |         r0 = pc + r0;
    0x0001e200 bl 0x8ae0                             |         strdup (r0);
    0x0001e204 str r0, [r6]                          |         *(r6) = r0;
    0x0001e208 b 0x1e168                             |         goto label_1;
                                                     |     }
    0x0001e20c ldr r1, [pc, 0x54]                    |     r1 = *(0x1e264);
    0x0001e210 mov r0, r4                            |     r0 = r4;
    0x0001e214 mov r2, 2                             |     r2 = 2;
    0x0001e218 add r1, pc, r1                        |     r1 = pc + r1;
    0x0001e21c bl 0x8948                             |     r0 = strncmp (r0, r1, r2);
    0x0001e220 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x0001e224 movne r4, r7                          |         r4 = r7;
                                                     |         goto label_5;
                                                     |     }
                                                     |     if (r4 != r0) {
                                                     | label_5:
    0x0001e228 bne 0x1e168                           |         goto label_1;
                                                     |     }
    0x0001e22c ldr r0, [pc, 0x38]                    |     r0 = *(0x1e268);
    0x0001e230 add r0, pc, r0                        |     r0 = pc + r0;
    0x0001e234 bl 0x8ae0                             |     strdup (r0);
    0x0001e238 str r0, [r6]                          |     *(r6) = r0;
    0x0001e23c b 0x1e168                             |     goto label_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/lib/libmount.so.1.1.0 @ 0x1e270 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0001e270 ()                  | void fcn_0001e270 (int32_t arg1) {
                                             |     int32_t var_0h;
                                             |     void * ptr;
                                             |     int32_t var_14h;
                                             |     r0 = arg1;
    0x0001e270 push {r4, r5, r6, r7, lr}     |     
    0x0001e274 ldr r6, [pc, 0x22c]           |     r6 = *(0x1e4a4);
    0x0001e278 subs r4, r0, 0                |     r4 = r0 - 0;
    0x0001e27c add r6, pc, r6                |     r6 = pc + r6;
    0x0001e280 sub sp, sp, 0x14              |     
                                             |     if (r4 != r0) {
    0x0001e284 bne 0x1e2b0                   |         goto label_2;
                                             |     }
    0x0001e288 ldr r3, [pc, 0x21c]           |     
    0x0001e28c ldr r1, [pc, 0x21c]           |     r1 = *(0x1e4ac);
    0x0001e290 ldr r0, [pc, 0x21c]           |     r0 = *(0x1e4b0);
    0x0001e294 add r3, pc, r3                |     r3 = pc + r3;
    0x0001e298 ldr r2, [pc, 0x218]           |     r2 = *(0x1e4b4);
    0x0001e29c add r3, r3, 0x150             |     r3 = 0x1e5f8;
    0x0001e2a0 add r3, r3, 3                 |     r3 += 3;
    0x0001e2a4 add r1, pc, r1                |     r1 = pc + r1;
    0x0001e2a8 add r0, pc, r0                |     r0 = pc + r0;
                                             |     do {
                                             | label_0:
    0x0001e2ac bl 0x908c                     |         assert ();
                                             | label_2:
    0x0001e2b0 ldr r3, [r4, 0x10]            |         r3 = *((r4 + 0x10));
    0x0001e2b4 cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x0001e2b8 bne 0x1e2e4                   |             goto label_3;
                                             |         }
    0x0001e2bc ldr r3, [pc, 0x1f8]           |         
    0x0001e2c0 ldr r1, [pc, 0x1f8]           |         r1 = *(0x1e4bc);
    0x0001e2c4 ldr r0, [pc, 0x1f8]           |         r0 = *(0x1e4c0);
    0x0001e2c8 add r3, pc, r3                |         r3 = pc + r3;
    0x0001e2cc add r3, r3, 0x150             |         r3 = 0x1e608;
    0x0001e2d0 add r3, r3, 3                 |         r3 += 3;
    0x0001e2d4 ldr r2, [pc, 0x1ec]           |         r2 = *(0x1e4c4);
    0x0001e2d8 add r1, pc, r1                |         r1 = pc + r1;
    0x0001e2dc add r0, pc, r0                |         r0 = pc + r0;
    0x0001e2e0 b 0x1e2ac                     |         
                                             |     } while (1);
                                             | label_3:
    0x0001e2e4 ldr r3, [r4, 0x6c]            |     r3 = *((r4 + 0x6c));
    0x0001e2e8 tst r3, 0x400000              |     
                                             |     if ((r3 & 0x400000) == 0) {
    0x0001e2ec bne 0x1e318                   |         
    0x0001e2f0 ldr r3, [pc, 0x1d4]           |         
    0x0001e2f4 ldr r1, [pc, 0x1d4]           |         r1 = *(0x1e4cc);
    0x0001e2f8 ldr r0, [pc, 0x1d4]           |         r0 = *(0x1e4d0);
    0x0001e2fc add r3, pc, r3                |         r3 = pc + r3;
    0x0001e300 add r3, r3, 0x150             |         r3 = 0x1e618;
    0x0001e304 add r3, r3, 3                 |         r3 += 3;
    0x0001e308 mov r2, 0x720                 |         r2 = 0x720;
    0x0001e30c add r1, pc, r1                |         r1 = pc + r1;
    0x0001e310 add r0, pc, r0                |         r0 = pc + r0;
    0x0001e314 b 0x1e2ac                     |         goto label_0;
                                             |     }
    0x0001e318 ldr r3, [pc, 0x1b8]           |     r3 = *(0x1e4d4);
    0x0001e31c ldr r7, [r6, r3]              |     r7 = *((r6 + r3));
    0x0001e320 ldr r3, [r7]                  |     r3 = *(r7);
    0x0001e324 tst r3, 0x200                 |     
                                             |     if ((r3 & 0x200) != 0) {
    0x0001e328 beq 0x1e374                   |         
    0x0001e32c ldr r3, [pc, 0x1a8]           |         r3 = *(0x1e4d8);
    0x0001e330 ldr r3, [r6, r3]              |         r3 = *((r6 + r3));
    0x0001e334 ldr r5, [r3]                  |         r5 = *(0x1e4d8);
    0x0001e338 bl 0x8204                     |         getpid ();
    0x0001e33c ldr r3, [pc, 0x19c]           |         r3 = *(0x1e4dc);
    0x0001e340 ldr r1, [pc, 0x19c]           |         r1 = *(0x1e4e0);
    0x0001e344 add r3, pc, r3                |         r3 = pc + r3;
    0x0001e348 str r3, [sp]                  |         *(sp) = r3;
    0x0001e34c ldr r3, [pc, 0x194]           |         r3 = *(0x1e4e4);
    0x0001e350 add r1, pc, r1                |         r1 = pc + r1;
    0x0001e354 add r3, pc, r3                |         r3 = pc + r3;
    0x0001e358 mov r2, r0                    |         r2 = r0;
    0x0001e35c mov r0, r5                    |         r0 = r5;
    0x0001e360 bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x0001e364 ldr r1, [pc, 0x180]           |         r1 = *(0x1e4e8);
    0x0001e368 mov r0, r4                    |         r0 = r4;
    0x0001e36c add r1, pc, r1                |         r1 = pc + r1;
    0x0001e370 bl 0x1a538                    |         fcn_0001a538 (r0);
                                             |     }
    0x0001e374 ldr r3, [r4, 0x3c]            |     r3 = *((r4 + 0x3c));
    0x0001e378 tst r3, 0x3000                |     
                                             |     if ((r3 & 0x3000) != 0) {
    0x0001e37c bne 0x1e490                   |         goto label_4;
                                             |     }
    0x0001e380 mov r0, r4                    |     r0 = r4;
    0x0001e384 bl 0x1b67c                    |     r0 = fcn_0001b67c (r0);
    0x0001e388 subs r5, r0, 0                |     r5 = r0 - 0;
                                             |     if (r5 != r0) {
    0x0001e38c bne 0x1e490                   |         goto label_4;
                                             |     }
    0x0001e390 ldr r0, [r4, 0x10]            |     r0 = *((r4 + 0x10));
    0x0001e394 bl 0x8de0                     |     r0 = fcn_00008de0 ();
    0x0001e398 cmp r0, 0                     |     
    0x0001e39c str r0, [sp, 0xc]             |     ptr = r0;
                                             |     if (r0 != 0) {
    0x0001e3a0 beq 0x1e3c8                   |         
    0x0001e3a4 ldr r1, [pc, 0x144]           |         r1 = *(0x1e4ec);
    0x0001e3a8 add r1, pc, r1                |         r1 = pc + r1;
    0x0001e3ac bl 0x8cb4                     |         r0 = strcmp (r0, r1);
    0x0001e3b0 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0001e3b4 bne 0x1e3c8                   |             goto label_5;
                                             |         }
    0x0001e3b8 mov r1, r5                    |         r1 = r5;
    0x0001e3bc ldr r0, [r4, 0x10]            |         r0 = *((r4 + 0x10));
    0x0001e3c0 bl 0x8144                     |         fcn_00008144 ();
    0x0001e3c4 str r5, [sp, 0xc]             |         ptr = r5;
                                             |     }
                                             | label_5:
    0x0001e3c8 ldr r3, [sp, 0xc]             |     r3 = ptr;
    0x0001e3cc cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x0001e3d0 bne 0x1e414                   |         goto label_6;
                                             |     }
    0x0001e3d4 ldr r3, [r4, 0x3c]            |     r3 = *((r4 + 0x3c));
    0x0001e3d8 tst r3, 0x20                  |     
                                             |     if ((r3 & 0x20) != 0) {
    0x0001e3dc bne 0x1e490                   |         goto label_4;
                                             |     }
    0x0001e3e0 ldr r3, [r4, 8]               |     r3 = *((r4 + 8));
    0x0001e3e4 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x0001e3e8 bne 0x1e414                   |         goto label_6;
                                             |     }
    0x0001e3ec add r1, sp, 0xc               |     r1 += ptr;
    0x0001e3f0 mov r0, r4                    |     r0 = r4;
    0x0001e3f4 bl 0x1e0bc                    |     r0 = fcn_0001e0bc (r0, r1);
    0x0001e3f8 subs r5, r0, 0                |     r5 = r0 - 0;
                                             |     if (r5 != r0) {
    0x0001e3fc bne 0x1e484                   |         goto label_7;
                                             |     }
    0x0001e400 ldr r1, [sp, 0xc]             |     r1 = ptr;
    0x0001e404 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x0001e408 beq 0x1e484                   |         goto label_7;
                                             |     }
    0x0001e40c ldr r0, [r4, 0x10]            |     r0 = *((r4 + 0x10));
    0x0001e410 bl 0xb070                     |     fcn_0000b070 (r0, r1);
                                             |     do {
                                             | label_6:
    0x0001e414 ldr r3, [r7]                  |         r3 = *(r7);
    0x0001e418 tst r3, 0x200                 |         
                                             |         if ((r3 & 0x200) != 0) {
    0x0001e41c beq 0x1e478                   |             
    0x0001e420 ldr r3, [pc, 0xb4]            |             r3 = *(0x1e4d8);
    0x0001e424 ldr r3, [r6, r3]              |             r3 = *((r6 + r3));
    0x0001e428 ldr r6, [r3]                  |             r6 = *(0x1e4d8);
    0x0001e42c bl 0x8204                     |             getpid ();
    0x0001e430 ldr r3, [pc, 0xbc]            |             r3 = *(0x1e4f0);
    0x0001e434 ldr r1, [pc, 0xbc]            |             r1 = *(0x1e4f4);
    0x0001e438 add r3, pc, r3                |             r3 = pc + r3;
    0x0001e43c str r3, [sp]                  |             *(sp) = r3;
    0x0001e440 ldr r3, [pc, 0xb4]            |             r3 = *(0x1e4f8);
    0x0001e444 add r1, pc, r1                |             r1 = pc + r1;
    0x0001e448 add r3, pc, r3                |             r3 = pc + r3;
    0x0001e44c mov r2, r0                    |             r2 = r0;
    0x0001e450 mov r0, r6                    |             r0 = r6;
    0x0001e454 bl 0x8798                     |             fprintf (r0, r1, r2, r3)
    0x0001e458 ldr r0, [r4, 0x10]            |             r0 = *((r4 + 0x10));
    0x0001e45c bl 0x8de0                     |             fcn_00008de0 ();
    0x0001e460 ldr r1, [pc, 0x98]            |             r1 = *(0x1e4fc);
    0x0001e464 mov r3, r5                    |             r3 = r5;
    0x0001e468 add r1, pc, r1                |             r1 = pc + r1;
    0x0001e46c mov r2, r0                    |             r2 = r0;
    0x0001e470 mov r0, r4                    |             r0 = r4;
    0x0001e474 bl 0x1a538                    |             fcn_0001a538 (r0);
                                             |         }
                                             | label_1:
    0x0001e478 mov r0, r5                    |         r0 = r5;
    0x0001e47c add sp, sp, 0x14              |         
    0x0001e480 pop {r4, r5, r6, r7, pc}      |         
                                             | label_7:
    0x0001e484 ldr r0, [sp, 0xc]             |         r0 = ptr;
    0x0001e488 bl 0x91c4                     |         free (r0);
    0x0001e48c b 0x1e414                     |         
                                             |     } while (1);
                                             | label_4:
    0x0001e490 ldr r1, [pc, 0x6c]            |     r1 = *(0x1e500);
    0x0001e494 ldr r0, [r4, 0x10]            |     r0 = *((r4 + 0x10));
    0x0001e498 add r1, pc, r1                |     r1 = pc + r1;
    0x0001e49c bl 0x8144                     |     r0 = fcn_00008144 ();
    0x0001e4a0 mov r5, r0                    |     r5 = r0;
    0x0001e4a4 b 0x1e478                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x1e508 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0001e508 ()                              | void fcn_0001e508 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     r0 = arg1;
    0x0001e508 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x0001e50c ldr r5, [pc, 0x31c]                       |     r5 = *(0x1e82c);
    0x0001e510 subs r4, r0, 0                            |     r4 = r0 - 0;
    0x0001e514 add r5, pc, r5                            |     r5 = pc + r5;
                                                         |     if (r4 == r0) {
    0x0001e518 bne 0x1e540                               |         
    0x0001e51c ldr r3, [pc, 0x310]                       |         
    0x0001e520 ldr r1, [pc, 0x310]                       |         r1 = *(0x1e834);
    0x0001e524 ldr r0, [pc, 0x310]                       |         r0 = *(0x1e838);
    0x0001e528 add r3, pc, r3                            |         r3 = pc + r3;
    0x0001e52c add r3, r3, 0x16c                         |         r3 = 0x1e99c;
    0x0001e530 ldr r2, [pc, 0x308]                       |         r2 = *(0x1e83c);
    0x0001e534 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001e538 add r0, pc, r0                            |         r0 = pc + r0;
    0x0001e53c bl 0x908c                                 |         assert ();
                                                         |     }
    0x0001e540 bl 0x88c4                                 |     r0 = fcn_000088c4 ();
    0x0001e544 subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 == r0) {
    0x0001e548 beq 0x1e5bc                               |         goto label_7;
                                                         |     }
    0x0001e54c ldr r3, [pc, 0x2f0]                       |     
    0x0001e550 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e554 ldr r3, [r3]                              |     r3 = *(0x1e840);
    0x0001e558 tst r3, 0x200                             |     
    0x0001e55c bne 0x1e570                               |     
                                                         |     while (1) {
                                                         | label_0:
    0x0001e560 mov r6, 0                                 |         r6 = 0;
                                                         | label_1:
    0x0001e564 mov r0, r6                                |         r0 = r6;
    0x0001e568 add sp, sp, 0xc                           |         
    0x0001e56c pop {r4, r5, r6, r7, pc}                  |         
    0x0001e570 ldr r3, [pc, 0x2d0]                       |         r3 = *(0x1e844);
    0x0001e574 ldr r3, [r5, r3]                          |         r3 = *((r5 + r3));
    0x0001e578 ldr r5, [r3]                              |         r5 = *(0x1e844);
    0x0001e57c bl 0x8204                                 |         getpid ();
    0x0001e580 ldr r3, [pc, 0x2c4]                       |         r3 = *(0x1e848);
    0x0001e584 ldr r1, [pc, 0x2c4]                       |         r1 = *(0x1e84c);
    0x0001e588 add r3, pc, r3                            |         r3 = pc + r3;
    0x0001e58c str r3, [sp]                              |         *(sp) = r3;
    0x0001e590 ldr r3, [pc, 0x2bc]                       |         r3 = *(0x1e850);
    0x0001e594 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001e598 add r3, pc, r3                            |         r3 = pc + r3;
    0x0001e59c mov r2, r0                                |         r2 = r0;
    0x0001e5a0 mov r0, r5                                |         r0 = r5;
    0x0001e5a4 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x0001e5a8 ldr r1, [pc, 0x2a8]                       |         r1 = *(0x1e854);
    0x0001e5ac mov r0, r4                                |         r0 = r4;
    0x0001e5b0 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001e5b4 bl 0x1a538                                |         fcn_0001a538 (r0);
    0x0001e5b8 b 0x1e560                                 |         
                                                         |     }
                                                         | label_7:
    0x0001e5bc ldr r0, [r4, 0x58]                        |     r0 = *((r4 + 0x58));
    0x0001e5c0 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001e5c4 bne 0x1e628                               |         goto label_8;
                                                         |     }
                                                         | label_2:
    0x0001e5c8 ldr r3, [pc, 0x274]                       |     
    0x0001e5cc ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e5d0 ldr r3, [r3]                              |     r3 = *(0x1e840);
    0x0001e5d4 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) == 0) {
    0x0001e5d8 beq 0x1e560                               |         goto label_0;
                                                         |     }
    0x0001e5dc ldr r3, [pc, 0x264]                       |     r3 = *(0x1e844);
    0x0001e5e0 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e5e4 ldr r5, [r3]                              |     r5 = *(0x1e844);
    0x0001e5e8 bl 0x8204                                 |     getpid ();
    0x0001e5ec ldr r3, [pc, 0x268]                       |     r3 = *(0x1e858);
    0x0001e5f0 ldr r1, [pc, 0x268]                       |     r1 = *(0x1e85c);
    0x0001e5f4 add r3, pc, r3                            |     r3 = pc + r3;
    0x0001e5f8 str r3, [sp]                              |     *(sp) = r3;
    0x0001e5fc ldr r3, [pc, 0x260]                       |     r3 = *(0x1e860);
    0x0001e600 add r1, pc, r1                            |     r1 = pc + r1;
    0x0001e604 add r3, pc, r3                            |     r3 = pc + r3;
    0x0001e608 mov r2, r0                                |     r2 = r0;
    0x0001e60c mov r0, r5                                |     r0 = r5;
    0x0001e610 bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x0001e614 ldr r1, [pc, 0x24c]                       |     r1 = *(0x1e864);
    0x0001e618 mov r0, r4                                |     r0 = r4;
    0x0001e61c add r1, pc, r1                            |     r1 = pc + r1;
    0x0001e620 bl 0x1a538                                |     fcn_0001a538 (r0);
    0x0001e624 b 0x1e564                                 |     goto label_1;
                                                         | label_8:
    0x0001e628 bl 0x8804                                 |     r0 = fcn_00008804 ();
    0x0001e62c cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e630 beq 0x1e5c8                               |         goto label_2;
                                                         |     }
    0x0001e634 mov r0, r4                                |     r0 = r4;
    0x0001e638 bl 0x872c                                 |     r0 = fcn_0000872c ();
    0x0001e63c subs r7, r0, 0                            |     r7 = r0 - 0;
                                                         |     if (r7 == r0) {
    0x0001e640 bne 0x1e64c                               |         
                                                         | label_3:
    0x0001e644 ldr r6, [pc, 0x220]                       |         r6 = *(0x1e868);
    0x0001e648 b 0x1e564                                 |         goto label_1;
                                                         |     }
    0x0001e64c mov r0, r4                                |     r0 = r4;
    0x0001e650 bl 0x8d14                                 |     r0 = fcn_00008d14 ();
    0x0001e654 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e658 beq 0x1e708                               |         goto label_9;
                                                         |     }
    0x0001e65c mov r0, r4                                |     r0 = r4;
    0x0001e660 bl 0x8504                                 |     r0 = fcn_00008504 ();
    0x0001e664 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001e668 bne 0x1e708                               |         goto label_9;
                                                         |     }
    0x0001e66c mov r0, r4                                |     r0 = r4;
    0x0001e670 bl 0x1cc44                                |     r0 = fcn_0001cc44 (r0);
    0x0001e674 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e678 beq 0x1e708                               |         goto label_9;
                                                         |     }
    0x0001e67c ldr r1, [r4, 0x54]                        |     r1 = *((r4 + 0x54));
    0x0001e680 ldr r0, [r4, 0x58]                        |     r0 = *((r4 + 0x58));
    0x0001e684 bl 0x175a4                                |     r0 = fcn_000175a4 (r0, r1);
    0x0001e688 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e68c beq 0x1e774                               |         goto label_10;
                                                         |     }
    0x0001e690 ldr r3, [pc, 0x1ac]                       |     
    0x0001e694 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e698 ldr r3, [r3]                              |     r3 = *(0x1e840);
    0x0001e69c tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) != 0) {
    0x0001e6a0 beq 0x1e6f0                               |         
    0x0001e6a4 ldr r3, [pc, 0x19c]                       |         r3 = *(0x1e844);
    0x0001e6a8 mov r6, 0                                 |         r6 = 0;
    0x0001e6ac ldr r3, [r5, r3]                          |         r3 = *((r5 + r3));
    0x0001e6b0 ldr r5, [r3]                              |         r5 = *(0x1e844);
    0x0001e6b4 bl 0x8204                                 |         getpid ();
    0x0001e6b8 ldr r3, [pc, 0x1b0]                       |         r3 = *(0x1e86c);
    0x0001e6bc ldr r1, [pc, 0x1b0]                       |         r1 = *(0x1e870);
    0x0001e6c0 add r3, pc, r3                            |         r3 = pc + r3;
    0x0001e6c4 str r3, [sp]                              |         *(sp) = r3;
    0x0001e6c8 ldr r3, [pc, 0x1a8]                       |         r3 = *(0x1e874);
    0x0001e6cc add r1, pc, r1                            |         r1 = pc + r1;
    0x0001e6d0 add r3, pc, r3                            |         r3 = pc + r3;
    0x0001e6d4 mov r2, r0                                |         r2 = r0;
    0x0001e6d8 mov r0, r5                                |         r0 = r5;
    0x0001e6dc bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x0001e6e0 ldr r1, [pc, 0x194]                       |         r1 = *(0x1e878);
    0x0001e6e4 mov r0, r4                                |         r0 = r4;
    0x0001e6e8 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001e6ec bl 0x1a538                                |         fcn_0001a538 (r0);
                                                         |     }
                                                         | label_4:
    0x0001e6f0 mov r1, r7                                |     r1 = r7;
    0x0001e6f4 mov r0, r4                                |     r0 = r4;
    0x0001e6f8 bl 0x85e8                                 |     r0 = fcn_000085e8 ();
    0x0001e6fc cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001e700 bne 0x1e564                               |         goto label_1;
                                                         |     }
    0x0001e704 b 0x1e644                                 |     goto label_3;
                                                         | label_9:
    0x0001e708 ldr r3, [r4, 0x70]                        |     r3 = *((r4 + 0x70));
    0x0001e70c cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0001e710 beq 0x1e774                               |         goto label_10;
                                                         |     }
    0x0001e714 ldr r3, [pc, 0x128]                       |     
    0x0001e718 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e71c ldr r3, [r3]                              |     r3 = *(0x1e840);
    0x0001e720 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) == 0) {
    0x0001e724 beq 0x1e6f0                               |         goto label_4;
                                                         |     }
    0x0001e728 ldr r3, [pc, 0x118]                       |     r3 = *(0x1e844);
    0x0001e72c ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e730 ldr r5, [r3]                              |     r5 = *(0x1e844);
    0x0001e734 bl 0x8204                                 |     getpid ();
    0x0001e738 ldr r3, [pc, 0x140]                       |     r3 = *(0x1e87c);
    0x0001e73c ldr r1, [pc, 0x140]                       |     r1 = *(0x1e880);
    0x0001e740 add r3, pc, r3                            |     r3 = pc + r3;
    0x0001e744 str r3, [sp]                              |     *(sp) = r3;
    0x0001e748 ldr r3, [pc, 0x138]                       |     r3 = *(0x1e884);
    0x0001e74c add r1, pc, r1                            |     r1 = pc + r1;
    0x0001e750 add r3, pc, r3                            |     r3 = pc + r3;
    0x0001e754 mov r2, r0                                |     r2 = r0;
    0x0001e758 mov r0, r5                                |     r0 = r5;
    0x0001e75c bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x0001e760 ldr r1, [pc, 0x124]                       |     r1 = *(0x1e888);
    0x0001e764 add r1, pc, r1                            |     r1 = pc + r1;
                                                         | label_5:
    0x0001e768 mov r0, r4                                |     r0 = r4;
    0x0001e76c bl 0x1a538                                |     fcn_0001a538 (r0);
    0x0001e770 b 0x1e6f0                                 |     goto label_4;
                                                         | label_10:
    0x0001e774 ldr r3, [r4, 0x8c]                        |     r3 = *((r4 + 0x8c));
    0x0001e778 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0001e77c beq 0x1e7f8                               |         goto label_11;
                                                         |     }
    0x0001e780 mov r0, r4                                |     r0 = r4;
    0x0001e784 bl 0x8d14                                 |     r0 = fcn_00008d14 ();
    0x0001e788 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001e78c bne 0x1e7e8                               |         goto label_12;
                                                         |     }
                                                         | label_6:
    0x0001e790 ldr r3, [pc, 0xac]                        |     
    0x0001e794 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e798 ldr r3, [r3]                              |     r3 = *(0x1e840);
    0x0001e79c tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) == 0) {
    0x0001e7a0 beq 0x1e6f0                               |         goto label_4;
                                                         |     }
    0x0001e7a4 ldr r3, [pc, 0x9c]                        |     r3 = *(0x1e844);
    0x0001e7a8 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x0001e7ac ldr r5, [r3]                              |     r5 = *(0x1e844);
    0x0001e7b0 bl 0x8204                                 |     getpid ();
    0x0001e7b4 ldr r3, [pc, 0xd4]                        |     r3 = *(0x1e88c);
    0x0001e7b8 ldr r1, [pc, 0xd4]                        |     r1 = *(0x1e890);
    0x0001e7bc add r3, pc, r3                            |     r3 = pc + r3;
    0x0001e7c0 str r3, [sp]                              |     *(sp) = r3;
    0x0001e7c4 ldr r3, [pc, 0xcc]                        |     r3 = *(0x1e894);
    0x0001e7c8 add r1, pc, r1                            |     r1 = pc + r1;
    0x0001e7cc add r3, pc, r3                            |     r3 = pc + r3;
    0x0001e7d0 mov r2, r0                                |     r2 = r0;
    0x0001e7d4 mov r0, r5                                |     r0 = r5;
    0x0001e7d8 bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x0001e7dc ldr r1, [pc, 0xb8]                        |     r1 = *(0x1e898);
    0x0001e7e0 add r1, pc, r1                            |     r1 = pc + r1;
    0x0001e7e4 b 0x1e768                                 |     goto label_5;
                                                         | label_12:
    0x0001e7e8 mov r0, r4                                |     r0 = r4;
    0x0001e7ec bl 0x8504                                 |     r0 = fcn_00008504 ();
    0x0001e7f0 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001e7f4 bne 0x1e790                               |         goto label_6;
                                                         |     }
                                                         | label_11:
    0x0001e7f8 ldr r0, [r4, 0x58]                        |     r0 = *((r4 + 0x58));
    0x0001e7fc bl 0x8210                                 |     fcn_00008210 ();
    0x0001e800 ldr r1, [r4, 0x3c]                        |     r1 = *((r4 + 0x3c));
    0x0001e804 eor r0, r0, r1                            |     r0 ^= r1;
    0x0001e808 tst r0, 1                                 |     
                                                         |     if ((r0 & 1) != 0) {
    0x0001e80c beq 0x1e81c                               |         
    0x0001e810 and r1, r1, 1                             |         r1 &= 1;
    0x0001e814 ldr r0, [r4, 0x58]                        |         r0 = *((r4 + 0x58));
    0x0001e818 bl 0x8e7c                                 |         fcn_00008e7c ();
                                                         |     }
    0x0001e81c ldr r1, [r4, 0x54]                        |     r1 = *((r4 + 0x54));
    0x0001e820 ldr r0, [r4, 0x58]                        |     r0 = *((r4 + 0x58));
    0x0001e824 bl 0x8534                                 |     r0 = fcn_00008534 ();
    0x0001e828 mov r6, r0                                |     r6 = r0;
    0x0001e82c b 0x1e6f0                                 |     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/lib/libmount.so.1.1.0 @ 0x1f080 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0001f080 ()                      | void fcn_0001f080 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0001f080 push {r1, r2, r3}                 |     
    0x0001f084 ldr r3, [pc, 0xa4]                |     r3 = *(0x1f12c);
    0x0001f088 push {r0, r1, r2, r4, lr}         |     
    0x0001f08c ldr r1, [pc, 0xa0]                |     r1 = *(0x1f130);
    0x0001f090 add r3, pc, r3                    |     r3 = pc + r3;
    0x0001f094 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0001f098 ldr r4, [r3, r1]                  |     r4 = *(0x1f12c);
                                                 |     if (r2 != r0) {
    0x0001f09c beq 0x1f0c4                       |         
    0x0001f0a0 ldr r1, [pc, 0x90]                |         r1 = *(0x1f134);
    0x0001f0a4 ldr r3, [r3, r1]                  |         r3 = *((r3 + r1));
    0x0001f0a8 ldr r3, [r3]                      |         r3 = *(r3);
    0x0001f0ac tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0001f0b0 bne 0x1f0c4                       |             goto label_1;
                                                 |         }
    0x0001f0b4 ldr r1, [pc, 0x80]                |         r1 = *(0x1f138);
    0x0001f0b8 ldr r0, [r4]                      |         r0 = *(r4);
    0x0001f0bc add r1, pc, r1                    |         r1 = pc + r1;
    0x0001f0c0 bl 0x8798                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0001f0c4 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0001f0c8 ldr r1, [sp, 0x14]                |     r1 = format;
    0x0001f0cc ldr r0, [r4]                      |     r0 = *(r4);
    0x0001f0d0 str r2, [sp, 4]                   |     var_4h = r2;
    0x0001f0d4 bl 0x91a0                         |     vfprintf (r0, r1, r2)
    0x0001f0d8 ldr r1, [r4]                      |     r1 = *(r4);
    0x0001f0dc ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0001f0e0 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0001f0e4 beq 0x1f124                       |         goto label_2;
                                                 |     }
    0x0001f0e8 ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0001f0ec ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0001f0f0 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0001f0f4 bhs 0x1f118                       |         goto label_3;
                                                 |     }
    0x0001f0f8 add r2, r3, 1                     |     r2 = r3 + 1;
    0x0001f0fc str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0001f100 mov r2, 0xa                       |     r2 = 0xa;
    0x0001f104 strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0001f108 add sp, sp, 0xc                   |         
    0x0001f10c pop {r4, lr}                      |         
    0x0001f110 add sp, sp, 0xc                   |         
    0x0001f114 bx lr                             |         return;
                                                 | label_3:
    0x0001f118 mov r0, 0xa                       |         r0 = 0xa;
    0x0001f11c bl 0x91dc                         |         fputc_unlocked ();
    0x0001f120 b 0x1f108                         |         
                                                 |     } while (1);
                                                 | label_2:
    0x0001f124 mov r0, 0xa                       |     r0 = 0xa;
    0x0001f128 bl 0x8ea0                         |     fputc (r0, r1);
    0x0001f12c b 0x1f108                         |     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/lib/libmount.so.1.1.0 @ 0x1f140 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001f140 ()                          | void fcn_0001f140 (uint32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     int32_t var_18h;
                                                     |     int32_t var_38h;
                                                     |     int32_t var_38h_2;
                                                     |     int32_t var_70h;
                                                     |     r0 = arg1;
    0x0001f140 ldr r3, [r0, 0x6c]                    |     r3 = *((r0 + 0x6c));
    0x0001f144 push {r4, r5, r6, r7, r8, lr}         |     
    0x0001f148 ldr r6, [pc, 0x214]                   |     r6 = *(0x1f360);
    0x0001f14c tst r3, 0x400000                      |     
    0x0001f150 add r6, pc, r6                        |     r6 = pc + r6;
    0x0001f154 sub sp, sp, 0x70                      |     
                                                     |     if ((r3 & 0x400000) == 0) {
    0x0001f158 bne 0x1f17c                           |         
    0x0001f15c ldr r3, [pc, 0x204]                   |         r3 = *(0x1f364);
    0x0001f160 ldr r1, [pc, 0x204]                   |         r1 = *(0x1f368);
    0x0001f164 ldr r0, [pc, 0x204]                   |         r0 = *(0x1f36c);
    0x0001f168 add r3, pc, r3                        |         r3 = pc + r3;
    0x0001f16c mov r2, 0x21                          |         r2 = 0x21;
    0x0001f170 add r1, pc, r1                        |         r1 = pc + r1;
    0x0001f174 add r0, pc, r0                        |         r0 = pc + r0;
    0x0001f178 bl 0x908c                             |         r0 = assert ();
                                                     |     }
    0x0001f17c mov r4, r0                            |     r4 = r0;
    0x0001f180 ldr r0, [r0, 0x10]                    |     r0 = *((r0 + 0x10));
    0x0001f184 cmp r0, 0                             |     
    0x0001f188 bne 0x1f19c                           |     
                                                     |     while (r8 == r0) {
                                                     | label_1:
    0x0001f18c mov r5, 0                             |         r5 = 0;
                                                     | label_0:
    0x0001f190 mov r0, r5                            |         r0 = r5;
    0x0001f194 add sp, sp, 0x70                      |         
    0x0001f198 pop {r4, r5, r6, r7, r8, pc}          |         
    0x0001f19c bl 0x80cc                             |         r0 = fcn_000080cc ();
    0x0001f1a0 subs r8, r0, 0                        |         r8 = r0 - 0;
    0x0001f1a4 beq 0x1f18c                           |         
                                                     |     }
    0x0001f1a8 ldr r3, [r4, 0x44]                    |     r3 = *((r4 + 0x44));
    0x0001f1ac tst r3, 0xc200                        |     
                                                     |     if ((r3 & 0xc200) != 0) {
    0x0001f1b0 beq 0x1f218                           |         
    0x0001f1b4 ldr r3, [pc, 0x1b8]                   |         
    0x0001f1b8 ldr r3, [r6, r3]                      |         r3 = *((r6 + r3));
    0x0001f1bc ldr r3, [r3]                          |         r3 = *(0x1f370);
    0x0001f1c0 tst r3, 0x2000                        |         
                                                     |         if ((r3 & 0x2000) != 0) {
    0x0001f1c4 beq 0x1f210                           |             
    0x0001f1c8 ldr r3, [pc, 0x1a8]                   |             r3 = *(0x1f374);
    0x0001f1cc ldr r3, [r6, r3]                      |             r3 = *((r6 + r3));
    0x0001f1d0 ldr r5, [r3]                          |             r5 = *(0x1f374);
    0x0001f1d4 bl 0x8204                             |             getpid ();
    0x0001f1d8 ldr r3, [pc, 0x19c]                   |             r3 = *(0x1f378);
    0x0001f1dc ldr r1, [pc, 0x19c]                   |             r1 = *(0x1f37c);
    0x0001f1e0 add r3, pc, r3                        |             r3 = pc + r3;
    0x0001f1e4 str r3, [sp]                          |             *(sp) = r3;
    0x0001f1e8 ldr r3, [pc, 0x194]                   |             r3 = *(0x1f380);
    0x0001f1ec add r1, pc, r1                        |             r1 = pc + r1;
    0x0001f1f0 add r3, pc, r3                        |             r3 = pc + r3;
    0x0001f1f4 mov r2, r0                            |             r2 = r0;
    0x0001f1f8 mov r0, r5                            |             r0 = r5;
    0x0001f1fc bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x0001f200 ldr r1, [pc, 0x180]                   |             r1 = *(0x1f384);
    0x0001f204 mov r0, r4                            |             r0 = r4;
    0x0001f208 add r1, pc, r1                        |             r1 = pc + r1;
    0x0001f20c bl 0x1f080                            |             fcn_0001f080 (r0);
                                                     |         }
                                                     | label_2:
    0x0001f210 mov r5, 1                             |         r5 = 1;
    0x0001f214 b 0x1f190                             |         goto label_0;
                                                     |     }
    0x0001f218 ldr r3, [r4, 0x3c]                    |     r3 = *((r4 + 0x3c));
    0x0001f21c tst r3, 0x3000                        |     
                                                     |     if ((r3 & 0x3000) != 0) {
    0x0001f220 bne 0x1f18c                           |         goto label_1;
                                                     |     }
    0x0001f224 mov r0, r4                            |     r0 = r4;
    0x0001f228 bl 0x1b67c                            |     r0 = fcn_0001b67c (r0);
    0x0001f22c cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001f230 bne 0x1f18c                           |         goto label_1;
                                                     |     }
    0x0001f234 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0001f238 bl 0x8de0                             |     r0 = fcn_00008de0 ();
    0x0001f23c mov r7, r0                            |     r7 = r0;
    0x0001f240 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0001f244 bl 0x8894                             |     r0 = fcn_00008894 ();
    0x0001f248 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001f24c bne 0x1f18c                           |         goto label_1;
                                                     |     }
    0x0001f250 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0001f254 bl 0x8dc8                             |     r0 = fcn_00008dc8 ();
    0x0001f258 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001f25c bne 0x1f18c                           |         goto label_1;
                                                     |     }
    0x0001f260 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0001f264 bl 0x845c                             |     r0 = fcn_0000845c ();
    0x0001f268 subs r5, r0, 0                        |     r5 = r0 - 0;
                                                     |     if (r5 != r0) {
    0x0001f26c bne 0x1f18c                           |         goto label_1;
                                                     |     }
    0x0001f270 cmp r7, 0                             |     
                                                     |     if (r7 != 0) {
    0x0001f274 bne 0x1f338                           |         goto label_4;
                                                     |     }
                                                     | label_3:
    0x0001f278 add r1, sp, 8                         |     r1 += var_8h;
    0x0001f27c mov r0, r8                            |     r0 = r8;
    0x0001f280 bl 0x8060                             |     r0 = stat64 ();
    0x0001f284 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001f288 bne 0x1f190                           |         goto label_0;
                                                     |     }
    0x0001f28c ldr r3, [sp, 0x18]                    |     r3 = var_18h;
    0x0001f290 and r3, r3, 0xf000                    |     r3 &= 0xf000;
    0x0001f294 cmp r3, 0x8000                        |     
                                                     |     if (r3 != fcn.00008000) {
    0x0001f298 bne 0x1f190                           |         goto label_0;
                                                     |     }
    0x0001f29c ldrd r2, r3, [sp, 0x38]               |     __asm ("ldrd r2, r3, [var_38h]");
    0x0001f2a0 mov r0, 0x400                         |     r0 = 0x400;
    0x0001f2a4 mov r1, 0                             |     r1 = 0;
    0x0001f2a8 cmp r0, r2                            |     
    0x0001f2ac sbcs r3, r1, r3                       |     __asm ("sbcs r3, r1, r3");
                                                     |     if (r0 >= r2) {
    0x0001f2b0 bge 0x1f190                           |         goto label_0;
                                                     |     }
    0x0001f2b4 ldr r3, [pc, 0xb8]                    |     
    0x0001f2b8 ldr r3, [r6, r3]                      |     r3 = *((r6 + r3));
    0x0001f2bc ldr r3, [r3]                          |     r3 = *(0x1f370);
    0x0001f2c0 tst r3, 0x2000                        |     
                                                     |     if ((r3 & 0x2000) != 0) {
    0x0001f2c4 beq 0x1f310                           |         
    0x0001f2c8 ldr r3, [pc, 0xa8]                    |         r3 = *(0x1f374);
    0x0001f2cc ldr r3, [r6, r3]                      |         r3 = *((r6 + r3));
    0x0001f2d0 ldr r5, [r3]                          |         r5 = *(0x1f374);
    0x0001f2d4 bl 0x8204                             |         getpid ();
    0x0001f2d8 ldr r3, [pc, 0xac]                    |         r3 = *(0x1f388);
    0x0001f2dc ldr r1, [pc, 0xac]                    |         r1 = *(0x1f38c);
    0x0001f2e0 add r3, pc, r3                        |         r3 = pc + r3;
    0x0001f2e4 str r3, [sp]                          |         *(sp) = r3;
    0x0001f2e8 ldr r3, [pc, 0xa4]                    |         r3 = *(0x1f390);
    0x0001f2ec add r1, pc, r1                        |         r1 = pc + r1;
    0x0001f2f0 add r3, pc, r3                        |         r3 = pc + r3;
    0x0001f2f4 mov r2, r0                            |         r2 = r0;
    0x0001f2f8 mov r0, r5                            |         r0 = r5;
    0x0001f2fc bl 0x8798                             |         fprintf (r0, r1, r2, r3)
    0x0001f300 ldr r1, [pc, 0x90]                    |         r1 = *(0x1f394);
    0x0001f304 mov r0, r4                            |         r0 = r4;
    0x0001f308 add r1, pc, r1                        |         r1 = pc + r1;
    0x0001f30c bl 0x1f080                            |         fcn_0001f080 (r0);
                                                     |     }
    0x0001f310 ldr r3, [r4, 0x44]                    |     r3 = *((r4 + 0x44));
    0x0001f314 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0001f318 ldr r1, [pc, 0x7c]                    |     r1 = *(0x1f398);
    0x0001f31c orr r3, r3, 0x200                     |     r3 |= 0x200;
    0x0001f320 str r3, [r4, 0x44]                    |     *((r4 + 0x44)) = r3;
    0x0001f324 mov r2, 0                             |     r2 = 0;
    0x0001f328 add r1, pc, r1                        |     r1 = pc + r1;
    0x0001f32c add r0, r0, 0x4c                      |     r0 += 0x4c;
    0x0001f330 bl 0x7fdc                             |     fcn_00007fdc ();
    0x0001f334 b 0x1f210                             |     goto label_2;
                                                     | label_4:
    0x0001f338 ldr r1, [pc, 0x60]                    |     r1 = *(0x1f39c);
    0x0001f33c mov r0, r7                            |     r0 = r7;
    0x0001f340 add r1, pc, r1                        |     r1 = pc + r1;
    0x0001f344 bl 0x8cb4                             |     r0 = strcmp (r0, r1);
    0x0001f348 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0001f34c beq 0x1f278                           |         goto label_3;
                                                     |     }
    0x0001f350 mov r0, r7                            |     r0 = r7;
    0x0001f354 bl 0x8ec4                             |     r0 = blkid_known_fstype ();
    0x0001f358 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001f35c bne 0x1f278                           |         goto label_3;
                                                     |     }
    0x0001f360 b 0x1f18c                             |     goto label_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/lib/libmount.so.1.1.0 @ 0x1f3a4 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.0001f3a4 ()                                  | void fcn_0001f3a4 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     char * format;
                                                             |     int32_t var_18h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     char * s2;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t n;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     void * ptr;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_20ch;
                                                             |     r0 = arg1;
    0x0001f3a4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0001f3a8 ldr r7, [pc, 0xdd0]                           |     r7 = *(0x2017c);
    0x0001f3ac sub sp, sp, 0x20c                             |     
    0x0001f3b0 mov r3, 0                                     |     r3 = 0;
    0x0001f3b4 add r5, sp, 0x58                              |     r5 += var_58h;
    0x0001f3b8 mov r2, 0                                     |     r2 = 0;
    0x0001f3bc str r3, [sp, 0x38]                            |     var_38h = r3;
    0x0001f3c0 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001f3c4 mov r3, 0                                     |     r3 = 0;
    0x0001f3c8 add r7, pc, r7                                |     r7 = pc + r7;
    0x0001f3cc strd r2, r3, [r5, -8]                         |     __asm ("strd r2, r3, [var_50h]");
    0x0001f3d0 strd r2, r3, [r5]                             |     __asm ("strd r2, r3, [r5]");
                                                             |     if (r4 != r0) {
    0x0001f3d4 bne 0x1f3fc                                   |         goto label_21;
                                                             |     }
    0x0001f3d8 ldr r3, [pc, 0xda4]                           |     
    0x0001f3dc ldr r1, [pc, 0xda4]                           |     r1 = *(0x20184);
    0x0001f3e0 ldr r0, [pc, 0xda4]                           |     r0 = *(0x20188);
    0x0001f3e4 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001f3e8 add r3, r3, 0x17                              |     r3 = 0x20197;
    0x0001f3ec mov r2, 0xa1                                  |     r2 = 0xa1;
    0x0001f3f0 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001f3f4 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_0:
    0x0001f3f8 bl 0x908c                                     |         assert ();
                                                             | label_21:
    0x0001f3fc ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x0001f400 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001f404 bne 0x1f42c                                   |             goto label_22;
                                                             |         }
    0x0001f408 ldr r3, [pc, 0xd80]                           |         
    0x0001f40c ldr r1, [pc, 0xd80]                           |         r1 = *(0x20190);
    0x0001f410 ldr r0, [pc, 0xd80]                           |         r0 = *(0x20194);
    0x0001f414 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f418 add r3, r3, 0x17                              |         r3 = 0x201a3;
    0x0001f41c mov r2, 0xa2                                  |         r2 = 0xa2;
    0x0001f420 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f424 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001f428 b 0x1f3f8                                     |         
                                                             |     } while (1);
                                                             | label_22:
    0x0001f42c ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x0001f430 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x0001f434 bne 0x1f45c                                   |         
    0x0001f438 ldr r3, [pc, 0xd5c]                           |         
    0x0001f43c ldr r1, [pc, 0xd5c]                           |         r1 = *(0x2019c);
    0x0001f440 ldr r0, [pc, 0xd5c]                           |         r0 = *(0x201a0);
    0x0001f444 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f448 add r3, r3, 0x17                              |         r3 = 0x201af;
    0x0001f44c mov r2, 0xa3                                  |         r2 = 0xa3;
    0x0001f450 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f454 add r0, pc, r0                                |         r0 = pc + r0;
    0x0001f458 b 0x1f3f8                                     |         goto label_0;
                                                             |     }
    0x0001f45c bl 0x80cc                                     |     r0 = fcn_000080cc ();
    0x0001f460 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl == r0) {
    0x0001f464 beq 0x200e8                                   |         goto label_23;
                                                             |     }
    0x0001f468 ldr r3, [pc, 0xd38]                           |     r3 = *(0x201a4);
    0x0001f46c ldr r8, [r7, r3]                              |     r8 = *((r7 + r3));
    0x0001f470 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001f474 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) != 0) {
    0x0001f478 beq 0x1f4c8                                   |         
    0x0001f47c ldr r3, [pc, 0xd28]                           |         r3 = *(0x201a8);
    0x0001f480 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001f484 ldr r6, [r3]                                  |         r6 = *(0x201a8);
    0x0001f488 bl 0x8204                                     |         getpid ();
    0x0001f48c ldr r3, [pc, 0xd1c]                           |         r3 = *(0x201ac);
    0x0001f490 ldr r1, [pc, 0xd1c]                           |         r1 = *(0x201b0);
    0x0001f494 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f498 str r3, [sp]                                  |         *(sp) = r3;
    0x0001f49c ldr r3, [pc, 0xd14]                           |         r3 = *(0x201b4);
    0x0001f4a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f4a4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f4a8 mov r2, r0                                    |         r2 = r0;
    0x0001f4ac mov r0, r6                                    |         r0 = r6;
    0x0001f4b0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001f4b4 ldr r1, [pc, 0xd00]                           |         r1 = *(0x201b8);
    0x0001f4b8 mov r2, sl                                    |         r2 = sl;
    0x0001f4bc add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f4c0 mov r0, r4                                    |         r0 = r4;
    0x0001f4c4 bl 0x1f080                                    |         fcn_0001f080 (r0);
                                                             |     }
    0x0001f4c8 ldr r0, [r4, 0x3c]                            |     r0 = *((r4 + 0x3c));
    0x0001f4cc ands r0, r0, 1                                |     r0 &= 1;
                                                             |     if (r0 != r0) {
    0x0001f4d0 streq r0, [sp, 0x14]                          |         var_14h = r0;
                                                             |     }
                                                             |     if (r0 != r0) {
    0x0001f4d4 beq 0x1f534                                   |         
    0x0001f4d8 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0001f4dc tst r3, 0x2000                                |         
                                                             |         if ((r3 & 0x2000) != 0) {
    0x0001f4e0 beq 0x1f52c                                   |             
    0x0001f4e4 ldr r3, [pc, 0xcc0]                           |             r3 = *(0x201a8);
    0x0001f4e8 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001f4ec ldr r6, [r3]                                  |             r6 = *(0x201a8);
    0x0001f4f0 bl 0x8204                                     |             getpid ();
    0x0001f4f4 ldr r3, [pc, 0xcc4]                           |             r3 = *(0x201bc);
    0x0001f4f8 ldr r1, [pc, 0xcc4]                           |             r1 = *(0x201c0);
    0x0001f4fc add r3, pc, r3                                |             r3 = pc + r3;
    0x0001f500 str r3, [sp]                                  |             *(sp) = r3;
    0x0001f504 ldr r3, [pc, 0xcbc]                           |             r3 = *(0x201c4);
    0x0001f508 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001f50c add r3, pc, r3                                |             r3 = pc + r3;
    0x0001f510 mov r2, r0                                    |             r2 = r0;
    0x0001f514 mov r0, r6                                    |             r0 = r6;
    0x0001f518 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001f51c ldr r1, [pc, 0xca8]                           |             r1 = *(0x201c8);
    0x0001f520 mov r0, r4                                    |             r0 = r4;
    0x0001f524 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001f528 bl 0x1f080                                    |             fcn_0001f080 (r0);
                                                             |         }
    0x0001f52c mov r3, 1                                     |         r3 = 1;
    0x0001f530 str r3, [sp, 0x14]                            |         var_14h = r3;
                                                             |     }
    0x0001f534 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0001f538 bl 0x87bc                                     |     fcn_000087bc ();
    0x0001f53c ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x0001f540 tst r3, 0x200                                 |     
    0x0001f544 mov r6, r0                                    |     r6 = r0;
    0x0001f548 bne 0x1f5ec                                   |     
                                                             |     while (r0 != 0) {
                                                             | label_1:
    0x0001f54c mov fp, 0                                     |         
                                                             | label_2:
    0x0001f550 ldr r3, [r4, 0x44]                            |         r3 = *((r4 + 0x44));
    0x0001f554 tst r3, 0x4000                                |         
                                                             |         if ((r3 & 0x4000) == 0) {
    0x0001f558 beq 0x200f0                                   |             goto label_24;
                                                             |         }
    0x0001f55c ldr r1, [pc, 0xc6c]                           |         r1 = *(0x201cc);
    0x0001f560 add r3, sp, 0x3c                              |         r3 += n;
    0x0001f564 add r2, sp, 0x38                              |         r2 += var_38h;
    0x0001f568 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f56c mov r0, r6                                    |         r0 = r6;
    0x0001f570 bl 0x84a4                                     |         r0 = fcn_000084a4 ();
    0x0001f574 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001f578 bne 0x200f0                                   |             goto label_24;
                                                             |         }
    0x0001f57c add r2, sp, 0x50                              |         r2 += var_50h;
    0x0001f580 ldrd r0, r1, [sp, 0x38]                       |         __asm ("ldrd r0, r1, [var_38h]");
    0x0001f584 bl 0x18084                                    |         r0 = fcn_00018084 (r0, r1);
    0x0001f588 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001f58c beq 0x200f0                                   |             goto label_24;
                                                             |         }
    0x0001f590 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0001f594 tst r3, 0x2000                                |         
                                                             |         if ((r3 & 0x2000) != 0) {
    0x0001f598 beq 0x1f5e4                                   |             
    0x0001f59c ldr r3, [pc, 0xc08]                           |             r3 = *(0x201a8);
    0x0001f5a0 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001f5a4 ldr r5, [r3]                                  |             r5 = *(0x201a8);
    0x0001f5a8 bl 0x8204                                     |             getpid ();
    0x0001f5ac ldr r3, [pc, 0xc20]                           |             r3 = *(0x201d0);
    0x0001f5b0 ldr r1, [pc, 0xc20]                           |             r1 = *(0x201d4);
    0x0001f5b4 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001f5b8 str r3, [sp]                                  |             *(sp) = r3;
    0x0001f5bc ldr r3, [pc, 0xc18]                           |             r3 = *(0x201d8);
    0x0001f5c0 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001f5c4 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001f5c8 mov r2, r0                                    |             r2 = r0;
    0x0001f5cc mov r0, r5                                    |             r0 = r5;
    0x0001f5d0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001f5d4 ldr r1, [pc, 0xc04]                           |             r1 = *(0x201dc);
    0x0001f5d8 add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_4:
    0x0001f5dc mov r0, r4                                    |             r0 = r4;
    0x0001f5e0 bl 0x1f080                                    |             fcn_0001f080 (r0);
                                                             |         }
                                                             | label_3:
    0x0001f5e4 ldr r5, [pc, 0xbf8]                           |         r5 = *(0x201e0);
    0x0001f5e8 b 0x1fc90                                     |         goto label_25;
    0x0001f5ec ldr r1, [pc, 0xbf4]                           |         r1 = *(0x201e4);
    0x0001f5f0 add r3, sp, 0x3c                              |         r3 += n;
    0x0001f5f4 add r2, sp, 0x38                              |         r2 += var_38h;
    0x0001f5f8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f5fc bl 0x84a4                                     |         r0 = fcn_000084a4 ();
    0x0001f600 cmp r0, 0                                     |         
    0x0001f604 bne 0x1f54c                                   |         
                                                             |     }
    0x0001f608 ldr r0, [sp, 0x38]                            |     r0 = var_38h;
    0x0001f60c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001f610 beq 0x1f54c                                   |         goto label_1;
                                                             |     }
    0x0001f614 ldr r1, [sp, 0x3c]                            |     r1 = n;
    0x0001f618 bl 0x8048                                     |     r0 = strndup (r0, r1);
    0x0001f61c subs fp, r0, 0                                |     
                                                             |     if (fp != r0) {
    0x0001f620 bne 0x1f550                                   |         goto label_2;
                                                             |     }
    0x0001f624 mvn r5, 0xb                                   |     r5 = ~0xb;
    0x0001f628 b 0x1fc90                                     |     goto label_25;
                                                             | label_20:
    0x0001f62c ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x0001f630 tst r3, 0x10000                               |     
                                                             |     if ((r3 & 0x10000) == 0) {
    0x0001f634 beq 0x1f6a8                                   |         goto label_26;
                                                             |     }
    0x0001f638 ldr r1, [pc, 0xbac]                           |     r1 = *(0x201e8);
    0x0001f63c add r3, sp, 0x3c                              |     r3 += n;
    0x0001f640 add r2, sp, 0x38                              |     r2 += var_38h;
    0x0001f644 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001f648 mov r0, r6                                    |     r0 = r6;
    0x0001f64c bl 0x84a4                                     |     r0 = fcn_000084a4 ();
    0x0001f650 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001f654 bne 0x1f6a8                                   |         goto label_26;
                                                             |     }
    0x0001f658 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001f65c tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x0001f660 beq 0x1f5e4                                   |         goto label_3;
                                                             |     }
    0x0001f664 ldr r3, [pc, 0xb40]                           |     r3 = *(0x201a8);
    0x0001f668 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0001f66c ldr r5, [r3]                                  |     r5 = *(0x201a8);
    0x0001f670 bl 0x8204                                     |     getpid ();
    0x0001f674 ldr r3, [pc, 0xb74]                           |     r3 = *(0x201ec);
    0x0001f678 ldr r1, [pc, 0xb74]                           |     r1 = *(0x201f0);
    0x0001f67c add r3, pc, r3                                |     r3 = pc + r3;
    0x0001f680 str r3, [sp]                                  |     *(sp) = r3;
    0x0001f684 ldr r3, [pc, 0xb6c]                           |     r3 = *(0x201f4);
    0x0001f688 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001f68c add r3, pc, r3                                |     r3 = pc + r3;
    0x0001f690 mov r2, r0                                    |     r2 = r0;
    0x0001f694 mov r0, r5                                    |     r0 = r5;
    0x0001f698 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001f69c ldr r1, [pc, 0xb58]                           |     r1 = *(0x201f8);
    0x0001f6a0 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001f6a4 b 0x1f5dc                                     |     goto label_4;
                                                             | label_26:
    0x0001f6a8 mov r0, r4                                    |     r0 = r4;
    0x0001f6ac bl 0x84b0                                     |     fcn_000084b0 ();
    0x0001f6b0 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x0001f6b4 cmp r3, 0                                     |     
    0x0001f6b8 str r0, [sp, 0x20]                            |     var_20h = r0;
                                                             |     if (r3 == 0) {
    0x0001f6bc bne 0x1f6e4                                   |         
    0x0001f6c0 ldr r3, [pc, 0xb38]                           |         
    0x0001f6c4 ldr r1, [pc, 0xb38]                           |         r1 = *(0x20200);
    0x0001f6c8 ldr r0, [pc, 0xb38]                           |         r0 = *(0x20204);
    0x0001f6cc add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f6d0 add r3, r3, 0x31                              |         r3 = 0x2022d;
    0x0001f6d4 mov r2, 0x64                                  |         r2 = 0x64;
    0x0001f6d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f6dc add r0, pc, r0                                |         r0 = pc + r0;
    0x0001f6e0 b 0x1f3f8                                     |         goto label_0;
                                                             |     }
    0x0001f6e4 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x0001f6e8 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x0001f6ec bne 0x1f714                                   |         
    0x0001f6f0 ldr r3, [pc, 0xb14]                           |         
    0x0001f6f4 ldr r1, [pc, 0xb14]                           |         r1 = *(0x2020c);
    0x0001f6f8 ldr r0, [pc, 0xb14]                           |         r0 = *(0x20210);
    0x0001f6fc add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f700 add r3, r3, 0x31                              |         r3 = 0x20239;
    0x0001f704 mov r2, 0x65                                  |         r2 = 0x65;
    0x0001f708 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f70c add r0, pc, r0                                |         r0 = pc + r0;
    0x0001f710 b 0x1f3f8                                     |         goto label_0;
                                                             |     }
    0x0001f714 ldrd r2, r3, [r5, -8]                         |     __asm ("ldrd r2, r3, [var_50h]");
    0x0001f718 add r1, sp, 0x40                              |     r1 += var_40h;
    0x0001f71c mov r0, r4                                    |     r0 = r4;
    0x0001f720 strd r2, r3, [sp, 0x18]                       |     __asm ("strd r2, r3, [format]");
    0x0001f724 bl 0x84d4                                     |     r0 = fcn_000084d4 ();
    0x0001f728 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001f72c bne 0x1f834                                   |         goto label_27;
                                                             |     }
    0x0001f730 mov r0, r4                                    |     r0 = r4;
    0x0001f734 bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x0001f738 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x0001f73c str r3, [sp, 0x28]                            |     var_28h = r3;
    0x0001f740 bne 0x1f74c                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_5:
    0x0001f744 mvn r5, 0xf                                   |         r5 = ~0xf;
    0x0001f748 b 0x1fc90                                     |         goto label_25;
    0x0001f74c ldr r3, [r8]                                  |         r3 = *(r8);
    0x0001f750 tst r3, 0x2000                                |         
                                                             |         if ((r3 & 0x2000) != 0) {
    0x0001f754 beq 0x1f7a8                                   |             
    0x0001f758 ldr r3, [pc, 0xa4c]                           |             r3 = *(0x201a8);
    0x0001f75c ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001f760 ldr r5, [r3]                                  |             r5 = *(0x201a8);
    0x0001f764 bl 0x8204                                     |             getpid ();
    0x0001f768 ldr r3, [pc, 0xaa8]                           |             r3 = *(0x20214);
    0x0001f76c ldr r1, [pc, 0xaa8]                           |             r1 = *(0x20218);
    0x0001f770 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001f774 str r3, [sp]                                  |             *(sp) = r3;
    0x0001f778 ldr r3, [pc, 0xaa0]                           |             r3 = *(0x2021c);
    0x0001f77c add r1, pc, r1                                |             r1 = pc + r1;
    0x0001f780 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001f784 mov r2, r0                                    |             r2 = r0;
    0x0001f788 mov r0, r5                                    |             r0 = r5;
    0x0001f78c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001f790 ldr r1, [pc, 0xa8c]                           |             r1 = *(0x20220);
    0x0001f794 ldr r3, [sp, 0x20]                            |             r3 = var_20h;
    0x0001f798 mov r2, sl                                    |             r2 = sl;
    0x0001f79c add r1, pc, r1                                |             r1 = pc + r1;
    0x0001f7a0 mov r0, r4                                    |             r0 = r4;
    0x0001f7a4 bl 0x1f080                                    |             fcn_0001f080 (r0);
                                                             |         }
    0x0001f7a8 mov r0, r4                                    |         r0 = r4;
    0x0001f7ac bl 0x8558                                     |         fcn_00008558 ();
    0x0001f7b0 mov r1, 1                                     |         r1 = 1;
    0x0001f7b4 mov r6, r0                                    |         r6 = r0;
    0x0001f7b8 add r0, sp, 0x60                              |         r0 += var_60h;
    0x0001f7bc bl 0x8588                                     |         fcn_00008588 ();
    0x0001f7c0 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x0001f7c4 moveq sb, sl                                  |             sb = sl;
                                                             |         }
                                                             |         if (r6 != 0) {
    0x0001f7c8 beq 0x1f7dc                                   |             
    0x0001f7cc mov r1, r6                                    |             r1 = r6;
    0x0001f7d0 mov r0, sl                                    |             r0 = sl;
    0x0001f7d4 bl 0x8d38                                     |             r0 = fcn_00008d38 ();
    0x0001f7d8 mov sb, r0                                    |             sb = r0;
                                                             |         }
    0x0001f7dc ldr r3, [pc, 0xa44]                           |         r3 = *(0x20224);
    0x0001f7e0 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f7e4 str r3, [sp, 0x30]                            |         s2 = r3;
    0x0001f7e8 ldr r3, [pc, 0xa3c]                           |         r3 = *(0x20228);
    0x0001f7ec add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f7f0 str r3, [sp, 0x34]                            |         var_34h = r3;
                                                             | label_6:
    0x0001f7f4 add r3, sp, 0x44                              |         r3 += var_44h;
    0x0001f7f8 str r3, [sp, 0x2c]                            |         var_2ch = r3;
                                                             | label_8:
    0x0001f7fc ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x0001f800 add r1, sp, 0x60                              |         r1 += var_60h;
    0x0001f804 ldr r0, [sp, 0x40]                            |         r0 = var_40h;
    0x0001f808 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x0001f80c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001f810 beq 0x1f9e0                                   |             goto label_28;
                                                             |         }
    0x0001f814 mov r5, 0                                     |         r5 = 0;
                                                             | label_7:
    0x0001f818 ldr r1, [sp, 0x28]                            |         r1 = var_28h;
    0x0001f81c mov r0, r4                                    |         r0 = r4;
    0x0001f820 bl 0x85e8                                     |         r0 = fcn_000085e8 ();
    0x0001f824 cmp r0, 0                                     |         
    0x0001f828 beq 0x1f744                                   |         
                                                             |     }
    0x0001f82c cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001f830 bne 0x1f744                                   |         goto label_5;
                                                             |     }
                                                             | label_27:
    0x0001f834 add r6, sp, 0x60                              |     r6 += var_60h;
    0x0001f838 mov r1, 0                                     |     r1 = 0;
    0x0001f83c mov r0, r6                                    |     r0 = r6;
    0x0001f840 bl 0x3473c                                    |     fcn_0003473c (r0, r1);
    0x0001f844 subs r5, r0, 0                                |     r5 -= var_60h;
                                                             |     if (r5 != var_60h) {
    0x0001f848 bne 0x1fc90                                   |         goto label_25;
                                                             |     }
    0x0001f84c ldrd r0, r1, [sp, 0x58]                       |     __asm ("ldrd r0, r1, [var_58h]");
    0x0001f850 ldrd r2, r3, [sp, 0x50]                       |     __asm ("ldrd r2, r3, [var_50h]");
    0x0001f854 strd r0, r1, [sp]                             |     __asm ("strd r0, r1, [sp]");
    0x0001f858 mov r1, sl                                    |     r1 = sl;
    0x0001f85c mov r0, r6                                    |     r0 = r6;
    0x0001f860 bl 0x38204                                    |     r0 = fcn_00038204 (r0, r1, r2);
    0x0001f864 cmp r0, 1                                     |     
    0x0001f868 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 == 1) {
    0x0001f86c beq 0x1fb38                                   |         goto label_29;
                                                             |     }
    0x0001f870 cmp r0, 2                                     |     
                                                             |     if (r0 == 2) {
    0x0001f874 beq 0x1fba0                                   |         goto label_30;
                                                             |     }
    0x0001f878 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001f87c bne 0x1fc88                                   |         goto label_12;
                                                             |     }
    0x0001f880 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001f884 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) != 0) {
    0x0001f888 beq 0x1f8d4                                   |         
    0x0001f88c ldr r3, [pc, 0x918]                           |         r3 = *(0x201a8);
    0x0001f890 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001f894 ldr r5, [r3]                                  |         r5 = *(0x201a8);
    0x0001f898 bl 0x8204                                     |         getpid ();
    0x0001f89c ldr r3, [pc, 0x98c]                           |         r3 = *(0x2022c);
    0x0001f8a0 ldr r1, [pc, 0x98c]                           |         r1 = *(0x20230);
    0x0001f8a4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f8a8 str r3, [sp]                                  |         *(sp) = r3;
    0x0001f8ac ldr r3, [pc, 0x984]                           |         r3 = *(0x20234);
    0x0001f8b0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f8b4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f8b8 mov r2, r0                                    |         r2 = r0;
    0x0001f8bc mov r0, r5                                    |         r0 = r5;
    0x0001f8c0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001f8c4 ldr r1, [pc, 0x970]                           |         r1 = *(0x20238);
    0x0001f8c8 mov r0, r4                                    |         r0 = r4;
    0x0001f8cc add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f8d0 bl 0x1f080                                    |         fcn_0001f080 (r0);
                                                             |     }
    0x0001f8d4 mov r0, r6                                    |     r0 = r6;
    0x0001f8d8 bl 0x34e84                                    |     fcn_00034e84 (r0);
    0x0001f8dc ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001f8e0 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) != 0) {
    0x0001f8e4 beq 0x1f930                                   |         
    0x0001f8e8 ldr r3, [pc, 0x8bc]                           |         r3 = *(0x201a8);
    0x0001f8ec ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001f8f0 ldr r5, [r3]                                  |         r5 = *(0x201a8);
    0x0001f8f4 bl 0x8204                                     |         getpid ();
    0x0001f8f8 ldr r3, [pc, 0x940]                           |         r3 = *(0x2023c);
    0x0001f8fc ldr r1, [pc, 0x940]                           |         r1 = *(0x20240);
    0x0001f900 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f904 str r3, [sp]                                  |         *(sp) = r3;
    0x0001f908 ldr r3, [pc, 0x938]                           |         r3 = *(0x20244);
    0x0001f90c add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f910 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f914 mov r2, r0                                    |         r2 = r0;
    0x0001f918 mov r0, r5                                    |         r0 = r5;
    0x0001f91c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001f920 ldr r1, [pc, 0x924]                           |         r1 = *(0x20248);
    0x0001f924 mov r0, r4                                    |         r0 = r4;
    0x0001f928 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f92c bl 0x1f080                                    |         fcn_0001f080 (r0);
                                                             |     }
    0x0001f930 mov r1, 0                                     |     r1 = 0;
    0x0001f934 mov r0, r6                                    |     r0 = r6;
    0x0001f938 bl 0x3473c                                    |     fcn_0003473c (r0, r1);
    0x0001f93c subs r5, r0, 0                                |     r5 -= var_60h;
                                                             |     if (r5 != var_60h) {
    0x0001f940 bne 0x1fc90                                   |         goto label_25;
                                                             |     }
    0x0001f944 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x0001f948 beq 0x1fdd8                                   |         goto label_31;
                                                             |     }
    0x0001f94c mov r1, fp                                    |     r1 = fp;
    0x0001f950 mov r0, r6                                    |     r0 = r6;
    0x0001f954 bl 0x3453c                                    |     fcn_0003453c (r0, r1);
    0x0001f958 subs r5, r0, 0                                |     r5 -= var_60h;
                                                             |     if (r5 != var_60h) {
    0x0001f95c bne 0x1fc88                                   |         goto label_12;
                                                             |     }
    0x0001f960 mov r0, r6                                    |     r0 = r6;
    0x0001f964 bl 0x34b58                                    |     r0 = fcn_00034b58 (r0);
    0x0001f968 mov sb, r0                                    |     sb = r0;
                                                             | label_13:
    0x0001f96c bl 0x33f40                                    |     fcn_00033f40 ();
    0x0001f970 ldr r3, [pc, 0x8d8]                           |     r3 = *(0x2024c);
    0x0001f974 cmp r0, r3                                    |     
                                                             |     if (r0 <= r3) {
    0x0001f978 ble 0x1fde0                                   |         goto label_32;
                                                             |     }
                                                             | label_14:
    0x0001f97c ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001f980 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) != 0) {
    0x0001f984 beq 0x1f9d0                                   |         
    0x0001f988 ldr r3, [pc, 0x81c]                           |         r3 = *(0x201a8);
    0x0001f98c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001f990 ldr r5, [r3]                                  |         r5 = *(0x201a8);
    0x0001f994 bl 0x8204                                     |         getpid ();
    0x0001f998 ldr r3, [pc, 0x8b4]                           |         r3 = *(0x20250);
    0x0001f99c ldr r1, [pc, 0x8b4]                           |         r1 = *(0x20254);
    0x0001f9a0 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f9a4 str r3, [sp]                                  |         *(sp) = r3;
    0x0001f9a8 ldr r3, [pc, 0x8ac]                           |         r3 = *(0x20258);
    0x0001f9ac add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f9b0 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001f9b4 mov r2, r0                                    |         r2 = r0;
    0x0001f9b8 mov r0, r5                                    |         r0 = r5;
    0x0001f9bc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001f9c0 ldr r1, [pc, 0x898]                           |         r1 = *(0x2025c);
    0x0001f9c4 mov r0, r4                                    |         r0 = r4;
    0x0001f9c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001f9cc bl 0x1f080                                    |         fcn_0001f080 (r0);
                                                             |     }
    0x0001f9d0 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0001f9d4 orr r3, r3, 4                                 |     r3 |= 4;
    0x0001f9d8 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x0001f9dc b 0x1fdf0                                     |     goto label_33;
                                                             | label_28:
    0x0001f9e0 ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x0001f9e4 bl 0x8c90                                     |     r0 = fcn_00008c90 ();
    0x0001f9e8 mov r5, r0                                    |     r5 = r0;
    0x0001f9ec ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x0001f9f0 bl 0x87bc                                     |     fcn_000087bc ();
    0x0001f9f4 cmp r5, 0                                     |     
    0x0001f9f8 str r0, [sp, 0x24]                            |     var_24h = r0;
                                                             |     if (r5 == 0) {
    0x0001f9fc beq 0x1f7f4                                   |         goto label_6;
                                                             |     }
    0x0001fa00 mov r2, r6                                    |     r2 = r6;
    0x0001fa04 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x0001fa08 ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x0001fa0c bl 0x87b0                                     |     r0 = fcn_000087b0 ();
    0x0001fa10 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001fa14 beq 0x1f7f4                                   |         goto label_6;
                                                             |     }
    0x0001fa18 mov r2, 9                                     |     r2 = 9;
    0x0001fa1c ldr r1, [sp, 0x30]                            |     r1 = s2;
    0x0001fa20 mov r0, r5                                    |     r0 = r5;
    0x0001fa24 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x0001fa28 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001fa2c bne 0x1fabc                                   |         goto label_34;
                                                             |     }
    0x0001fa30 mov r3, 0x10                                  |     r3 = 0x10;
    0x0001fa34 str r3, [sp, 8]                               |     var_8h = r3;
    0x0001fa38 mov r2, 0                                     |     r2 = 0;
    0x0001fa3c mov r3, 0                                     |     r3 = 0;
    0x0001fa40 strd r2, r3, [sp]                             |     __asm ("strd r2, r3, [sp]");
    0x0001fa44 mov r0, r5                                    |     r0 = r5;
    0x0001fa48 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [format]");
    0x0001fa4c mov r1, sb                                    |     r1 = sb;
    0x0001fa50 bl 0x38050                                    |     r0 = fcn_00038050 (r0, r1, r2, r3);
    0x0001fa54 mov r5, r0                                    |     r5 = r0;
                                                             | label_9:
    0x0001fa58 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0001fa5c beq 0x1f7f4                                   |         goto label_6;
                                                             |     }
    0x0001fa60 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001fa64 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x0001fa68 beq 0x1f818                                   |         goto label_7;
                                                             |     }
    0x0001fa6c ldr r3, [pc, 0x738]                           |     r3 = *(0x201a8);
    0x0001fa70 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0001fa74 ldr r6, [r3]                                  |     r6 = *(0x201a8);
    0x0001fa78 bl 0x8204                                     |     getpid ();
    0x0001fa7c ldr r3, [pc, 0x7e0]                           |     r3 = *(0x20260);
    0x0001fa80 ldr r1, [pc, 0x7e0]                           |     r1 = *(0x20264);
    0x0001fa84 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fa88 str r3, [sp]                                  |     *(sp) = r3;
    0x0001fa8c ldr r3, [pc, 0x7d8]                           |     r3 = *(0x20268);
    0x0001fa90 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fa94 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fa98 mov r2, r0                                    |     r2 = r0;
    0x0001fa9c mov r0, r6                                    |     r0 = r6;
    0x0001faa0 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001faa4 ldr r1, [pc, 0x7c4]                           |     r1 = *(0x2026c);
    0x0001faa8 mov r2, sl                                    |     r2 = sl;
    0x0001faac add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fab0 mov r0, r4                                    |     r0 = r4;
    0x0001fab4 bl 0x1f080                                    |     fcn_0001f080 (r0);
    0x0001fab8 b 0x1f818                                     |     goto label_7;
                                                             | label_34:
    0x0001fabc ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x0001fac0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001fac4 beq 0x1f7fc                                   |         goto label_8;
                                                             |     }
    0x0001fac8 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x0001facc tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001fad0 beq 0x1f7fc                                   |         goto label_8;
                                                             |     }
    0x0001fad4 add r3, sp, 0x4c                              |     r3 += var_4ch;
    0x0001fad8 add r2, sp, 0x48                              |     r2 += ptr;
    0x0001fadc ldr r1, [sp, 0x34]                            |     r1 = var_34h;
    0x0001fae0 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x0001fae4 bl 0x84a4                                     |     r0 = fcn_000084a4 ();
    0x0001fae8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001faec bne 0x1f7fc                                   |         goto label_8;
                                                             |     }
    0x0001faf0 ldr r0, [sp, 0x48]                            |     r0 = ptr;
    0x0001faf4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001faf8 beq 0x1f7fc                                   |         goto label_8;
                                                             |     }
    0x0001fafc ldr r1, [sp, 0x4c]                            |     r1 = var_4ch;
    0x0001fb00 bl 0x8048                                     |     strndup (r0, r1);
    0x0001fb04 mov r3, 0x10                                  |     r3 = 0x10;
    0x0001fb08 str r3, [sp, 8]                               |     var_8h = r3;
    0x0001fb0c mov r2, 0                                     |     r2 = 0;
    0x0001fb10 mov r3, 0                                     |     r3 = 0;
    0x0001fb14 strd r2, r3, [sp]                             |     __asm ("strd r2, r3, [sp]");
    0x0001fb18 mov r1, sb                                    |     r1 = sb;
    0x0001fb1c ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [format]");
    0x0001fb20 str r0, [sp, 0x48]                            |     ptr = r0;
    0x0001fb24 bl 0x38050                                    |     r0 = fcn_00038050 (r0, r1, r2, r3);
    0x0001fb28 mov r5, r0                                    |     r5 = r0;
    0x0001fb2c ldr r0, [sp, 0x48]                            |     r0 = ptr;
    0x0001fb30 bl 0x91c4                                     |     free (r0);
    0x0001fb34 b 0x1fa58                                     |     goto label_9;
                                                             | label_29:
    0x0001fb38 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001fb3c tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x0001fb40 beq 0x1fb98                                   |         goto label_11;
                                                             |     }
    0x0001fb44 ldr r3, [pc, 0x660]                           |     r3 = *(0x201a8);
    0x0001fb48 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0001fb4c ldr r5, [r3]                                  |     r5 = *(0x201a8);
    0x0001fb50 bl 0x8204                                     |     getpid ();
    0x0001fb54 ldr r3, [pc, 0x718]                           |     r3 = *(0x20270);
    0x0001fb58 ldr r1, [pc, 0x718]                           |     r1 = *(0x20274);
    0x0001fb5c add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fb60 str r3, [sp]                                  |     *(sp) = r3;
    0x0001fb64 ldr r3, [pc, 0x710]                           |     r3 = *(0x20278);
    0x0001fb68 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fb6c add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fb70 mov r2, r0                                    |     r2 = r0;
    0x0001fb74 mov r0, r5                                    |     r0 = r5;
    0x0001fb78 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001fb7c mov r0, r6                                    |     r0 = r6;
    0x0001fb80 bl 0x34b58                                    |     fcn_00034b58 (r0);
    0x0001fb84 ldr r1, [pc, 0x6f4]                           |     r1 = *(0x2027c);
    0x0001fb88 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fb8c mov r2, r0                                    |     r2 = r0;
                                                             | label_10:
    0x0001fb90 mov r0, r4                                    |     r0 = r4;
    0x0001fb94 bl 0x1f080                                    |     fcn_0001f080 (r0);
                                                             |     do {
                                                             | label_11:
    0x0001fb98 ldr r5, [pc, 0x6e4]                           |         r5 = *(0x20280);
    0x0001fb9c b 0x1fc88                                     |         goto label_12;
                                                             | label_30:
    0x0001fba0 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0001fba4 tst r3, 0x2000                                |         
                                                             |         if ((r3 & 0x2000) != 0) {
    0x0001fba8 beq 0x1fc00                                   |             
    0x0001fbac ldr r3, [pc, 0x5f8]                           |             r3 = *(0x201a8);
    0x0001fbb0 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001fbb4 ldr r5, [r3]                                  |             r5 = *(0x201a8);
    0x0001fbb8 bl 0x8204                                     |             getpid ();
    0x0001fbbc ldr r3, [pc, 0x6c4]                           |             r3 = *(0x20284);
    0x0001fbc0 ldr r1, [pc, 0x6c4]                           |             r1 = *(0x20288);
    0x0001fbc4 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001fbc8 str r3, [sp]                                  |             *(sp) = r3;
    0x0001fbcc ldr r3, [pc, 0x6bc]                           |             r3 = *(0x2028c);
    0x0001fbd0 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001fbd4 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001fbd8 mov r2, r0                                    |             r2 = r0;
    0x0001fbdc mov r0, r5                                    |             r0 = r5;
    0x0001fbe0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001fbe4 mov r0, r6                                    |             r0 = r6;
    0x0001fbe8 bl 0x34b58                                    |             fcn_00034b58 (r0);
    0x0001fbec ldr r1, [pc, 0x6a0]                           |             r1 = *(0x20290);
    0x0001fbf0 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001fbf4 mov r2, r0                                    |             r2 = r0;
    0x0001fbf8 mov r0, r4                                    |             r0 = r4;
    0x0001fbfc bl 0x1f080                                    |             fcn_0001f080 (r0);
                                                             |         }
    0x0001fc00 mov r0, r6                                    |         r0 = r6;
    0x0001fc04 bl 0x3622c                                    |         fcn_0003622c (r0);
    0x0001fc08 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0001fc0c eor r3, r3, 1                                 |         r3 ^= 1;
    0x0001fc10 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001fc14 moveq r0, 0                                   |             r0 = 0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001fc18 andne r0, r3, 1                               |             r0 = r3 & 1;
                                                             |         }
    0x0001fc1c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001fc20 beq 0x1fca4                                   |             
    0x0001fc24 ldr r3, [r8]                                  |             r3 = *(r8);
    0x0001fc28 tst r3, 0x2000                                |             
                                                             |             if ((r3 & 0x2000) != 0) {
    0x0001fc2c beq 0x1fc84                                   |                 
    0x0001fc30 ldr r3, [pc, 0x574]                           |                 r3 = *(0x201a8);
    0x0001fc34 ldr r3, [r7, r3]                              |                 r3 = *((r7 + r3));
    0x0001fc38 ldr r5, [r3]                                  |                 r5 = *(0x201a8);
    0x0001fc3c bl 0x8204                                     |                 getpid ();
    0x0001fc40 ldr r3, [pc, 0x650]                           |                 r3 = *(0x20294);
    0x0001fc44 ldr r1, [pc, 0x650]                           |                 r1 = *(0x20298);
    0x0001fc48 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0001fc4c str r3, [sp]                                  |                 *(sp) = r3;
    0x0001fc50 ldr r3, [pc, 0x648]                           |                 r3 = *(0x2029c);
    0x0001fc54 add r1, pc, r1                                |                 r1 = pc + r1;
    0x0001fc58 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0001fc5c mov r2, r0                                    |                 r2 = r0;
    0x0001fc60 mov r0, r5                                    |                 r0 = r5;
    0x0001fc64 bl 0x8798                                     |                 fprintf (r0, r1, r2, r3)
    0x0001fc68 mov r0, r6                                    |                 r0 = r6;
    0x0001fc6c bl 0x34b58                                    |                 fcn_00034b58 (r0);
    0x0001fc70 ldr r1, [pc, 0x62c]                           |                 r1 = *(0x202a0);
    0x0001fc74 add r1, pc, r1                                |                 r1 = pc + r1;
    0x0001fc78 mov r2, r0                                    |                 r2 = r0;
    0x0001fc7c mov r0, r4                                    |                 r0 = r4;
    0x0001fc80 bl 0x1f080                                    |                 fcn_0001f080 (r0);
                                                             |             }
    0x0001fc84 mvn r5, 0x1d                                  |             r5 = ~0x1d;
                                                             | label_12:
    0x0001fc88 mov r0, r6                                    |             r0 = r6;
    0x0001fc8c bl 0x34e84                                    |             fcn_00034e84 (r0);
                                                             | label_25:
    0x0001fc90 mov r0, fp                                    |             r0 = fp;
    0x0001fc94 bl 0x91c4                                     |             free (r0);
                                                             | label_19:
    0x0001fc98 mov r0, r5                                    |             r0 = r5;
    0x0001fc9c add sp, sp, 0x20c                             |             
    0x0001fca0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x0001fca4 add r1, sp, 0x4c                              |         r1 += var_4ch;
    0x0001fca8 mov r0, r6                                    |         r0 = r6;
    0x0001fcac bl 0x35e0c                                    |         r0 = fcn_00035e0c (r0, r1);
    0x0001fcb0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001fcb4 bne 0x1fd20                                   |             goto label_35;
                                                             |         }
    0x0001fcb8 ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x0001fcbc cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0001fcc0 beq 0x1fd20                                   |             goto label_35;
                                                             |         }
    0x0001fcc4 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0001fcc8 tst r3, 0x2000                                |         
    0x0001fccc beq 0x1fb98                                   |         
                                                             |     } while ((r3 & 0x2000) == 0);
    0x0001fcd0 ldr r3, [pc, 0x4d4]                           |     r3 = *(0x201a8);
    0x0001fcd4 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0001fcd8 ldr r5, [r3]                                  |     r5 = *(0x201a8);
    0x0001fcdc bl 0x8204                                     |     getpid ();
    0x0001fce0 ldr r3, [pc, 0x5c0]                           |     r3 = *(0x202a4);
    0x0001fce4 ldr r1, [pc, 0x5c0]                           |     r1 = *(0x202a8);
    0x0001fce8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fcec str r3, [sp]                                  |     *(sp) = r3;
    0x0001fcf0 ldr r3, [pc, 0x5b8]                           |     r3 = *(0x202ac);
    0x0001fcf4 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fcf8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fcfc mov r2, r0                                    |     r2 = r0;
    0x0001fd00 mov r0, r5                                    |     r0 = r5;
    0x0001fd04 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001fd08 mov r0, r6                                    |     r0 = r6;
    0x0001fd0c bl 0x34b58                                    |     fcn_00034b58 (r0);
    0x0001fd10 ldr r1, [pc, 0x59c]                           |     r1 = *(0x202b0);
    0x0001fd14 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fd18 mov r2, r0                                    |     r2 = r0;
    0x0001fd1c b 0x1fb90                                     |     goto label_10;
                                                             | label_35:
    0x0001fd20 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x0001fd24 moveq sb, 1                                   |         sb = 1;
                                                             |         goto label_36;
                                                             |     }
                                                             |     if (fp != 0) {
                                                             | label_36:
    0x0001fd28 bne 0x1fb98                                   |         goto label_11;
                                                             |     }
                                                             | label_15:
    0x0001fd2c mov r0, r6                                    |     r0 = r6;
    0x0001fd30 ldr r5, [r4, 0x10]                            |     r5 = *((r4 + 0x10));
    0x0001fd34 bl 0x34b58                                    |     r0 = fcn_00034b58 (r0);
    0x0001fd38 mov r1, r0                                    |     r1 = r0;
    0x0001fd3c mov r0, r5                                    |     r0 = r5;
    0x0001fd40 bl 0x8594                                     |     r0 = fcn_00008594 ();
    0x0001fd44 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x0001fd48 bne 0x1fc88                                   |         goto label_12;
                                                             |     }
    0x0001fd4c ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x0001fd50 cmp sb, 0                                     |     
    0x0001fd54 orr r3, r3, 0x4000000                         |     r3 |= 0x4000000;
    0x0001fd58 str r3, [r4, 0x6c]                            |     *((r4 + 0x6c)) = r3;
                                                             |     if (sb == 0) {
    0x0001fd5c beq 0x20014                                   |         goto label_37;
                                                             |     }
                                                             | label_18:
    0x0001fd60 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001fd64 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) != 0) {
    0x0001fd68 beq 0x1fdb4                                   |         
    0x0001fd6c ldr r3, [pc, 0x438]                           |         r3 = *(0x201a8);
    0x0001fd70 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001fd74 ldr sb, [r3]                                  |         sb = *(0x201a8);
    0x0001fd78 bl 0x8204                                     |         getpid ();
    0x0001fd7c ldr r3, [pc, 0x534]                           |         r3 = *(0x202b4);
    0x0001fd80 ldr r1, [pc, 0x534]                           |         r1 = *(0x202b8);
    0x0001fd84 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001fd88 str r3, [sp]                                  |         *(sp) = r3;
    0x0001fd8c ldr r3, [pc, 0x52c]                           |         r3 = *(0x202bc);
    0x0001fd90 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001fd94 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001fd98 mov r2, r0                                    |         r2 = r0;
    0x0001fd9c mov r0, sb                                    |         r0 = sb;
    0x0001fda0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001fda4 ldr r1, [pc, 0x518]                           |         r1 = *(0x202c0);
    0x0001fda8 mov r0, r4                                    |         r0 = r4;
    0x0001fdac add r1, pc, r1                                |         r1 = pc + r1;
    0x0001fdb0 bl 0x1f080                                    |         fcn_0001f080 (r0);
                                                             |     }
    0x0001fdb4 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x0001fdb8 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0001fdbc ldr r1, [pc, 0x504]                           |     r1 = *(0x202c4);
    0x0001fdc0 bic r3, r3, 0x200                             |     r3 = BIT_MASK (r3, 0x200);
    0x0001fdc4 str r3, [r4, 0x44]                            |     *((r4 + 0x44)) = r3;
    0x0001fdc8 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fdcc add r0, r0, 0x4c                              |     r0 += 0x4c;
    0x0001fdd0 bl 0x8c18                                     |     fcn_00008c18 ();
    0x0001fdd4 b 0x20030                                     |     goto label_38;
                                                             | label_31:
    0x0001fdd8 mov sb, fp                                    |     sb = fp;
    0x0001fddc b 0x1f96c                                     |     goto label_13;
                                                             | label_32:
    0x0001fde0 mov r0, r4                                    |     r0 = r4;
    0x0001fde4 bl 0x1cbe8                                    |     r0 = fcn_0001cbe8 (r0);
    0x0001fde8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001fdec beq 0x1f97c                                   |         goto label_14;
                                                             |     }
                                                             | label_33:
    0x0001fdf0 ldr r3, [pc, 0x4d4]                           |     r3 = *(0x202c8);
    0x0001fdf4 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fdf8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x0001fdfc ldr r3, [pc, 0x4cc]                           |     r3 = *(0x202cc);
    0x0001fe00 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fe04 str r3, [sp, 0x18]                            |     format = r3;
                                                             | label_17:
    0x0001fe08 ldr r3, [pc, 0x4c4]                           |     r3 = *(0x202d0);
    0x0001fe0c add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fe10 str r3, [sp, 0x24]                            |     var_24h = r3;
                                                             | label_16:
    0x0001fe14 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x0001fe18 bne 0x1fe80                                   |         goto label_39;
                                                             |     }
    0x0001fe1c mov r0, r6                                    |     r0 = r6;
    0x0001fe20 bl 0x37c48                                    |     fcn_00037c48 (r0);
    0x0001fe24 subs r5, r0, 0                                |     r5 -= var_60h;
                                                             |     if (r5 != var_60h) {
    0x0001fe28 bne 0x1fc88                                   |         goto label_12;
                                                             |     }
    0x0001fe2c ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001fe30 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) != 0) {
    0x0001fe34 beq 0x1fe80                                   |         
    0x0001fe38 ldr r3, [pc, 0x36c]                           |         r3 = *(0x201a8);
    0x0001fe3c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001fe40 ldr r5, [r3]                                  |         r5 = *(0x201a8);
    0x0001fe44 bl 0x8204                                     |         getpid ();
    0x0001fe48 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x0001fe4c ldr r1, [sp, 0x18]                            |         r1 = format;
    0x0001fe50 str r3, [sp]                                  |         *(sp) = r3;
    0x0001fe54 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x0001fe58 mov r2, r0                                    |         r2 = r0;
    0x0001fe5c mov r0, r5                                    |         r0 = r5;
    0x0001fe60 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001fe64 mov r0, r6                                    |         r0 = r6;
    0x0001fe68 bl 0x34b58                                    |         fcn_00034b58 (r0);
    0x0001fe6c ldr r1, [pc, 0x464]                           |         r1 = *(0x202d4);
    0x0001fe70 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001fe74 mov r2, r0                                    |         r2 = r0;
    0x0001fe78 mov r0, r4                                    |         r0 = r4;
    0x0001fe7c bl 0x1f080                                    |         fcn_0001f080 (r0);
                                                             |     }
                                                             | label_39:
    0x0001fe80 mov r1, sl                                    |     r1 = sl;
    0x0001fe84 mov r0, r6                                    |     r0 = r6;
    0x0001fe88 bl 0x366c8                                    |     fcn_000366c8 (r0, r1);
    0x0001fe8c subs r5, r0, 0                                |     r5 -= var_60h;
                                                             |     if (r5 != var_60h) {
    0x0001fe90 bne 0x1fefc                                   |         goto label_40;
                                                             |     }
    0x0001fe94 add r1, sp, 0x58                              |     r1 += var_58h;
    0x0001fe98 ldrd r2, r3, [r1, -8]                         |     __asm ("ldrd r2, r3, [var_50h]");
    0x0001fe9c orrs r0, r2, r3                               |     r0 = r2 | r3;
    0x0001fea0 bne 0x1fee4                                   |     
                                                             |     while (r5 == var_60h) {
    0x0001fea4 ldrd r2, r3, [r1]                             |         __asm ("ldrd r2, r3, [r1]");
    0x0001fea8 orrs r1, r2, r3                               |         r1 = r2 | r3;
                                                             |         if (r1 != r2) {
    0x0001feac beq 0x1fec0                                   |             
    0x0001feb0 mov r0, r6                                    |             r0 = r6;
    0x0001feb4 bl 0x36570                                    |             fcn_00036570 (r0);
    0x0001feb8 subs r5, r0, 0                                |             r5 -= var_60h;
                                                             |             if (r5 != var_60h) {
    0x0001febc bne 0x1fefc                                   |                 goto label_40;
                                                             |             }
                                                             |         }
    0x0001fec0 ldr r1, [sp, 0x14]                            |         r1 = var_14h;
    0x0001fec4 mov r0, r6                                    |         r0 = r6;
    0x0001fec8 bl 0x36620                                    |         fcn_00036620 (r0, r1);
    0x0001fecc mov r0, r6                                    |         r0 = r6;
    0x0001fed0 bl 0x36a88                                    |         r0 = fcn_00036a88 (r0);
    0x0001fed4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001fed8 bne 0x1ff54                                   |             goto label_41;
                                                             |         }
    0x0001fedc mov sb, r0                                    |         sb = r0;
    0x0001fee0 b 0x1fd2c                                     |         goto label_15;
    0x0001fee4 mov r0, r6                                    |         r0 = r6;
    0x0001fee8 str r1, [sp, 0x28]                            |         var_28h = r1;
    0x0001feec bl 0x364c0                                    |         fcn_000364c0 (r0);
    0x0001fef0 ldr r1, [sp, 0x28]                            |         r1 = var_28h;
    0x0001fef4 subs r5, r0, 0                                |         r5 -= var_60h;
    0x0001fef8 beq 0x1fea4                                   |         
                                                             |     }
                                                             | label_40:
    0x0001fefc ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001ff00 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x0001ff04 beq 0x1fc88                                   |         goto label_12;
                                                             |     }
    0x0001ff08 ldr r3, [pc, 0x29c]                           |     r3 = *(0x201a8);
    0x0001ff0c ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0001ff10 ldr r7, [r3]                                  |     r7 = *(0x201a8);
    0x0001ff14 bl 0x8204                                     |     getpid ();
    0x0001ff18 ldr r3, [pc, 0x3bc]                           |     r3 = *(0x202d8);
    0x0001ff1c ldr r1, [pc, 0x3bc]                           |     r1 = *(0x202dc);
    0x0001ff20 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001ff24 str r3, [sp]                                  |     *(sp) = r3;
    0x0001ff28 ldr r3, [pc, 0x3b4]                           |     r3 = *(0x202e0);
    0x0001ff2c add r1, pc, r1                                |     r1 = pc + r1;
    0x0001ff30 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001ff34 mov r2, r0                                    |     r2 = r0;
    0x0001ff38 mov r0, r7                                    |     r0 = r7;
    0x0001ff3c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001ff40 ldr r1, [pc, 0x3a0]                           |     r1 = *(0x202e4);
    0x0001ff44 mov r0, r4                                    |     r0 = r4;
    0x0001ff48 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001ff4c bl 0x1f080                                    |     fcn_0001f080 (r0);
    0x0001ff50 b 0x1fc88                                     |     goto label_12;
                                                             | label_41:
    0x0001ff54 ldr r3, [r8]                                  |     r3 = *(r8);
    0x0001ff58 cmn r0, 0x10                                  |     
    0x0001ff5c cmpeq sb, 0                                   |     __asm ("cmpeq sb, 0");
    0x0001ff60 and r3, r3, 0x2000                            |     r3 &= 0x2000;
                                                             |     if (r0 != 0x10) {
    0x0001ff64 beq 0x1ffc0                                   |         
    0x0001ff68 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001ff6c beq 0x1ffb8                                   |             
    0x0001ff70 ldr r3, [pc, 0x234]                           |             r3 = *(0x201a8);
    0x0001ff74 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001ff78 ldr r5, [r3]                                  |             r5 = *(0x201a8);
    0x0001ff7c bl 0x8204                                     |             getpid ();
    0x0001ff80 ldr r3, [pc, 0x364]                           |             r3 = *(0x202e8);
    0x0001ff84 ldr r1, [pc, 0x364]                           |             r1 = *(0x202ec);
    0x0001ff88 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001ff8c str r3, [sp]                                  |             *(sp) = r3;
    0x0001ff90 ldr r3, [pc, 0x35c]                           |             r3 = *(0x202f0);
    0x0001ff94 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001ff98 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001ff9c mov r2, r0                                    |             r2 = r0;
    0x0001ffa0 mov r0, r5                                    |             r0 = r5;
    0x0001ffa4 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001ffa8 ldr r1, [pc, 0x348]                           |             r1 = *(0x202f4);
    0x0001ffac mov r0, r4                                    |             r0 = r4;
    0x0001ffb0 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001ffb4 bl 0x1f080                                    |             fcn_0001f080 (r0);
                                                             |         }
    0x0001ffb8 ldr r5, [pc, 0x33c]                           |         r5 = *(0x202f8);
    0x0001ffbc b 0x1fc88                                     |         goto label_12;
                                                             |     }
    0x0001ffc0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001ffc4 beq 0x1fe14                                   |         goto label_16;
                                                             |     }
    0x0001ffc8 ldr r3, [pc, 0x1dc]                           |     r3 = *(0x201a8);
    0x0001ffcc ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0001ffd0 ldr r5, [r3]                                  |     r5 = *(0x201a8);
    0x0001ffd4 bl 0x8204                                     |     getpid ();
    0x0001ffd8 ldr r3, [pc, 0x320]                           |     r3 = *(0x202fc);
    0x0001ffdc ldr r1, [pc, 0x320]                           |     r1 = *(0x20300);
    0x0001ffe0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001ffe4 str r3, [sp]                                  |     *(sp) = r3;
    0x0001ffe8 ldr r3, [pc, 0x318]                           |     r3 = *(0x20304);
    0x0001ffec add r1, pc, r1                                |     r1 = pc + r1;
    0x0001fff0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001fff4 mov r2, r0                                    |     r2 = r0;
    0x0001fff8 mov r0, r5                                    |     r0 = r5;
    0x0001fffc bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00020000 ldr r1, [pc, 0x304]                           |     r1 = *(0x20308);
    0x00020004 mov r0, r4                                    |     r0 = r4;
    0x00020008 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002000c bl 0x1f080                                    |     fcn_0001f080 (r0);
    0x00020010 b 0x1fe08                                     |     goto label_17;
                                                             | label_37:
    0x00020014 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x00020018 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002001c beq 0x20030                                   |         goto label_38;
                                                             |     }
    0x00020020 mov r0, r6                                    |     r0 = r6;
    0x00020024 bl 0x361c4                                    |     r0 = fcn_000361c4 (r0);
    0x00020028 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002002c bne 0x1fd60                                   |         goto label_18;
                                                             |     }
                                                             | label_38:
    0x00020030 ldr r3, [r4, 0x3c]                            |     r3 = *((r4 + 0x3c));
    0x00020034 tst r3, 1                                     |     
                                                             |     if ((r3 & 1) == 0) {
    0x00020038 bne 0x2005c                                   |         
    0x0002003c mov r0, r6                                    |         r0 = r6;
    0x00020040 bl 0x3622c                                    |         r0 = fcn_0003622c (r0);
    0x00020044 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00020048 beq 0x2005c                                   |             goto label_42;
                                                             |         }
    0x0002004c ldr r1, [r4, 0x3c]                            |         r1 = *((r4 + 0x3c));
    0x00020050 mov r0, r4                                    |         r0 = r4;
    0x00020054 orr r1, r1, 1                                 |         r1 |= 1;
    0x00020058 bl 0x8b1c                                     |         fcn_00008b1c ();
                                                             |     }
                                                             | label_42:
    0x0002005c mov r0, r6                                    |     r0 = r6;
    0x00020060 bl 0x34b70                                    |     r0 = fcn_00034b70 (r0);
    0x00020064 cmp r0, 0                                     |     
    0x00020068 str r0, [r4, 0x38]                            |     *((r4 + 0x38)) = r0;
                                                             |     if (r0 < 0) {
    0x0002006c bge 0x200d4                                   |         
    0x00020070 ldr r3, [r8]                                  |         r3 = *(r8);
    0x00020074 tst r3, 0x2000                                |         
                                                             |         if ((r3 & 0x2000) != 0) {
    0x00020078 beq 0x200c4                                   |             
    0x0002007c ldr r3, [pc, 0x128]                           |             r3 = *(0x201a8);
    0x00020080 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x00020084 ldr r5, [r3]                                  |             r5 = *(0x201a8);
    0x00020088 bl 0x8204                                     |             getpid ();
    0x0002008c ldr r3, [pc, 0x27c]                           |             r3 = *(0x2030c);
    0x00020090 ldr r1, [pc, 0x27c]                           |             r1 = *(0x20310);
    0x00020094 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020098 str r3, [sp]                                  |             *(sp) = r3;
    0x0002009c ldr r3, [pc, 0x274]                           |             r3 = *(0x20314);
    0x000200a0 add r1, pc, r1                                |             r1 = pc + r1;
    0x000200a4 add r3, pc, r3                                |             r3 = pc + r3;
    0x000200a8 mov r2, r0                                    |             r2 = r0;
    0x000200ac mov r0, r5                                    |             r0 = r5;
    0x000200b0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000200b4 ldr r1, [pc, 0x260]                           |             r1 = *(0x20318);
    0x000200b8 mov r0, r4                                    |             r0 = r4;
    0x000200bc add r1, pc, r1                                |             r1 = pc + r1;
    0x000200c0 bl 0x1f080                                    |             r0 = fcn_0001f080 (r0);
                                                             |         }
    0x000200c4 bl 0x8f6c                                     |         r0 = errno_location ();
    0x000200c8 ldr r5, [r0]                                  |         r5 = *(r0);
    0x000200cc rsb r5, r5, 0                                 |         r5 -= ;
    0x000200d0 b 0x1fc88                                     |         goto label_12;
                                                             |     }
    0x000200d4 mov r2, 0                                     |     r2 = 0;
    0x000200d8 mvn r1, 0                                     |     r1 = ~0;
    0x000200dc mov r0, r6                                    |     r0 = r6;
    0x000200e0 bl 0x34c6c                                    |     fcn_00034c6c (r0, r1);
    0x000200e4 b 0x1fc88                                     |     goto label_12;
                                                             | label_23:
    0x000200e8 mvn r5, 0x15                                  |     r5 = ~0x15;
    0x000200ec b 0x1fc98                                     |     goto label_19;
                                                             | label_24:
    0x000200f0 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x000200f4 tst r3, 0x8000                                |     
                                                             |     if ((r3 & fcn.00008000) == 0) {
    0x000200f8 beq 0x1f62c                                   |         goto label_20;
                                                             |     }
    0x000200fc ldr r1, [pc, 0x21c]                           |     r1 = *(0x2031c);
    0x00020100 add r3, sp, 0x3c                              |     r3 += n;
    0x00020104 add r2, sp, 0x38                              |     r2 += var_38h;
    0x00020108 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002010c mov r0, r6                                    |     r0 = r6;
    0x00020110 bl 0x84a4                                     |     r0 = fcn_000084a4 ();
    0x00020114 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00020118 bne 0x1f62c                                   |         goto label_20;
                                                             |     }
    0x0002011c mov r2, r5                                    |     r2 = r5;
    0x00020120 ldrd r0, r1, [sp, 0x38]                       |     __asm ("ldrd r0, r1, [var_38h]");
    0x00020124 bl 0x18084                                    |     r0 = fcn_00018084 (r0, r1);
    0x00020128 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002012c beq 0x1f62c                                   |         goto label_20;
                                                             |     }
    0x00020130 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00020134 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x00020138 beq 0x1f5e4                                   |         goto label_3;
                                                             |     }
    0x0002013c ldr r3, [pc, 0x68]                            |     r3 = *(0x201a8);
    0x00020140 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00020144 ldr r5, [r3]                                  |     r5 = *(0x201a8);
    0x00020148 bl 0x8204                                     |     getpid ();
    0x0002014c ldr r3, [pc, 0x1d0]                           |     r3 = *(0x20320);
    0x00020150 ldr r1, [pc, 0x1d0]                           |     r1 = *(0x20324);
    0x00020154 add r3, pc, r3                                |     r3 = pc + r3;
    0x00020158 str r3, [sp]                                  |     *(sp) = r3;
    0x0002015c ldr r3, [pc, 0x1c8]                           |     r3 = *(0x20328);
    0x00020160 add r1, pc, r1                                |     r1 = pc + r1;
    0x00020164 add r3, pc, r3                                |     r3 = pc + r3;
    0x00020168 mov r2, r0                                    |     r2 = r0;
    0x0002016c mov r0, r5                                    |     r0 = r5;
    0x00020170 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00020174 ldr r1, [pc, 0x1b4]                           |     r1 = *(0x2032c);
    0x00020178 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002017c b 0x1f5dc                                     |     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/lib/libmount.so.1.1.0 @ 0x20334 */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                 |  
    ; (fcn) fcn.00020334 ()                      | void fcn_00020334 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
    0x00020334 push {r0, r1, r4, r5, r6, lr}     |     
    0x00020338 ldr r6, [pc, 0x108]               |     r6 = *(0x20444);
    0x0002033c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00020340 add r6, pc, r6                    |     r6 = pc + r6;
                                                 |     if (r4 != r0) {
    0x00020344 bne 0x2036c                       |         goto label_0;
                                                 |     }
    0x00020348 ldr r3, [pc, 0xfc]                |     
    0x0002034c ldr r1, [pc, 0xfc]                |     r1 = *(0x2044c);
    0x00020350 ldr r0, [pc, 0xfc]                |     r0 = *(0x20450);
    0x00020354 ldr r2, [pc, 0xfc]                |     r2 = *(0x20454);
    0x00020358 add r3, pc, r3                    |     r3 = pc + r3;
    0x0002035c add r3, r3, 0x4a                  |     r3 = 0x20492;
    0x00020360 add r1, pc, r1                    |     r1 = pc + r1;
    0x00020364 add r0, pc, r0                    |     r0 = pc + r0;
                                                 |     do {
    0x00020368 bl 0x908c                         |         assert ();
                                                 | label_0:
    0x0002036c ldr r0, [r4, 0x10]                |         r0 = *((r4 + 0x10));
    0x00020370 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00020374 bne 0x2039c                       |             goto label_1;
                                                 |         }
    0x00020378 ldr r3, [pc, 0xdc]                |         
    0x0002037c ldr r1, [pc, 0xdc]                |         r1 = *(0x2045c);
    0x00020380 ldr r0, [pc, 0xdc]                |         r0 = *(0x20460);
    0x00020384 add r3, pc, r3                    |         r3 = pc + r3;
    0x00020388 add r3, r3, 0x4a                  |         r3 = 0x204a2;
    0x0002038c mov r2, 0x194                     |         r2 = 0x194;
    0x00020390 add r1, pc, r1                    |         r1 = pc + r1;
    0x00020394 add r0, pc, r0                    |         r0 = pc + r0;
    0x00020398 b 0x20368                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0002039c bl 0x80cc                         |     r0 = fcn_000080cc ();
    0x000203a0 subs r5, r0, 0                    |     r5 = r0 - 0;
                                                 |     if (r5 != r0) {
    0x000203a4 mvneq r5, 0x15                    |         r5 = ~0x15;
                                                 |     }
                                                 |     if (r5 != r0) {
    0x000203a8 beq 0x2043c                       |         
    0x000203ac ldr r0, [r4, 0x38]                |         r0 = *((r4 + 0x38));
    0x000203b0 cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x000203b4 blt 0x203bc                       |             
    0x000203b8 bl 0x917c                         |             close (r0);
                                                 |         }
    0x000203bc mov r0, r5                        |         r0 = r5;
    0x000203c0 bl 0x38104                        |         fcn_00038104 (r0);
    0x000203c4 ldr r3, [r4, 0x6c]                |         r3 = *((r4 + 0x6c));
    0x000203c8 bic r3, r3, 0x4000000             |         r3 = BIT_MASK (r3, 0x4000000);
    0x000203cc str r3, [r4, 0x6c]                |         *((r4 + 0x6c)) = r3;
    0x000203d0 mvn r3, 0                         |         r3 = ~0;
    0x000203d4 str r3, [r4, 0x38]                |         *((r4 + 0x38)) = r3;
    0x000203d8 ldr r3, [pc, 0x88]                |         
    0x000203dc ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x000203e0 ldr r3, [r3]                      |         r3 = *(0x20464);
    0x000203e4 tst r3, 0x2000                    |         
    0x000203e8 mov r5, r0                        |         r5 = r0;
                                                 |         if ((r3 & 0x2000) == 0) {
    0x000203ec beq 0x2043c                       |             goto label_2;
                                                 |         }
    0x000203f0 ldr r3, [pc, 0x74]                |         r3 = *(0x20468);
    0x000203f4 ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x000203f8 ldr r6, [r3]                      |         r6 = *(0x20468);
    0x000203fc bl 0x8204                         |         getpid ();
    0x00020400 ldr r3, [pc, 0x68]                |         r3 = *(0x2046c);
    0x00020404 ldr r1, [pc, 0x68]                |         r1 = *(0x20470);
    0x00020408 add r3, pc, r3                    |         r3 = pc + r3;
    0x0002040c str r3, [sp]                      |         *(sp) = r3;
    0x00020410 ldr r3, [pc, 0x60]                |         r3 = *(0x20474);
    0x00020414 add r1, pc, r1                    |         r1 = pc + r1;
    0x00020418 add r3, pc, r3                    |         r3 = pc + r3;
    0x0002041c mov r2, r0                        |         r2 = r0;
    0x00020420 mov r0, r6                        |         r0 = r6;
    0x00020424 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00020428 ldr r1, [pc, 0x4c]                |         r1 = *(0x20478);
    0x0002042c mov r2, r5                        |         r2 = r5;
    0x00020430 add r1, pc, r1                    |         r1 = pc + r1;
    0x00020434 mov r0, r4                        |         r0 = r4;
    0x00020438 bl 0x1f080                        |         fcn_0001f080 (r0);
                                                 |     }
                                                 | label_2:
    0x0002043c mov r0, r5                        |     r0 = r5;
    0x00020440 add sp, sp, 8                     |     
    0x00020444 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/lib/libmount.so.1.1.0 @ 0x20480 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00020480 ()                      | void fcn_00020480 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x00020480 push {r0, r1, r2, r4, r5, lr}     |     
    0x00020484 ldr r5, [pc, 0xd4]                |     r5 = *(0x2055c);
    0x00020488 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0002048c add r5, pc, r5                    |     r5 = pc + r5;
                                                 |     if (r4 == r0) {
    0x00020490 bne 0x204b8                       |         
    0x00020494 ldr r3, [pc, 0xc8]                |         
    0x00020498 ldr r1, [pc, 0xc8]                |         r1 = *(0x20564);
    0x0002049c ldr r0, [pc, 0xc8]                |         r0 = *(0x20568);
    0x000204a0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000204a4 add r3, r3, 0x65                  |         r3 = 0x205c5;
    0x000204a8 ldr r2, [pc, 0xc0]                |         r2 = *(0x2056c);
    0x000204ac add r1, pc, r1                    |         r1 = pc + r1;
    0x000204b0 add r0, pc, r0                    |         r0 = pc + r0;
    0x000204b4 bl 0x908c                         |         assert ();
                                                 |     }
    0x000204b8 bl 0x8198                         |     r0 = fcn_00008198 ();
    0x000204bc cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x000204c0 bne 0x204ec                       |         goto label_1;
                                                 |     }
    0x000204c4 ldr r3, [r4, 0x6c]                |     r3 = *((r4 + 0x6c));
    0x000204c8 tst r3, 0x4000000                 |     
                                                 |     if ((r3 & 0x4000000) == 0) {
    0x000204cc beq 0x204ec                       |         goto label_1;
                                                 |     }
    0x000204d0 mov r0, r4                        |     r0 = r4;
    0x000204d4 bl 0x20334                        |     fcn_00020334 (r0);
                                                 |     do {
                                                 | label_0:
    0x000204d8 mvn r3, 0                         |         r3 = ~0;
    0x000204dc mov r0, 0                         |         r0 = 0;
    0x000204e0 str r3, [r4, 0x38]                |         *((r4 + 0x38)) = r3;
    0x000204e4 add sp, sp, 0xc                   |         
    0x000204e8 pop {r4, r5, pc}                  |         
                                                 | label_1:
    0x000204ec ldr r3, [r4, 0x38]                |         r3 = *((r4 + 0x38));
    0x000204f0 cmp r3, 0                         |         
    0x000204f4 blt 0x204d8                       |         
                                                 |     } while (r3 < 0);
    0x000204f8 ldr r3, [pc, 0x74]                |     
    0x000204fc ldr r3, [r5, r3]                  |     r3 = *((r5 + r3));
    0x00020500 ldr r3, [r3]                      |     r3 = *(0x20570);
    0x00020504 tst r3, 0x2000                    |     
                                                 |     if ((r3 & 0x2000) != 0) {
    0x00020508 beq 0x20554                       |         
    0x0002050c ldr r3, [pc, 0x64]                |         r3 = *(0x20574);
    0x00020510 ldr r3, [r5, r3]                  |         r3 = *((r5 + r3));
    0x00020514 ldr r5, [r3]                      |         r5 = *(0x20574);
    0x00020518 bl 0x8204                         |         getpid ();
    0x0002051c ldr r3, [pc, 0x58]                |         r3 = *(0x20578);
    0x00020520 ldr r1, [pc, 0x58]                |         r1 = *(0x2057c);
    0x00020524 add r3, pc, r3                    |         r3 = pc + r3;
    0x00020528 str r3, [sp]                      |         *(sp) = r3;
    0x0002052c ldr r3, [pc, 0x50]                |         r3 = *(0x20580);
    0x00020530 add r1, pc, r1                    |         r1 = pc + r1;
    0x00020534 add r3, pc, r3                    |         r3 = pc + r3;
    0x00020538 mov r2, r0                        |         r2 = r0;
    0x0002053c mov r0, r5                        |         r0 = r5;
    0x00020540 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00020544 ldr r1, [pc, 0x3c]                |         r1 = *(0x20584);
    0x00020548 mov r0, r4                        |         r0 = r4;
    0x0002054c add r1, pc, r1                    |         r1 = pc + r1;
    0x00020550 bl 0x1f080                        |         fcn_0001f080 (r0);
                                                 |     }
    0x00020554 ldr r0, [r4, 0x38]                |     r0 = *((r4 + 0x38));
    0x00020558 bl 0x917c                         |     close (r0);
    0x0002055c b 0x204d8                         |     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/lib/libmount.so.1.1.0 @ 0x2058c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0002058c ()                  | void fcn_0002058c (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x0002058c push {r1, r2, r3}             |     
    0x00020590 ldr r3, [pc, 0xa4]            |     r3 = *(0x20638);
    0x00020594 push {r0, r1, r2, r4, lr}     |     
    0x00020598 ldr r1, [pc, 0xa0]            |     r1 = *(0x2063c);
    0x0002059c add r3, pc, r3                |     r3 = pc + r3;
    0x000205a0 subs r2, r0, 0                |     r2 = r0 - 0;
    0x000205a4 ldr r4, [r3, r1]              |     r4 = *(0x20638);
                                             |     if (r2 != r0) {
    0x000205a8 beq 0x205d0                   |         
    0x000205ac ldr r1, [pc, 0x90]            |         r1 = *(0x20640);
    0x000205b0 ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x000205b4 ldr r3, [r3]                  |         r3 = *(r3);
    0x000205b8 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x000205bc bne 0x205d0                   |             goto label_1;
                                             |         }
    0x000205c0 ldr r1, [pc, 0x80]            |         r1 = *(0x20644);
    0x000205c4 ldr r0, [r4]                  |         r0 = *(r4);
    0x000205c8 add r1, pc, r1                |         r1 = pc + r1;
    0x000205cc bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x000205d0 add r2, sp, 0x18              |     r2 += var_18h;
    0x000205d4 ldr r1, [sp, 0x14]            |     r1 = format;
    0x000205d8 ldr r0, [r4]                  |     r0 = *(r4);
    0x000205dc str r2, [sp, 4]               |     var_4h = r2;
    0x000205e0 bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x000205e4 ldr r1, [r4]                  |     r1 = *(r4);
    0x000205e8 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x000205ec cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000205f0 beq 0x20630                   |         goto label_2;
                                             |     }
    0x000205f4 ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x000205f8 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x000205fc cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00020600 bhs 0x20624                   |         goto label_3;
                                             |     }
    0x00020604 add r2, r3, 1                 |     r2 = r3 + 1;
    0x00020608 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x0002060c mov r2, 0xa                   |     r2 = 0xa;
    0x00020610 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x00020614 add sp, sp, 0xc               |         
    0x00020618 pop {r4, lr}                  |         
    0x0002061c add sp, sp, 0xc               |         
    0x00020620 bx lr                         |         return;
                                             | label_3:
    0x00020624 mov r0, 0xa                   |         r0 = 0xa;
    0x00020628 bl 0x91dc                     |         fputc_unlocked ();
    0x0002062c b 0x20614                     |         
                                             |     } while (1);
                                             | label_2:
    0x00020630 mov r0, 0xa                   |     r0 = 0xa;
    0x00020634 bl 0x8ea0                     |     fputc (r0, r1);
    0x00020638 b 0x20614                     |     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/lib/libmount.so.1.1.0 @ 0x2064c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002064c ()                                  | void fcn_0002064c (int32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     char * format;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0002064c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00020650 ldr r7, [pc, 0x1c8]                           |     r7 = *(0x2081c);
    0x00020654 subs r5, r0, 0                                |     r5 = r0 - 0;
    0x00020658 add r7, pc, r7                                |     r7 = pc + r7;
    0x0002065c sub sp, sp, 0x1c                              |     
                                                             |     if (r5 != r0) {
    0x00020660 bne 0x20684                                   |         goto label_1;
                                                             |     }
    0x00020664 ldr r3, [pc, 0x1b8]                           |     r3 = *(0x20820);
    0x00020668 ldr r1, [pc, 0x1b8]                           |     r1 = *(0x20824);
    0x0002066c ldr r0, [pc, 0x1b8]                           |     r0 = *(0x20828);
    0x00020670 ldr r2, [pc, 0x1b8]                           |     r2 = *(0x2082c);
    0x00020674 add r3, pc, r3                                |     r3 = pc + r3;
    0x00020678 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002067c add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
    0x00020680 bl 0x908c                                     |         assert ();
                                                             | label_1:
    0x00020684 cmp r1, 0                                     |         
    0x00020688 mov sb, r1                                    |         sb = r1;
                                                             |         if (r1 != 0) {
    0x0002068c bne 0x206b0                                   |             goto label_2;
                                                             |         }
    0x00020690 ldr r3, [pc, 0x19c]                           |         r3 = *(0x20830);
    0x00020694 ldr r1, [pc, 0x19c]                           |         r1 = *(0x20834);
    0x00020698 ldr r0, [pc, 0x19c]                           |         r0 = *(0x20838);
    0x0002069c add r3, pc, r3                                |         r3 = pc + r3;
    0x000206a0 ldr r2, [pc, 0x198]                           |         r2 = *(0x2083c);
    0x000206a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000206a8 add r0, pc, r0                                |         r0 = pc + r0;
    0x000206ac b 0x20680                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x000206b0 cmp r3, 0                                     |     
    0x000206b4 mov r6, r3                                    |     r6 = r3;
                                                             |     if (r3 == 0) {
    0x000206b8 movne r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x000206bc strne r3, [r6]                                |         *(r6) = r3;
                                                             |     }
    0x000206c0 ldr r3, [pc, 0x17c]                           |     r3 = *(0x20840);
    0x000206c4 ldr r4, [r5, 0x48]                            |     r4 = *((r5 + 0x48));
    0x000206c8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000206cc str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000206d0 ldr r3, [pc, 0x170]                           |     r3 = *(0x20844);
    0x000206d4 mov fp, r2                                    |     
    0x000206d8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000206dc str r3, [sp, 0x10]                            |     format = r3;
    0x000206e0 ldr r3, [pc, 0x164]                           |     r3 = *(0x20848);
    0x000206e4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000206e8 str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             | label_0:
    0x000206ec add r3, r5, 0x48                              |     r3 = r5 + 0x48;
    0x000206f0 cmp r4, r3                                    |     
                                                             |     if (r4 != r3) {
    0x000206f4 moveq r8, 0                                   |         r8 = 0;
                                                             |     }
                                                             |     if (r4 == r3) {
    0x000206f8 beq 0x20800                                   |         goto label_3;
                                                             |     }
    0x000206fc ldr r3, [pc, 0x14c]                           |     r3 = *(0x2084c);
    0x00020700 ldr sl, [r7, r3]                              |     sl = *((r7 + r3));
    0x00020704 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00020708 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002070c beq 0x20760                                   |         goto label_4;
                                                             |     }
    0x00020710 ldr r3, [pc, 0x13c]                           |     r3 = *(0x20850);
    0x00020714 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00020718 ldr r8, [r3]                                  |     r8 = *(0x20850);
    0x0002071c bl 0x8204                                     |     getpid ();
    0x00020720 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00020724 ldr r1, [sp, 0x10]                            |     r1 = format;
    0x00020728 str r3, [sp]                                  |     *(sp) = r3;
    0x0002072c ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00020730 mov r2, r0                                    |     r2 = r0;
    0x00020734 mov r0, r8                                    |     r0 = r8;
    0x00020738 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0002073c ldr r2, [r4, -4]                              |     r2 = *((r4 - 4));
    0x00020740 tst r2, 0x4000                                |     
                                                             |     if ((r2 & 0x4000) != 0) {
    0x00020744 bne 0x2080c                                   |         goto label_5;
                                                             |     }
    0x00020748 ldr r3, [pc, 0x108]                           |     r3 = *(0x20854);
    0x0002074c add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     do {
    0x00020750 ldr r1, [pc, 0x104]                           |         r1 = *(0x20858);
    0x00020754 mov r0, r5                                    |         r0 = r5;
    0x00020758 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002075c bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             | label_4:
    0x00020760 ldr r1, [r4, -4]                              |         r1 = *((r4 - 4));
    0x00020764 ldr r0, [pc, 0xf4]                            |         r0 = *(0x2085c);
    0x00020768 mov r2, 0                                     |         r2 = 0;
    0x0002076c and r3, fp, 0x8000                            |         r3 = fp & fcn.00008000;
    0x00020770 orr r3, r3, r1                                |         r3 |= r1;
    0x00020774 str r2, [sp]                                  |         *(sp) = r2;
    0x00020778 mov r1, sb                                    |         r1 = sb;
    0x0002077c add r0, pc, r0                                |         r0 = pc + r0;
    0x00020780 bl 0x8c9c                                     |         r0 = mount ();
    0x00020784 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 == r0) {
    0x00020788 beq 0x20818                                   |             goto label_6;
                                                             |         }
    0x0002078c cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x00020790 beq 0x207a4                                   |             
    0x00020794 bl 0x8f6c                                     |             r0 = errno_location ();
    0x00020798 ldr r3, [r0]                                  |             r3 = *(r0);
    0x0002079c rsb r3, r3, 0                                 |             r3 -= ;
    0x000207a0 str r3, [r6]                                  |             *(r6) = r3;
                                                             |         }
    0x000207a4 ldr r3, [sl]                                  |         r3 = *(sl);
    0x000207a8 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x000207ac beq 0x20800                                   |             
    0x000207b0 ldr r3, [pc, 0x9c]                            |             r3 = *(0x20850);
    0x000207b4 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000207b8 ldr r4, [r3]                                  |             r4 = *(0x20850);
    0x000207bc bl 0x8204                                     |             getpid ();
    0x000207c0 ldr r3, [pc, 0x9c]                            |             r3 = *(0x20860);
    0x000207c4 ldr r1, [pc, 0x9c]                            |             r1 = *(0x20864);
    0x000207c8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000207cc str r3, [sp]                                  |             *(sp) = r3;
    0x000207d0 ldr r3, [pc, 0x94]                            |             r3 = *(0x20868);
    0x000207d4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000207d8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000207dc mov r2, r0                                    |             r2 = r0;
    0x000207e0 mov r0, r4                                    |             r0 = r4;
    0x000207e4 bl 0x8798                                     |             r0 = fprintf (r0, r1, r2, r3)
    0x000207e8 bl 0x8f6c                                     |             errno_location ();
    0x000207ec ldr r1, [pc, 0x7c]                            |             r1 = *(0x2086c);
    0x000207f0 add r1, pc, r1                                |             r1 = pc + r1;
    0x000207f4 ldr r2, [r0]                                  |             r2 = *(r0);
    0x000207f8 mov r0, r5                                    |             r0 = r5;
    0x000207fc bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
                                                             | label_3:
    0x00020800 mov r0, r8                                    |         r0 = r8;
    0x00020804 add sp, sp, 0x1c                              |         
    0x00020808 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_5:
    0x0002080c ldr r3, [pc, 0x60]                            |         r3 = *(0x20870);
    0x00020810 add r3, pc, r3                                |         r3 = pc + r3;
    0x00020814 b 0x20750                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x00020818 ldr r4, [r4]                                  |     r4 = *(r4);
    0x0002081c b 0x206ec                                     |     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/lib/libmount.so.1.1.0 @ 0x20878 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00020878 ()                                  | void fcn_00020878 (int32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     FILE * stream;
                                                             |     void * ptr;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_38h_2;
                                                             |     int32_t var_38h_3;
                                                             |     int32_t var_70h;
                                                             |     int32_t var_74h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_0h_4;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00020878 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0002087c ldr r5, [pc, 0xb78]                           |     r5 = *(0x213f8);
    0x00020880 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00020884 add r5, pc, r5                                |     r5 = pc + r5;
    0x00020888 sub sp, sp, 0x74                              |     
                                                             |     if (r4 != r0) {
    0x0002088c bne 0x208b4                                   |         goto label_16;
                                                             |     }
    0x00020890 ldr r3, [pc, 0xb68]                           |     
    0x00020894 ldr r1, [pc, 0xb68]                           |     r1 = *(0x21400);
    0x00020898 ldr r0, [pc, 0xb68]                           |     r0 = *(0x21404);
    0x0002089c ldr r2, [pc, 0xb68]                           |     r2 = *(0x21408);
    0x000208a0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000208a4 add r3, r3, 0x14                              |     r3 = 0x21410;
    0x000208a8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000208ac add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_0:
    0x000208b0 bl 0x908c                                     |         assert ();
                                                             | label_16:
    0x000208b4 ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x000208b8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000208bc bne 0x208e4                                   |             goto label_17;
                                                             |         }
    0x000208c0 ldr r3, [pc, 0xb48]                           |         
    0x000208c4 ldr r1, [pc, 0xb48]                           |         r1 = *(0x21410);
    0x000208c8 ldr r0, [pc, 0xb48]                           |         r0 = *(0x21414);
    0x000208cc add r3, pc, r3                                |         r3 = pc + r3;
    0x000208d0 add r3, r3, 0x14                              |         r3 = 0x21420;
    0x000208d4 ldr r2, [pc, 0xb40]                           |         r2 = *(0x21418);
    0x000208d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000208dc add r0, pc, r0                                |         r0 = pc + r0;
    0x000208e0 b 0x208b0                                     |         
                                                             |     } while (1);
                                                             | label_17:
    0x000208e4 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x000208e8 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x000208ec bne 0x20914                                   |         
    0x000208f0 ldr r3, [pc, 0xb28]                           |         
    0x000208f4 ldr r1, [pc, 0xb28]                           |         r1 = *(0x21420);
    0x000208f8 ldr r0, [pc, 0xb28]                           |         r0 = *(0x21424);
    0x000208fc add r3, pc, r3                                |         r3 = pc + r3;
    0x00020900 add r3, r3, 0x14                              |         r3 = 0x21430;
    0x00020904 ldr r2, [pc, 0xb20]                           |         r2 = *(0x21428);
    0x00020908 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002090c add r0, pc, r0                                |         r0 = pc + r0;
    0x00020910 b 0x208b0                                     |         goto label_0;
                                                             |     }
    0x00020914 cmp r1, 0                                     |     
    0x00020918 mov r7, r1                                    |     r7 = r1;
    0x0002091c bne 0x20b38                                   |     
                                                             |     while (r3 != 0) {
                                                             | label_1:
    0x00020920 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00020924 ldr r6, [r4, 0x3c]                            |         r6 = *((r4 + 0x3c));
    0x00020928 bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x0002092c mov sb, r0                                    |         sb = r0;
    0x00020930 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00020934 bl 0x81d4                                     |         fcn_000081d4 ();
    0x00020938 ldr r3, [r4, 0x70]                            |         r3 = *((r4 + 0x70));
    0x0002093c cmp r3, 0                                     |         
    0x00020940 mov r8, r0                                    |         r8 = r0;
                                                             |         if (r3 != 0) {
    0x00020944 bne 0x20b68                                   |             goto label_18;
                                                             |         }
    0x00020948 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0002094c mvneq sb, 0x15                                |             sb = ~0x15;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00020950 beq 0x20b5c                                   |             goto label_2;
                                                             |         }
    0x00020954 ldr r3, [pc, 0xad4]                           |         r3 = *(0x2142c);
    0x00020958 cmp sb, 0                                     |         
    0x0002095c ldr sl, [r5, r3]                              |         sl = *((r5 + r3));
                                                             |         if (sb == 0) {
    0x00020960 bne 0x209c0                                   |             
    0x00020964 ldr r3, [sl]                                  |             r3 = *(sl);
    0x00020968 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) == 0) {
    0x0002096c beq 0x2131c                                   |                 goto label_19;
                                                             |             }
    0x00020970 ldr r3, [pc, 0xabc]                           |             r3 = *(0x21430);
    0x00020974 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00020978 ldr sb, [r3]                                  |             sb = *(0x21430);
    0x0002097c bl 0x8204                                     |             getpid ();
    0x00020980 ldr r3, [pc, 0xab0]                           |             r3 = *(0x21434);
    0x00020984 ldr r1, [pc, 0xab0]                           |             r1 = *(0x21438);
    0x00020988 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002098c str r3, [sp]                                  |             *(sp) = r3;
    0x00020990 ldr r3, [pc, 0xaa8]                           |             r3 = *(0x2143c);
    0x00020994 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020998 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002099c mov r2, r0                                    |             r2 = r0;
    0x000209a0 mov r0, sb                                    |             r0 = sb;
    0x000209a4 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000209a8 ldr r1, [pc, 0xa94]                           |             r1 = *(0x21440);
    0x000209ac mov r0, r4                                    |             r0 = r4;
    0x000209b0 add r1, pc, r1                                |             r1 = pc + r1;
    0x000209b4 bl 0x2058c                                    |             fcn_0002058c (r0);
    0x000209b8 ldr sb, [pc, 0xa88]                           |             sb = *(0x21444);
    0x000209bc add sb, pc, sb                                |             sb = pc + sb;
                                                             |         }
                                                             | label_11:
    0x000209c0 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x000209c4 orrne r6, r6, 0x8000                          |             r6 |= fcn.00008000;
                                                             |         }
                                                             |         if (r7 == 0) {
    0x000209c8 movne fp, r7                                  |             
                                                             |         }
                                                             |         if (r7 == 0) {
    0x000209cc bne 0x209dc                                   |             
    0x000209d0 ldr r0, [r4, 0x10]                            |             r0 = *((r4 + 0x10));
    0x000209d4 bl 0x8de0                                     |             r0 = fcn_00008de0 ();
    0x000209d8 mov fp, r0                                    |             
                                                             |         }
    0x000209dc ldr r3, [sl]                                  |         r3 = *(sl);
    0x000209e0 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x000209e4 beq 0x20a70                                   |             
    0x000209e8 ldr r3, [pc, 0xa44]                           |             
    0x000209ec ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x000209f0 ldr r3, [r3]                                  |             r3 = *(0x21430);
    0x000209f4 str r3, [sp, 0x14]                            |             stream = r3;
    0x000209f8 bl 0x8204                                     |             getpid ();
    0x000209fc ldr r3, [pc, 0xa48]                           |             r3 = *(0x21448);
    0x00020a00 ldr r1, [pc, 0xa48]                           |             r1 = *(0x2144c);
    0x00020a04 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020a08 str r3, [sp]                                  |             *(sp) = r3;
    0x00020a0c ldr r3, [pc, 0xa40]                           |             r3 = *(0x21450);
    0x00020a10 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020a14 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020a18 mov r2, r0                                    |             r2 = r0;
    0x00020a1c ldr r0, [sp, 0x14]                            |             r0 = stream;
    0x00020a20 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00020a24 mov r0, r4                                    |             r0 = r4;
    0x00020a28 bl 0x83c0                                     |             r0 = fcn_000083c0 ();
    0x00020a2c cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00020a30 beq 0x21328                                   |                 goto label_20;
                                                             |             }
    0x00020a34 ldr r2, [pc, 0xa1c]                           |             r2 = *(0x21454);
    0x00020a38 add r2, pc, r2                                |             r2 = pc + r2;
                                                             | label_12:
    0x00020a3c ldr r3, [r4, 0x40]                            |             r3 = *((r4 + 0x40));
    0x00020a40 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00020a44 beq 0x21334                                   |                 goto label_21;
                                                             |             }
    0x00020a48 ldr r3, [pc, 0xa0c]                           |             r3 = *(0x21458);
    0x00020a4c add r3, pc, r3                                |             r3 = pc + r3;
                                                             | label_13:
    0x00020a50 ldr r1, [pc, 0xa08]                           |             r1 = *(0x2145c);
    0x00020a54 str r3, [sp, 0xc]                             |             var_ch = r3;
    0x00020a58 str r6, [sp, 8]                               |             var_8h = r6;
    0x00020a5c stm sp, {r8, fp}                              |             *(sp) = r8;
                                                             |             *((sp + 4)) = fp;
    0x00020a60 mov r3, sb                                    |             r3 = sb;
    0x00020a64 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020a68 mov r0, r4                                    |             r0 = r4;
    0x00020a6c bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x00020a70 mov r0, r4                                    |         r0 = r4;
    0x00020a74 bl 0x83c0                                     |         r0 = fcn_000083c0 ();
    0x00020a78 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00020a7c movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00020a80 strne r3, [r4, 0x8c]                          |             *((r4 + 0x8c)) = r3;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00020a84 bne 0x213c4                                   |             goto label_22;
                                                             |         }
    0x00020a88 mov r0, r4                                    |         r0 = r4;
    0x00020a8c bl 0x1b67c                                    |         r0 = fcn_0001b67c (r0);
    0x00020a90 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00020a94 addne r3, r4, 0x8c                            |             r3 = r4 + 0x8c;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00020a98 bne 0x213ac                                   |             goto label_23;
                                                             |         }
    0x00020a9c ldr r3, [r4, 0x40]                            |         r3 = *((r4 + 0x40));
    0x00020aa0 mov r2, fp                                    |         r2 = fp;
    0x00020aa4 str r3, [sp]                                  |         *(sp) = r3;
    0x00020aa8 mov r1, r8                                    |         r1 = r8;
    0x00020aac mov r3, r6                                    |         r3 = r6;
    0x00020ab0 mov r0, sb                                    |         r0 = sb;
    0x00020ab4 bl 0x8c9c                                     |         r0 = mount ();
    0x00020ab8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00020abc beq 0x21340                                   |             goto label_24;
                                                             |         }
    0x00020ac0 bl 0x8f6c                                     |         r0 = errno_location ();
    0x00020ac4 ldr r3, [r0]                                  |         r3 = *(r0);
    0x00020ac8 rsb r3, r3, 0                                 |         r3 -= ;
    0x00020acc str r3, [r4, 0x8c]                            |         *((r4 + 0x8c)) = r3;
    0x00020ad0 ldr r3, [sl]                                  |         r3 = *(sl);
    0x00020ad4 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00020ad8 beq 0x20b2c                                   |             
    0x00020adc ldr r3, [pc, 0x950]                           |             r3 = *(0x21430);
    0x00020ae0 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00020ae4 ldr r5, [r3]                                  |             r5 = *(0x21430);
    0x00020ae8 bl 0x8204                                     |             getpid ();
    0x00020aec ldr r3, [pc, 0x970]                           |             r3 = *(0x21460);
    0x00020af0 ldr r1, [pc, 0x970]                           |             r1 = *(0x21464);
    0x00020af4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020af8 str r3, [sp]                                  |             *(sp) = r3;
    0x00020afc ldr r3, [pc, 0x968]                           |             r3 = *(0x21468);
    0x00020b00 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020b04 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020b08 mov r2, r0                                    |             r2 = r0;
    0x00020b0c mov r0, r5                                    |             r0 = r5;
    0x00020b10 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00020b14 ldr r2, [r4, 0x8c]                            |             r2 = *((r4 + 0x8c));
    0x00020b18 ldr r1, [pc, 0x950]                           |             r1 = *(0x2146c);
    0x00020b1c rsb r2, r2, 0                                 |             r2 -= ;
    0x00020b20 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020b24 mov r0, r4                                    |             r0 = r4;
    0x00020b28 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x00020b2c ldr sb, [r4, 0x8c]                            |         sb = *((r4 + 0x8c));
    0x00020b30 rsb sb, sb, 0                                 |         sb -= ;
    0x00020b34 b 0x20b5c                                     |         goto label_2;
    0x00020b38 ldr r3, [r4, 0x70]                            |         r3 = *((r4 + 0x70));
    0x00020b3c cmp r3, 0                                     |         
    0x00020b40 bne 0x20920                                   |         
                                                             |     }
    0x00020b44 mov r2, r1                                    |     r2 = r1;
    0x00020b48 ldr r1, [pc, 0x924]                           |     r1 = *(0x21470);
    0x00020b4c add r1, pc, r1                                |     r1 = pc + r1;
    0x00020b50 bl 0x1c654                                    |     r0 = fcn_0001c654 (r0, r1);
    0x00020b54 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x00020b58 beq 0x20920                                   |         goto label_1;
                                                             |     }
                                                             |     do {
                                                             | label_2:
    0x00020b5c mov r0, sb                                    |         r0 = sb;
    0x00020b60 add sp, sp, 0x74                              |         
    0x00020b64 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_18:
    0x00020b68 mov r3, 0                                     |         r3 = 0;
    0x00020b6c mov r0, r4                                    |         r0 = r4;
    0x00020b70 str r3, [sp, 0x18]                            |         ptr = r3;
    0x00020b74 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00020b78 bl 0x84bc                                     |         fcn_000084bc ();
    0x00020b7c ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x00020b80 cmp r3, 0                                     |         
    0x00020b84 mov sb, r0                                    |         sb = r0;
                                                             |         if (r3 == 0) {
    0x00020b88 bne 0x20bb0                                   |             
    0x00020b8c ldr r3, [pc, 0x8e4]                           |             
    0x00020b90 ldr r1, [pc, 0x8e4]                           |             r1 = *(0x21478);
    0x00020b94 ldr r0, [pc, 0x8e4]                           |             r0 = *(0x2147c);
    0x00020b98 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020b9c add r3, r3, 0x1d                              |             r3 = 0x21491;
    0x00020ba0 ldr r2, [pc, 0x8dc]                           |             r2 = *(0x21480);
    0x00020ba4 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020ba8 add r0, pc, r0                                |             r0 = pc + r0;
    0x00020bac b 0x208b0                                     |             goto label_0;
                                                             |         }
    0x00020bb0 ldr r3, [r4, 0x70]                            |         r3 = *((r4 + 0x70));
    0x00020bb4 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00020bb8 bne 0x20be0                                   |             
    0x00020bbc ldr r3, [pc, 0x8c4]                           |             
    0x00020bc0 ldr r1, [pc, 0x8c4]                           |             r1 = *(0x21488);
    0x00020bc4 ldr r0, [pc, 0x8c4]                           |             r0 = *(0x2148c);
    0x00020bc8 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020bcc add r3, r3, 0x1d                              |             r3 = 0x214a1;
    0x00020bd0 mov r2, 0x268                                 |             r2 = 0x268;
    0x00020bd4 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020bd8 add r0, pc, r0                                |             r0 = pc + r0;
    0x00020bdc b 0x208b0                                     |             goto label_0;
                                                             |         }
    0x00020be0 ldr r3, [r4, 0x6c]                            |         r3 = *((r4 + 0x6c));
    0x00020be4 tst r3, 0x400000                              |         
                                                             |         if ((r3 & 0x400000) == 0) {
    0x00020be8 bne 0x20c10                                   |             
    0x00020bec ldr r3, [pc, 0x8a0]                           |             
    0x00020bf0 ldr r1, [pc, 0x8a0]                           |             r1 = *(0x21494);
    0x00020bf4 ldr r0, [pc, 0x8a0]                           |             r0 = *(0x21498);
    0x00020bf8 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020bfc add r3, r3, 0x1d                              |             r3 = 0x214ad;
    0x00020c00 ldr r2, [pc, 0x898]                           |             r2 = *(0x2149c);
    0x00020c04 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020c08 add r0, pc, r0                                |             r0 = pc + r0;
    0x00020c0c b 0x208b0                                     |             goto label_0;
                                                             |         }
    0x00020c10 ldr r3, [pc, 0x818]                           |         r3 = *(0x2142c);
    0x00020c14 ldr r7, [r5, r3]                              |         r7 = *((r5 + r3));
    0x00020c18 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00020c1c tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00020c20 beq 0x20c70                                   |             
    0x00020c24 ldr r3, [pc, 0x808]                           |             r3 = *(0x21430);
    0x00020c28 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00020c2c ldr sl, [r3]                                  |             sl = *(0x21430);
    0x00020c30 bl 0x8204                                     |             getpid ();
    0x00020c34 ldr r3, [pc, 0x868]                           |             r3 = *(0x214a0);
    0x00020c38 ldr r1, [pc, 0x868]                           |             r1 = *(0x214a4);
    0x00020c3c add r3, pc, r3                                |             r3 = pc + r3;
    0x00020c40 str r3, [sp]                                  |             *(sp) = r3;
    0x00020c44 ldr r3, [pc, 0x860]                           |             r3 = *(0x214a8);
    0x00020c48 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020c4c add r3, pc, r3                                |             r3 = pc + r3;
    0x00020c50 mov r2, r0                                    |             r2 = r0;
    0x00020c54 mov r0, sl                                    |             r0 = sl;
    0x00020c58 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00020c5c ldr r1, [pc, 0x84c]                           |             r1 = *(0x214ac);
    0x00020c60 ldr r2, [r4, 0x70]                            |             r2 = *((r4 + 0x70));
    0x00020c64 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020c68 mov r0, r4                                    |             r0 = r4;
    0x00020c6c bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x00020c70 ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x00020c74 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00020c78 bne 0x20ca0                                   |             
    0x00020c7c ldr r3, [pc, 0x830]                           |             
    0x00020c80 ldr r1, [pc, 0x830]                           |             r1 = *(0x214b4);
    0x00020c84 ldr r0, [pc, 0x830]                           |             r0 = *(0x214b8);
    0x00020c88 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020c8c add r3, r3, 0x29                              |             r3 = 0x214d9;
    0x00020c90 ldr r2, [pc, 0x828]                           |             r2 = *(0x214bc);
    0x00020c94 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020c98 add r0, pc, r0                                |             r0 = pc + r0;
    0x00020c9c b 0x208b0                                     |             goto label_0;
                                                             |         }
    0x00020ca0 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00020ca4 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00020ca8 beq 0x20cf4                                   |             
    0x00020cac ldr r3, [pc, 0x780]                           |             r3 = *(0x21430);
    0x00020cb0 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00020cb4 ldr sl, [r3]                                  |             sl = *(0x21430);
    0x00020cb8 bl 0x8204                                     |             getpid ();
    0x00020cbc ldr r3, [pc, 0x800]                           |             r3 = *(0x214c0);
    0x00020cc0 ldr r1, [pc, 0x800]                           |             r1 = *(0x214c4);
    0x00020cc4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020cc8 str r3, [sp]                                  |             *(sp) = r3;
    0x00020ccc ldr r3, [pc, 0x7f8]                           |             r3 = *(0x214c8);
    0x00020cd0 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020cd4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00020cd8 mov r2, r0                                    |             r2 = r0;
    0x00020cdc mov r0, sl                                    |             r0 = sl;
    0x00020ce0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00020ce4 ldr r1, [pc, 0x7e4]                           |             r1 = *(0x214cc);
    0x00020ce8 mov r0, r4                                    |             r0 = r4;
    0x00020cec add r1, pc, r1                                |             r1 = pc + r1;
    0x00020cf0 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x00020cf4 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00020cf8 bl 0x9020                                     |         r0 = fcn_00009020 ();
    0x00020cfc cmp r0, 0                                     |         
    0x00020d00 str r0, [sp, 0x18]                            |         ptr = r0;
                                                             |         if (r0 != 0) {
    0x00020d04 bne 0x20d5c                                   |             goto label_25;
                                                             |         }
                                                             | label_4:
    0x00020d08 mvn sb, 0x15                                  |         sb = ~0x15;
                                                             | label_3:
    0x00020d0c mov r0, r4                                    |         r0 = r4;
    0x00020d10 bl 0x8d14                                     |         r0 = fcn_00008d14 ();
    0x00020d14 cmp r0, 0                                     |         
    0x00020d18 beq 0x20b5c                                   |         
                                                             |     } while (r0 == 0);
    0x00020d1c mov r0, r4                                    |     r0 = r4;
    0x00020d20 bl 0x8504                                     |     r0 = fcn_00008504 ();
    0x00020d24 subs r3, r0, 0                                |     r3 = r0 - 0;
                                                             |     if (r3 != r0) {
    0x00020d28 bne 0x20b5c                                   |         goto label_2;
                                                             |     }
    0x00020d2c ldr r1, [r4, 0x48]                            |     r1 = *((r4 + 0x48));
    0x00020d30 add r2, r4, 0x48                              |     r2 = r4 + 0x48;
    0x00020d34 cmp r1, r2                                    |     
                                                             |     if (r1 == r2) {
    0x00020d38 beq 0x20b5c                                   |         goto label_2;
                                                             |     }
    0x00020d3c mov r2, r6                                    |     r2 = r6;
    0x00020d40 mov r1, r8                                    |     r1 = r8;
    0x00020d44 mov r0, r4                                    |     r0 = r4;
    0x00020d48 bl 0x2064c                                    |     r0 = fcn_0002064c (r0, r1);
    0x00020d4c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00020d50 beq 0x20b5c                                   |         goto label_2;
                                                             |     }
                                                             | label_14:
    0x00020d54 ldr sb, [pc, 0x778]                           |     sb = *(0x000214d4);
    0x00020d58 b 0x20b5c                                     |     goto label_2;
                                                             | label_25:
    0x00020d5c ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x00020d60 tst r3, 0x18                                  |     
                                                             |     if ((r3 & 0x18) != 0) {
    0x00020d64 beq 0x20dbc                                   |         
    0x00020d68 ldr r2, [r4, 0x3c]                            |         r2 = *((r4 + 0x3c));
    0x00020d6c ands r2, r2, 8                                |         r2 &= 8;
                                                             |         if (r2 == r2) {
    0x00020d70 bne 0x20d84                                   |             
    0x00020d74 ldr r1, [pc, 0x75c]                           |             r1 = *(0x214d4);
    0x00020d78 add r0, sp, 0x18                              |             r0 += ptr;
    0x00020d7c add r1, pc, r1                                |             r1 = pc + r1;
    0x00020d80 bl 0x7fdc                                     |             fcn_00007fdc ();
                                                             |         }
    0x00020d84 ldr r2, [r4, 0x3c]                            |         r2 = *((r4 + 0x3c));
    0x00020d88 ands r2, r2, 2                                |         r2 &= 2;
                                                             |         if (r2 == r2) {
    0x00020d8c bne 0x20da0                                   |             
    0x00020d90 ldr r1, [pc, 0x744]                           |             r1 = *(0x214d8);
    0x00020d94 add r0, sp, 0x18                              |             r0 += ptr;
    0x00020d98 add r1, pc, r1                                |             r1 = pc + r1;
    0x00020d9c bl 0x7fdc                                     |             fcn_00007fdc ();
                                                             |         }
    0x00020da0 ldr r2, [r4, 0x3c]                            |         r2 = *((r4 + 0x3c));
    0x00020da4 ands r2, r2, 4                                |         r2 &= 4;
                                                             |         if (r2 != r2) {
    0x00020da8 bne 0x20dbc                                   |             goto label_26;
                                                             |         }
    0x00020dac ldr r1, [pc, 0x72c]                           |         r1 = *(0x214dc);
    0x00020db0 add r0, sp, 0x18                              |         r0 += ptr;
    0x00020db4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00020db8 bl 0x7fdc                                     |         fcn_00007fdc ();
                                                             |     }
                                                             | label_26:
    0x00020dbc ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00020dc0 tst r3, 0x800000                              |     
    0x00020dc4 bne 0x20e5c                                   |     
                                                             |     while (r0 == 0) {
    0x00020dc8 mov r0, 2                                     |         r0 = 2;
    0x00020dcc bl 0x8c60                                     |         fcn_00008c60 ();
    0x00020dd0 add fp, sp, 0x28                              |         
    0x00020dd4 add sl, sp, 0x2c                              |         sl += var_2ch;
    0x00020dd8 str r0, [sp, 0x38]                            |         var_38h = r0;
    0x00020ddc mov r0, 1                                     |         r0 = 1;
    0x00020de0 bl 0x8c60                                     |         fcn_00008c60 ();
    0x00020de4 ldr r3, [sp, 0x18]                            |         r3 = ptr;
    0x00020de8 str r3, [sp, 0x20]                            |         var_20h = r3;
    0x00020dec add r3, sp, 0x24                              |         r3 += var_24h;
    0x00020df0 str r3, [sp, 0x14]                            |         stream = r3;
    0x00020df4 str r0, [sp, 0x3c]                            |         var_3ch = r0;
                                                             | label_5:
    0x00020df8 add r3, sp, 0x30                              |         r3 += var_30h;
    0x00020dfc str r3, [sp]                                  |         *(sp) = r3;
    0x00020e00 mov r2, sl                                    |         r2 = sl;
    0x00020e04 mov r3, fp                                    |         r3 = fp;
    0x00020e08 ldr r1, [sp, 0x14]                            |         r1 = stream;
    0x00020e0c add r0, sp, 0x20                              |         r0 += var_20h;
    0x00020e10 bl 0x83fc                                     |         r0 = fcn_000083fc ();
    0x00020e14 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00020e18 beq 0x20e84                                   |             goto label_27;
                                                             |         }
    0x00020e1c ldr r3, [sb]                                  |         r3 = *(sb);
    0x00020e20 cmn r3, 1                                     |         
                                                             |         if (r3 == 1) {
    0x00020e24 beq 0x20ef8                                   |             goto label_28;
                                                             |         }
    0x00020e28 bl 0x8204                                     |         getpid ();
    0x00020e2c ldr r1, [pc, 0x6b0]                           |         r1 = *(0x214e0);
    0x00020e30 ldr r3, [sb]                                  |         r3 = *(sb);
    0x00020e34 add r1, pc, r1                                |         r1 = pc + r1;
    0x00020e38 mov r2, r0                                    |         r2 = r0;
    0x00020e3c add r0, sp, 0x1c                              |         r0 += var_1ch;
    0x00020e40 bl 0x8d80                                     |         r0 = asprintf ();
    0x00020e44 cmn r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00020e48 bne 0x20ef8                                   |             goto label_28;
                                                             |         }
    0x00020e4c ldr r0, [sp, 0x18]                            |         r0 = ptr;
    0x00020e50 bl 0x91c4                                     |         free (r0);
    0x00020e54 mvn sb, 0xb                                   |         sb = ~0xb;
    0x00020e58 b 0x20d0c                                     |         goto label_3;
    0x00020e5c ldr r1, [pc, 0x684]                           |         r1 = *(0x214e4);
    0x00020e60 ldr r2, [r4, 0x7c]                            |         r2 = *((r4 + 0x7c));
    0x00020e64 add r1, pc, r1                                |         r1 = pc + r1;
    0x00020e68 add r0, sp, 0x18                              |         r0 += ptr;
    0x00020e6c bl 0x82dc                                     |         r0 = fcn_000082dc ();
    0x00020e70 cmp r0, 0                                     |         
    0x00020e74 beq 0x20dc8                                   |         
                                                             |     }
                                                             | label_6:
    0x00020e78 ldr r0, [sp, 0x18]                            |     r0 = ptr;
    0x00020e7c bl 0x91c4                                     |     free (r0);
    0x00020e80 b 0x20d08                                     |     goto label_4;
                                                             | label_27:
    0x00020e84 add r3, sp, 0x34                              |     r3 += var_34h;
    0x00020e88 str r3, [sp]                                  |     *(sp) = r3;
    0x00020e8c ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00020e90 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00020e94 mov r1, 2                                     |     r1 = 2;
    0x00020e98 add r0, sp, 0x38                              |     r0 += var_38h;
    0x00020e9c bl 0xd750                                     |     fcn_0000d750 (r0, r1, r2);
    0x00020ea0 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00020ea4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00020ea8 beq 0x20df8                                   |         goto label_5;
                                                             |     }
    0x00020eac ldr r2, [r3, 4]                               |     r2 = *((r3 + 4));
    0x00020eb0 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00020eb4 beq 0x20df8                                   |         goto label_5;
                                                             |     }
    0x00020eb8 ldr r3, [r3, 8]                               |     r3 = *((r3 + 8));
    0x00020ebc tst r3, 0x10                                  |     
                                                             |     if ((r3 & 0x10) == 0) {
    0x00020ec0 beq 0x20df8                                   |         goto label_5;
                                                             |     }
    0x00020ec4 ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x00020ec8 ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x00020ecc cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00020ed0 ldrne r3, [sp, 0x30]                          |         r3 = var_30h;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x00020ed4 ldreq r2, [sp, 0x2c]                          |         r2 = var_2ch;
                                                             |     }
                                                             |     if (r2 == 0) {
    0x00020ed8 addne r2, r2, r3                              |         r2 += r3;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x00020edc addeq r2, r1, r2                              |         r2 = r1 + r2;
                                                             |     }
    0x00020ee0 add r0, sp, 0x18                              |     r0 += ptr;
    0x00020ee4 str r1, [sp, 0x20]                            |     var_20h = r1;
    0x00020ee8 bl 0xe1d0                                     |     r0 = fcn_0000e1d0 (r0, r1);
    0x00020eec cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00020ef0 beq 0x20df8                                   |         goto label_5;
                                                             |     }
    0x00020ef4 b 0x20e78                                     |     goto label_6;
                                                             | label_28:
    0x00020ef8 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00020efc bics r3, r3, 2                                |     __asm ("bics r3, r3, 2");
                                                             |     if (r0 != 0) {
    0x00020f00 beq 0x20f14                                   |         
    0x00020f04 ldr r3, [pc, 0x528]                           |         r3 = *(0x21430);
    0x00020f08 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00020f0c ldr r0, [r3]                                  |         r0 = *(0x21430);
    0x00020f10 bl 0x84f8                                     |         r0 = fflush (r0);
                                                             |     }
    0x00020f14 bl 0x8a68                                     |     r0 = fork ();
    0x00020f18 cmn r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00020f1c beq 0x212b4                                   |         goto label_29;
                                                             |     }
    0x00020f20 cmp r0, 0                                     |     
    0x00020f24 add sb, sp, 0x38                              |     sb += var_38h;
                                                             |     if (r0 != 0) {
    0x00020f28 bne 0x211e0                                   |         goto label_30;
                                                             |     }
    0x00020f2c bl 0x7f7c                                     |     getgid ();
    0x00020f30 bl 0x88dc                                     |     r0 = setgid ();
    0x00020f34 cmp r0, 0                                     |     
    0x00020f38 bge 0x20f44                                   |     
                                                             |     while (r0 < 0) {
                                                             | label_7:
    0x00020f3c mov r0, 1                                     |         r0 = 1;
    0x00020f40 bl 0x9038                                     |         r0 = exit (r0);
    0x00020f44 bl 0x8378                                     |         getuid ();
    0x00020f48 bl 0x9134                                     |         r0 = setuid ();
    0x00020f4c cmp r0, 0                                     |         
    0x00020f50 blt 0x20f3c                                   |         
                                                             |     }
    0x00020f54 mov r0, r4                                    |     r0 = r4;
    0x00020f58 bl 0x8258                                     |     r0 = fcn_00008258 ();
    0x00020f5c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00020f60 beq 0x20f3c                                   |         goto label_7;
                                                             |     }
    0x00020f64 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00020f68 bl 0x8de0                                     |     fcn_00008de0 ();
    0x00020f6c ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x00020f70 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00020f74 mov sl, r0                                    |     sl = r0;
    0x00020f78 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00020f7c bl 0x80cc                                     |     fcn_000080cc ();
    0x00020f80 str r0, [sp, 0x3c]                            |     var_3ch = r0;
    0x00020f84 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00020f88 bl 0x81d4                                     |     fcn_000081d4 ();
    0x00020f8c str r0, [sp, 0x40]                            |     var_40h = r0;
    0x00020f90 mov r0, r4                                    |     r0 = r4;
    0x00020f94 bl 0x8528                                     |     r0 = fcn_00008528 ();
    0x00020f98 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00020f9c moveq r6, 3                                   |         r6 = 3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00020fa0 ldrne r3, [pc, 0x544]                         |         r3 = *((pc + 0x544));
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00020fa4 movne r6, 4                                   |         r6 = 4;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00020fa8 addne r3, pc, r3                              |         r3 = pc + r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00020fac strne r3, [sp, 0x44]                          |         var_44h = r3;
                                                             |     }
    0x00020fb0 mov r0, r4                                    |     r0 = r4;
    0x00020fb4 bl 0x83c0                                     |     r0 = fcn_000083c0 ();
    0x00020fb8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00020fbc beq 0x20fd8                                   |         
    0x00020fc0 ldr r2, [pc, 0x528]                           |         r2 = *(0x214ec);
    0x00020fc4 add r3, sp, 0x70                              |         r3 += var_70h;
    0x00020fc8 add r3, r3, r6, lsl 2                         |         r3 += (r6 << 2);
    0x00020fcc add r2, pc, r2                                |         r2 = pc + r2;
    0x00020fd0 add r6, r6, 1                                 |         r6++;
    0x00020fd4 str r2, [r3, -0x38]                           |         var_38h_2 = r2;
                                                             |     }
    0x00020fd8 mov r0, r4                                    |     r0 = r4;
    0x00020fdc bl 0x88c4                                     |     r0 = fcn_000088c4 ();
    0x00020fe0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00020fe4 beq 0x21000                                   |         
    0x00020fe8 ldr r2, [pc, 0x504]                           |         r2 = *(0x214f0);
    0x00020fec add r3, sp, 0x70                              |         r3 += var_70h;
    0x00020ff0 add r3, r3, r6, lsl 2                         |         r3 += (r6 << 2);
    0x00020ff4 add r2, pc, r2                                |         r2 = pc + r2;
    0x00020ff8 add r6, r6, 1                                 |         r6++;
    0x00020ffc str r2, [r3, -0x38]                           |         var_38h_2 = r2;
                                                             |     }
    0x00021000 mov r0, r4                                    |     r0 = r4;
    0x00021004 bl 0x9074                                     |     r0 = fcn_00009074 ();
    0x00021008 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002100c beq 0x21028                                   |         
    0x00021010 ldr r2, [pc, 0x4e0]                           |         r2 = *(0x214f4);
    0x00021014 add r3, sp, 0x70                              |         r3 += var_70h;
    0x00021018 add r3, r3, r6, lsl 2                         |         r3 += (r6 << 2);
    0x0002101c add r2, pc, r2                                |         r2 = pc + r2;
    0x00021020 add r6, r6, 1                                 |         r6++;
    0x00021024 str r2, [r3, -0x38]                           |         var_38h_2 = r2;
                                                             |     }
    0x00021028 ldr r2, [sp, 0x18]                            |     r2 = ptr;
    0x0002102c cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00021030 beq 0x2105c                                   |         
    0x00021034 ldr r0, [pc, 0x4c0]                           |         r0 = *(0x214f8);
    0x00021038 add r1, sp, 0x70                              |         r1 += var_70h;
    0x0002103c add r1, r1, r6, lsl 2                         |         r1 += (r6 << 2);
    0x00021040 add r0, pc, r0                                |         r0 = pc + r0;
    0x00021044 add r3, r6, 1                                 |         r3 = r6 + 1;
    0x00021048 str r0, [r1, -0x38]                           |         var_38h_2 = r0;
    0x0002104c add r1, sp, 0x70                              |         r1 += var_70h;
    0x00021050 add r3, r1, r3, lsl 2                         |         r3 = r1 + (r3 << 2);
    0x00021054 add r6, r6, 2                                 |         r6 += 2;
    0x00021058 str r2, [r3, -0x38]                           |         var_38h_3 = r2;
                                                             |     }
    0x0002105c cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00021060 beq 0x210f8                                   |         goto label_31;
                                                             |     }
    0x00021064 mov r1, 0x2e                                  |     r1 = 0x2e;
    0x00021068 mov r0, sl                                    |     r0 = sl;
    0x0002106c bl 0x90a4                                     |     r0 = strchr (r0, r1);
    0x00021070 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00021074 beq 0x210f8                                   |         goto label_31;
                                                             |     }
    0x00021078 ldr fp, [r4, 0x70]                            |     fp = *((r4 + 0x70));
    0x0002107c cmp fp, 0                                     |     
                                                             |     if (fp != 0) {
    0x00021080 moveq r8, fp                                  |         r8 = fp;
                                                             |     }
                                                             |     if (fp != 0) {
    0x00021084 beq 0x21094                                   |         
    0x00021088 mov r0, fp                                    |         r0 = fp;
    0x0002108c bl 0x905c                                     |         r0 = strlen (r0);
    0x00021090 mov r8, r0                                    |         r8 = r0;
                                                             |     }
    0x00021094 mov r0, sl                                    |     r0 = sl;
    0x00021098 bl 0x905c                                     |     r0 = strlen (r0);
    0x0002109c subs r2, r0, 0                                |     r2 = r0 - 0;
                                                             |     if (r2 != r0) {
    0x000210a0 bne 0x210d8                                   |         goto label_32;
                                                             |     }
    0x000210a4 cmn fp, r8                                    |     
                                                             |     if (fp != r8) {
    0x000210a8 bne 0x210f8                                   |         goto label_31;
                                                             |     }
                                                             |     do {
                                                             | label_8:
    0x000210ac ldr r1, [pc, 0x44c]                           |         r1 = *(0x214fc);
    0x000210b0 add r2, sp, 0x70                              |         r2 += var_70h;
    0x000210b4 add r2, r2, r6, lsl 2                         |         r2 += (r6 << 2);
    0x000210b8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000210bc add r3, r6, 1                                 |         r3 = r6 + 1;
    0x000210c0 str r1, [r2, -0x38]                           |         var_38h_2 = r1;
    0x000210c4 add r2, sp, 0x70                              |         r2 += var_70h;
    0x000210c8 add r3, r2, r3, lsl 2                         |         r3 = r2 + (r3 << 2);
    0x000210cc add r6, r6, 2                                 |         r6 += 2;
    0x000210d0 str sl, [r3, -0x38]                           |         var_38h_3 = sl;
    0x000210d4 b 0x210f8                                     |         goto label_31;
                                                             | label_32:
    0x000210d8 cmp r2, r8                                    |         
    0x000210dc bhi 0x210ac                                   |         
                                                             |     } while (r2 > r8);
    0x000210e0 sub r8, r8, r2                                |     r8 -= r2;
    0x000210e4 mov r1, sl                                    |     r1 = sl;
    0x000210e8 add r0, fp, r8                                |     r0 = fp + r8;
    0x000210ec bl 0x8a2c                                     |     r0 = memcmp (r0, r1, r2);
    0x000210f0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000210f4 bne 0x210ac                                   |         goto label_8;
                                                             |     }
                                                             | label_31:
    0x000210f8 ldr r2, [sp, 0x1c]                            |     r2 = var_1ch;
    0x000210fc cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00021100 beq 0x2112c                                   |         
    0x00021104 ldr r0, [pc, 0x3f8]                           |         r0 = *(0x21500);
    0x00021108 add r1, sp, 0x70                              |         r1 += var_70h;
    0x0002110c add r1, r1, r6, lsl 2                         |         r1 += (r6 << 2);
    0x00021110 add r0, pc, r0                                |         r0 = pc + r0;
    0x00021114 add r3, r6, 1                                 |         r3 = r6 + 1;
    0x00021118 str r0, [r1, -0x38]                           |         var_38h_2 = r0;
    0x0002111c add r1, sp, 0x70                              |         r1 += var_70h;
    0x00021120 add r3, r1, r3, lsl 2                         |         r3 = r1 + (r3 << 2);
    0x00021124 add r6, r6, 2                                 |         r6 += 2;
    0x00021128 str r2, [r3, -0x38]                           |         var_38h_3 = r2;
                                                             |     }
    0x0002112c add r3, sp, 0x70                              |     r3 += var_70h;
    0x00021130 add r3, r3, r6, lsl 2                         |     r3 += (r6 << 2);
    0x00021134 mov r6, 0                                     |     r6 = 0;
    0x00021138 str r6, [r3, -0x38]                           |     var_38h_2 = r6;
    0x0002113c ldr r8, [pc, 0x3c4]                           |     r8 = *(0x21504);
    0x00021140 ldr r3, [pc, 0x3c4]                           |     r3 = *(0x21508);
    0x00021144 ldr sl, [pc, 0x3c4]                           |     sl = *(0x2150c);
    0x00021148 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002114c add r8, pc, r8                                |     r8 = pc + r8;
    0x00021150 add sl, pc, sl                                |     sl = pc + sl;
    0x00021154 str r3, [sp, 0x14]                            |     stream = r3;
                                                             |     do {
    0x00021158 ldr r2, [sb, r6, lsl 2]                       |         offset_0 = r6 << 2;
                                                             |         r2 = *((sb + offset_0));
    0x0002115c ldr r3, [r7]                                  |         r3 = *(r7);
    0x00021160 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00021164 bne 0x21190                                   |             
    0x00021168 bics r3, r3, 2                                |             __asm ("bics r3, r3, 2");
                                                             |             if (r2 != 0) {
    0x0002116c beq 0x21180                                   |                 
    0x00021170 ldr r3, [pc, 0x2bc]                           |                 r3 = *(0x21430);
    0x00021174 ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x00021178 ldr r0, [r3]                                  |                 r0 = *(0x21430);
    0x0002117c bl 0x84f8                                     |                 fflush (r0);
                                                             |             }
    0x00021180 mov r1, sb                                    |             r1 = sb;
    0x00021184 ldr r0, [r4, 0x70]                            |             r0 = *((r4 + 0x70));
    0x00021188 bl 0x8a80                                     |             execv ();
    0x0002118c b 0x20f3c                                     |             goto label_7;
                                                             |         }
    0x00021190 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00021194 beq 0x211d8                                   |             
    0x00021198 ldr r3, [pc, 0x294]                           |             r3 = *(0x21430);
    0x0002119c ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x000211a0 ldr fp, [r3]                                  |             fp = *(0x21430);
    0x000211a4 bl 0x8204                                     |             getpid ();
    0x000211a8 ldr r3, [sp, 0x14]                            |             r3 = stream;
    0x000211ac mov r1, r8                                    |             r1 = r8;
    0x000211b0 str sl, [sp]                                  |             *(sp) = sl;
    0x000211b4 mov r2, r0                                    |             r2 = r0;
    0x000211b8 mov r0, fp                                    |             r0 = fp;
    0x000211bc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000211c0 ldr r1, [pc, 0x34c]                           |             r1 = *(0x21510);
    0x000211c4 ldr r3, [sb, r6, lsl 2]                       |             offset_1 = r6 << 2;
                                                             |             r3 = *((sb + offset_1));
    0x000211c8 mov r2, r6                                    |             r2 = r6;
    0x000211cc add r1, pc, r1                                |             r1 = pc + r1;
    0x000211d0 mov r0, r4                                    |             r0 = r4;
    0x000211d4 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x000211d8 add r6, r6, 1                                 |         r6++;
    0x000211dc b 0x21158                                     |         
                                                             |     } while (1);
                                                             | label_30:
    0x000211e0 mov r2, 0                                     |     r2 = 0;
    0x000211e4 mov r1, sb                                    |     r1 = sb;
    0x000211e8 bl 0x7ee0                                     |     r0 = waitpid ();
    0x000211ec cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x000211f0 bne 0x21284                                   |         goto label_33;
                                                             |     }
    0x000211f4 str r0, [r4, 0x74]                            |     *((r4 + 0x74)) = r0;
    0x000211f8 bl 0x8f6c                                     |     r0 = errno_location ();
    0x000211fc ldr sb, [r0]                                  |     sb = *(r0);
    0x00021200 rsb sb, sb, 0                                 |     sb -= ;
                                                             |     do {
    0x00021204 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00021208 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0002120c beq 0x21278                                   |             
    0x00021210 ldr r3, [pc, 0x21c]                           |             r3 = *(0x21430);
    0x00021214 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00021218 ldr r5, [r3]                                  |             r5 = *(0x21430);
    0x0002121c bl 0x8204                                     |             getpid ();
    0x00021220 ldr r3, [pc, 0x2f0]                           |             r3 = *(0x21514);
    0x00021224 ldr r1, [pc, 0x2f0]                           |             r1 = *(0x21518);
    0x00021228 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002122c str r3, [sp]                                  |             *(sp) = r3;
    0x00021230 ldr r3, [pc, 0x2e8]                           |             r3 = *(0x2151c);
    0x00021234 add r1, pc, r1                                |             r1 = pc + r1;
    0x00021238 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002123c mov r2, r0                                    |             r2 = r0;
    0x00021240 mov r0, r5                                    |             r0 = r5;
    0x00021244 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00021248 cmp sb, 0                                     |             
    0x0002124c ldr r2, [r4, 0x70]                            |             r2 = *((r4 + 0x70));
    0x00021250 ldr r3, [r4, 0x74]                            |             r3 = *((r4 + 0x74));
                                                             |             if (sb == 0) {
    0x00021254 beq 0x212a8                                   |                 goto label_34;
                                                             |             }
    0x00021258 ldr r1, [pc, 0x2c4]                           |             r1 = *(0x21520);
    0x0002125c add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_9:
    0x00021260 str r1, [sp, 4]                               |             var_4h = r1;
    0x00021264 ldr r1, [pc, 0x2bc]                           |             r1 = *(0x21524);
    0x00021268 str sb, [sp]                                  |             *(sp) = sb;
    0x0002126c add r1, pc, r1                                |             r1 = pc + r1;
    0x00021270 mov r0, r4                                    |             r0 = r4;
    0x00021274 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
                                                             | label_10:
    0x00021278 ldr r0, [sp, 0x18]                            |         r0 = ptr;
    0x0002127c bl 0x91c4                                     |         free (r0);
    0x00021280 b 0x20d0c                                     |         goto label_3;
                                                             | label_33:
    0x00021284 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00021288 mov sb, 0                                     |         sb = 0;
    0x0002128c tst r3, 0x7f                                  |         
    0x00021290 asreq r3, r3, 8                               |         __asm ("asreq r3, r3, 8");
                                                             |         if ((r3 & 0x7f) != 0) {
    0x00021294 andeq r3, r3, 0xff                            |             r3 &= 0xff;
                                                             |         }
                                                             |         if ((r3 & 0x7f) == 0) {
    0x00021298 mvnne r3, 0                                   |             r3 = ~0;
                                                             |         }
    0x0002129c str r3, [r4, 0x74]                            |         *((r4 + 0x74)) = r3;
    0x000212a0 str sb, [r4, 0x78]                            |         *((r4 + 0x78)) = sb;
    0x000212a4 b 0x21204                                     |         
                                                             |     } while (1);
                                                             | label_34:
    0x000212a8 ldr r1, [pc, 0x27c]                           |     r1 = *(0x21528);
    0x000212ac add r1, pc, r1                                |     r1 = pc + r1;
    0x000212b0 b 0x21260                                     |     goto label_9;
                                                             | label_29:
    0x000212b4 bl 0x8f6c                                     |     errno_location ();
    0x000212b8 ldr r3, [r7]                                  |     r3 = *(r7);
    0x000212bc tst r3, 0x200                                 |     
    0x000212c0 ldr sb, [r0]                                  |     sb = *(r0);
    0x000212c4 rsb sb, sb, 0                                 |     sb -= ;
    0x000212c8 str sb, [r4, 0x78]                            |     *((r4 + 0x78)) = sb;
                                                             |     if ((r3 & 0x200) == 0) {
    0x000212cc beq 0x21278                                   |         goto label_10;
                                                             |     }
    0x000212d0 ldr r3, [pc, 0x15c]                           |     r3 = *(0x21430);
    0x000212d4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000212d8 ldr r5, [r3]                                  |     r5 = *(0x21430);
    0x000212dc bl 0x8204                                     |     getpid ();
    0x000212e0 ldr r3, [pc, 0x248]                           |     r3 = *(0x2152c);
    0x000212e4 ldr r1, [pc, 0x248]                           |     r1 = *(0x21530);
    0x000212e8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000212ec str r3, [sp]                                  |     *(sp) = r3;
    0x000212f0 ldr r3, [pc, 0x240]                           |     r3 = *(0x21534);
    0x000212f4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000212f8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000212fc mov r2, r0                                    |     r2 = r0;
    0x00021300 mov r0, r5                                    |     r0 = r5;
    0x00021304 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00021308 ldr r1, [pc, 0x22c]                           |     r1 = *(0x21538);
    0x0002130c mov r0, r4                                    |     r0 = r4;
    0x00021310 add r1, pc, r1                                |     r1 = pc + r1;
    0x00021314 bl 0x2058c                                    |     fcn_0002058c (r0);
    0x00021318 b 0x21278                                     |     goto label_10;
                                                             | label_19:
    0x0002131c ldr sb, [pc, 0x21c]                           |     sb = *(0x2153c);
    0x00021320 add sb, pc, sb                                |     sb = pc + sb;
    0x00021324 b 0x209c0                                     |     goto label_11;
                                                             | label_20:
    0x00021328 ldr r2, [pc, 0x214]                           |     r2 = *(0x21540);
    0x0002132c add r2, pc, r2                                |     r2 = pc + r2;
    0x00021330 b 0x20a3c                                     |     goto label_12;
                                                             | label_21:
    0x00021334 ldr r3, [pc, 0x20c]                           |     r3 = *(0x21544);
    0x00021338 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002133c b 0x20a50                                     |     goto label_13;
                                                             | label_24:
    0x00021340 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00021344 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00021348 beq 0x21394                                   |         
    0x0002134c ldr r3, [pc, 0xe0]                            |         r3 = *(0x21430);
    0x00021350 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00021354 ldr r5, [r3]                                  |         r5 = *(0x21430);
    0x00021358 bl 0x8204                                     |         getpid ();
    0x0002135c ldr r3, [pc, 0x1e8]                           |         r3 = *(0x21548);
    0x00021360 ldr r1, [pc, 0x1e8]                           |         r1 = *(0x2154c);
    0x00021364 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021368 str r3, [sp]                                  |         *(sp) = r3;
    0x0002136c ldr r3, [pc, 0x1e0]                           |         r3 = *(0x21550);
    0x00021370 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021374 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021378 mov r2, r0                                    |         r2 = r0;
    0x0002137c mov r0, r5                                    |         r0 = r5;
    0x00021380 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00021384 ldr r1, [pc, 0x1cc]                           |         r1 = *(0x21554);
    0x00021388 mov r0, r4                                    |         r0 = r4;
    0x0002138c add r1, pc, r1                                |         r1 = pc + r1;
    0x00021390 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00021394 ldr r1, [r4, 0x48]                            |     r1 = *((r4 + 0x48));
    0x00021398 add r2, r4, 0x48                              |     r2 = r4 + 0x48;
    0x0002139c mov r3, 0                                     |     r3 = 0;
    0x000213a0 cmp r1, r2                                    |     
    0x000213a4 str r3, [r4, 0x8c]                            |     *((r4 + 0x8c)) = r3;
                                                             |     if (r1 == r2) {
    0x000213a8 beq 0x213c4                                   |         goto label_22;
                                                             |     }
                                                             | label_23:
    0x000213ac mov r2, r6                                    |     r2 = r6;
    0x000213b0 mov r1, r8                                    |     r1 = r8;
    0x000213b4 mov r0, r4                                    |     r0 = r4;
    0x000213b8 bl 0x2064c                                    |     r0 = fcn_0002064c (r0, r1);
    0x000213bc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000213c0 bne 0x20d54                                   |         goto label_14;
                                                             |     }
                                                             | label_22:
    0x000213c4 cmp r7, 0                                     |     
    0x000213c8 bne 0x213d4                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_15:
    0x000213cc mov sb, 0                                     |         sb = 0;
    0x000213d0 b 0x20b5c                                     |         goto label_2;
    0x000213d4 ldr r0, [r4, 0x58]                            |         r0 = *((r4 + 0x58));
    0x000213d8 cmp r0, 0                                     |         
    0x000213dc beq 0x213cc                                   |         
                                                             |     }
    0x000213e0 bl 0x7f40                                     |     r0 = fcn_00007f40 ();
    0x000213e4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000213e8 beq 0x213cc                                   |         goto label_15;
                                                             |     }
    0x000213ec mov r1, r7                                    |     r1 = r7;
    0x000213f0 bl 0x8144                                     |     r0 = fcn_00008144 ();
    0x000213f4 mov sb, r0                                    |     sb = r0;
    0x000213f8 b 0x20b5c                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x2155c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002155c ()                                  | void fcn_0002155c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     char * format;
                                                             |     int32_t var_14h;
                                                             |     void * ptr;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0002155c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00021560 ldr r6, [pc, 0x2bc]                           |     r6 = *(0x21820);
    0x00021564 subs r5, r0, 0                                |     r5 = r0 - 0;
    0x00021568 add r6, pc, r6                                |     r6 = pc + r6;
    0x0002156c sub sp, sp, 0x24                              |     
                                                             |     if (r5 != r0) {
    0x00021570 bne 0x21598                                   |         goto label_1;
                                                             |     }
    0x00021574 ldr r3, [pc, 0x2ac]                           |     
    0x00021578 ldr r1, [pc, 0x2ac]                           |     r1 = *(0x21828);
    0x0002157c ldr r0, [pc, 0x2ac]                           |     r0 = *(0x2182c);
    0x00021580 ldr r2, [pc, 0x2ac]                           |     r2 = *(0x21830);
    0x00021584 add r3, pc, r3                                |     r3 = pc + r3;
    0x00021588 add r3, r3, 0x40                              |     r3 = 0x21864;
    0x0002158c add r1, pc, r1                                |     r1 = pc + r1;
    0x00021590 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
    0x00021594 bl 0x908c                                     |         assert ();
                                                             | label_1:
    0x00021598 ldr r3, [r5, 0x6c]                            |         r3 = *((r5 + 0x6c));
    0x0002159c tst r3, 0x400000                              |         
                                                             |         if ((r3 & 0x400000) != 0) {
    0x000215a0 bne 0x215c8                                   |             goto label_2;
                                                             |         }
    0x000215a4 ldr r3, [pc, 0x28c]                           |         
    0x000215a8 ldr r1, [pc, 0x28c]                           |         r1 = *(0x21838);
    0x000215ac ldr r0, [pc, 0x28c]                           |         r0 = *(0x2183c);
    0x000215b0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000215b4 add r3, r3, 0x40                              |         r3 = 0x21874;
    0x000215b8 ldr r2, [pc, 0x284]                           |         r2 = *(0x21840);
    0x000215bc add r1, pc, r1                                |         r1 = pc + r1;
    0x000215c0 add r0, pc, r0                                |         r0 = pc + r0;
    0x000215c4 b 0x21594                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x000215c8 ldr r3, [pc, 0x278]                           |     r3 = *(0x21844);
    0x000215cc mov r4, r1                                    |     r4 = r1;
    0x000215d0 ldr sb, [r6, r3]                              |     sb = *((r6 + r3));
    0x000215d4 ldr r3, [sb]                                  |     r3 = *(sb);
    0x000215d8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000215dc beq 0x2162c                                   |         
    0x000215e0 ldr r3, [pc, 0x264]                           |         r3 = *(0x21848);
    0x000215e4 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x000215e8 ldr r7, [r3]                                  |         r7 = *(0x21848);
    0x000215ec bl 0x8204                                     |         getpid ();
    0x000215f0 ldr r3, [pc, 0x258]                           |         r3 = *(0x2184c);
    0x000215f4 ldr r1, [pc, 0x258]                           |         r1 = *(0x21850);
    0x000215f8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000215fc str r3, [sp]                                  |         *(sp) = r3;
    0x00021600 ldr r3, [pc, 0x250]                           |         r3 = *(0x21854);
    0x00021604 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021608 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002160c mov r2, r0                                    |         r2 = r0;
    0x00021610 mov r0, r7                                    |         r0 = r7;
    0x00021614 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00021618 ldr r1, [pc, 0x23c]                           |         r1 = *(0x21858);
    0x0002161c mov r2, r4                                    |         r2 = r4;
    0x00021620 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021624 mov r0, r5                                    |         r0 = r5;
    0x00021628 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x0002162c mov r0, r4                                    |     r0 = r4;
    0x00021630 bl 0x8ae0                                     |     r0 = strdup (r0);
    0x00021634 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl != r0) {
    0x00021638 mvneq r8, 0xb                                 |         r8 = ~0xb;
                                                             |     }
                                                             |     if (sl == r0) {
    0x0002163c beq 0x21764                                   |         goto label_3;
                                                             |     }
    0x00021640 ldr r3, [pc, 0x218]                           |     r3 = *(0x2185c);
    0x00021644 mov r4, sl                                    |     r4 = sl;
    0x00021648 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002164c str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00021650 ldr r3, [pc, 0x20c]                           |     r3 = *(0x21860);
    0x00021654 add r3, pc, r3                                |     r3 = pc + r3;
    0x00021658 str r3, [sp, 0x10]                            |     format = r3;
    0x0002165c ldr r3, [pc, 0x204]                           |     r3 = *(0x21864);
    0x00021660 add r3, pc, r3                                |     r3 = pc + r3;
    0x00021664 str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             |     do {
    0x00021668 mov r8, 0                                     |         r8 = 0;
    0x0002166c mov r1, 0x2c                                  |         r1 = 0x2c;
    0x00021670 mov r0, r4                                    |         r0 = r4;
    0x00021674 str r8, [sp, 0x1c]                            |         ptr = r8;
    0x00021678 bl 0x90a4                                     |         strchr (r0, r1);
    0x0002167c ldr r3, [sb]                                  |         r3 = *(sb);
    0x00021680 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x00021684 strbne r8, [r7]                               |             *(r7) = r8;
                                                             |         }
    0x00021688 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0002168c beq 0x216d0                                   |             
    0x00021690 ldr r3, [pc, 0x1b4]                           |             r3 = *(0x21848);
    0x00021694 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00021698 ldr r8, [r3]                                  |             r8 = *(0x21848);
    0x0002169c bl 0x8204                                     |             getpid ();
    0x000216a0 ldr r3, [sp, 0x14]                            |             r3 = var_14h;
    0x000216a4 ldr r1, [sp, 0x10]                            |             r1 = format;
    0x000216a8 str r3, [sp]                                  |             *(sp) = r3;
    0x000216ac ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x000216b0 mov r2, r0                                    |             r2 = r0;
    0x000216b4 mov r0, r8                                    |             r0 = r8;
    0x000216b8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000216bc ldr r1, [pc, 0x1a8]                           |             r1 = *(0x21868);
    0x000216c0 mov r2, r4                                    |             r2 = r4;
    0x000216c4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000216c8 mov r0, r5                                    |             r0 = r5;
    0x000216cc bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x000216d0 ldr r1, [pc, 0x198]                           |         r1 = *(0x2186c);
    0x000216d4 mov r0, r4                                    |         r0 = r4;
    0x000216d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000216dc bl 0x8cb4                                     |         r0 = strcmp (r0, r1);
    0x000216e0 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000216e4 bne 0x217d4                                   |             
    0x000216e8 add r1, sp, 0x1c                              |             r1 += ptr;
    0x000216ec mov r0, r5                                    |             r0 = r5;
    0x000216f0 bl 0x1e0bc                                    |             r0 = fcn_0001e0bc (r0, r1);
    0x000216f4 subs r8, r0, 0                                |             r8 = r0 - 0;
                                                             |             if (r8 != r0) {
    0x000216f8 beq 0x21770                                   |                 
    0x000216fc ldr r3, [sb]                                  |                 r3 = *(sb);
    0x00021700 tst r3, 0x200                                 |                 
                                                             |                 if ((r3 & 0x200) != 0) {
    0x00021704 beq 0x21754                                   |                     
    0x00021708 ldr r3, [pc, 0x13c]                           |                     r3 = *(0x21848);
    0x0002170c ldr r3, [r6, r3]                              |                     r3 = *((r6 + r3));
    0x00021710 ldr r4, [r3]                                  |                     r4 = *(0x21848);
    0x00021714 bl 0x8204                                     |                     getpid ();
    0x00021718 ldr r3, [pc, 0x154]                           |                     r3 = *(0x21870);
    0x0002171c ldr r1, [pc, 0x154]                           |                     r1 = *(0x21874);
    0x00021720 add r3, pc, r3                                |                     r3 = pc + r3;
    0x00021724 str r3, [sp]                                  |                     *(sp) = r3;
    0x00021728 ldr r3, [pc, 0x14c]                           |                     r3 = *(0x21878);
    0x0002172c add r1, pc, r1                                |                     r1 = pc + r1;
    0x00021730 add r3, pc, r3                                |                     r3 = pc + r3;
    0x00021734 mov r2, r0                                    |                     r2 = r0;
    0x00021738 mov r0, r4                                    |                     r0 = r4;
    0x0002173c bl 0x8798                                     |                     fprintf (r0, r1, r2, r3)
    0x00021740 ldr r1, [pc, 0x138]                           |                     r1 = *(0x2187c);
    0x00021744 mov r2, r8                                    |                     r2 = r8;
    0x00021748 add r1, pc, r1                                |                     r1 = pc + r1;
    0x0002174c mov r0, r5                                    |                     r0 = r5;
    0x00021750 bl 0x2058c                                    |                     fcn_0002058c (r0);
                                                             |                 }
    0x00021754 mov r0, sl                                    |                 r0 = sl;
    0x00021758 bl 0x91c4                                     |                 free (r0);
    0x0002175c ldr r0, [sp, 0x1c]                            |                 r0 = ptr;
                                                             | label_0:
    0x00021760 bl 0x91c4                                     |                 free (r0);
                                                             | label_3:
    0x00021764 mov r0, r8                                    |                 r0 = r8;
    0x00021768 add sp, sp, 0x24                              |                 
    0x0002176c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |                 
                                                             |             }
    0x00021770 ldr r3, [sb]                                  |             r3 = *(sb);
    0x00021774 ldr r4, [sp, 0x1c]                            |             r4 = ptr;
    0x00021778 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) != 0) {
    0x0002177c beq 0x217cc                                   |                 
    0x00021780 ldr r3, [pc, 0xc4]                            |                 r3 = *(0x21848);
    0x00021784 ldr r3, [r6, r3]                              |                 r3 = *((r6 + r3));
    0x00021788 ldr fp, [r3]                                  |                 fp = *(0x21848);
    0x0002178c bl 0x8204                                     |                 getpid ();
    0x00021790 ldr r3, [pc, 0xec]                            |                 r3 = *(0x21880);
    0x00021794 ldr r1, [pc, 0xec]                            |                 r1 = *(0x21884);
    0x00021798 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0002179c str r3, [sp]                                  |                 *(sp) = r3;
    0x000217a0 ldr r3, [pc, 0xe4]                            |                 r3 = *(0x21888);
    0x000217a4 add r1, pc, r1                                |                 r1 = pc + r1;
    0x000217a8 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000217ac mov r2, r0                                    |                 r2 = r0;
    0x000217b0 mov r0, fp                                    |                 r0 = fp;
    0x000217b4 bl 0x8798                                     |                 fprintf (r0, r1, r2, r3)
    0x000217b8 ldr r1, [pc, 0xd0]                            |                 r1 = *(0x2188c);
    0x000217bc mov r2, r4                                    |                 r2 = r4;
    0x000217c0 add r1, pc, r1                                |                 r1 = pc + r1;
    0x000217c4 mov r0, r5                                    |                 r0 = r5;
    0x000217c8 bl 0x2058c                                    |                 fcn_0002058c (r0);
                                                             |             }
    0x000217cc cmp r4, 0                                     |             
                                                             |             if (r4 == 0) {
    0x000217d0 beq 0x217e4                                   |                 goto label_4;
                                                             |             }
                                                             |         }
    0x000217d4 mov r1, r4                                    |         r1 = r4;
    0x000217d8 mov r0, r5                                    |         r0 = r5;
    0x000217dc bl 0x20878                                    |         r0 = fcn_00020878 (r0, r1);
    0x000217e0 mov r8, r0                                    |         r8 = r0;
                                                             | label_4:
    0x000217e4 cmp r7, 0                                     |         
    0x000217e8 ldr r0, [sp, 0x1c]                            |         r0 = ptr;
                                                             |         if (r7 == 0) {
    0x000217ec addne r7, r7, 1                               |             r7++;
                                                             |         }
    0x000217f0 bl 0x91c4                                     |         free (r0);
    0x000217f4 mov r0, r5                                    |         r0 = r5;
    0x000217f8 bl 0x8198                                     |         fcn_00008198 ();
    0x000217fc adds r3, r7, 0                                |         r3 = r7 + 0;
                                                             |         if (r3 == r7) {
    0x00021800 movne r3, 1                                   |             r3 = 1;
                                                             |         }
    0x00021804 mov r4, r7                                    |         r4 = r7;
    0x00021808 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0002180c moveq r0, r3                                  |             r0 = r3;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00021810 movne r0, 0                                   |             r0 = 0;
                                                             |         }
    0x00021814 cmp r0, 0                                     |         
    0x00021818 bne 0x21668                                   |         
                                                             |     } while (r0 != 0);
    0x0002181c mov r0, sl                                    |     r0 = sl;
    0x00021820 b 0x21760                                     |     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/lib/libmount.so.1.1.0 @ 0x21894 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00021894 ()                      | void fcn_00021894 (int32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00021894 ldr r3, [pc, 0xe8]                |     r3 = *(0x21980);
    0x00021898 push {r0, r1, r4, r5, r6, lr}     |     
    0x0002189c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x000218a0 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r4 != r0) {
    0x000218a4 bne 0x218cc                       |         goto label_0;
                                                 |     }
    0x000218a8 ldr r3, [pc, 0xd8]                |     
    0x000218ac ldr r1, [pc, 0xd8]                |     r1 = *(0x21988);
    0x000218b0 ldr r0, [pc, 0xd8]                |     r0 = *(0x2198c);
    0x000218b4 add r3, pc, r3                    |     r3 = pc + r3;
    0x000218b8 add r3, r3, 0x52                  |     r3 = 0x219d6;
    0x000218bc mov r2, 0x3c                      |     r2 = 0x3c;
    0x000218c0 add r1, pc, r1                    |     r1 = pc + r1;
    0x000218c4 add r0, pc, r0                    |     r0 = pc + r0;
                                                 |     do {
    0x000218c8 bl 0x908c                         |         assert ();
                                                 | label_0:
    0x000218cc cmp r1, 0                         |         
    0x000218d0 mov r5, r1                        |         r5 = r1;
                                                 |         if (r1 != 0) {
    0x000218d4 bne 0x218fc                       |             goto label_1;
                                                 |         }
    0x000218d8 ldr r3, [pc, 0xb4]                |         
    0x000218dc ldr r1, [pc, 0xb4]                |         r1 = *(0x21994);
    0x000218e0 ldr r0, [pc, 0xb4]                |         r0 = *(0x21998);
    0x000218e4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000218e8 add r3, r3, 0x52                  |         r3 = 0x219e2;
    0x000218ec mov r2, 0x3d                      |         r2 = 0x3d;
    0x000218f0 add r1, pc, r1                    |         r1 = pc + r1;
    0x000218f4 add r0, pc, r0                    |         r0 = pc + r0;
    0x000218f8 b 0x218c8                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x000218fc ldr r2, [pc, 0x9c]                |     
    0x00021900 ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x00021904 ldr r2, [r2]                      |     r2 = *(0x2199c);
    0x00021908 tst r2, 0x200                     |     
                                                 |     if ((r2 & 0x200) != 0) {
    0x0002190c beq 0x2195c                       |         
    0x00021910 ldr r2, [pc, 0x8c]                |         r2 = *(0x219a0);
    0x00021914 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x00021918 ldr r6, [r3]                      |         r6 = *(r3);
    0x0002191c bl 0x8204                         |         getpid ();
    0x00021920 ldr r3, [pc, 0x80]                |         r3 = *(0x219a4);
    0x00021924 ldr r1, [pc, 0x80]                |         r1 = *(0x219a8);
    0x00021928 add r3, pc, r3                    |         r3 = pc + r3;
    0x0002192c str r3, [sp]                      |         *(sp) = r3;
    0x00021930 ldr r3, [pc, 0x78]                |         r3 = *(0x219ac);
    0x00021934 add r1, pc, r1                    |         r1 = pc + r1;
    0x00021938 add r3, pc, r3                    |         r3 = pc + r3;
    0x0002193c mov r2, r0                        |         r2 = r0;
    0x00021940 mov r0, r6                        |         r0 = r6;
    0x00021944 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00021948 ldr r1, [pc, 0x64]                |         r1 = *(0x219b0);
    0x0002194c ldr r2, [r5]                      |         r2 = *(r5);
    0x00021950 add r1, pc, r1                    |         r1 = pc + r1;
    0x00021954 mov r0, r4                        |         r0 = r4;
    0x00021958 bl 0x2058c                        |         fcn_0002058c (r0);
                                                 |     }
    0x0002195c ldr r3, [r4, 0x4c]                |     r3 = *((r4 + 0x4c));
    0x00021960 add r2, r5, 4                     |     r2 = r5 + 4;
    0x00021964 str r2, [r4, 0x4c]                |     *((r4 + 0x4c)) = r2;
    0x00021968 mov r0, 0                         |     r0 = 0;
    0x0002196c add r4, r4, 0x48                  |     r4 += 0x48;
    0x00021970 str r4, [r5, 4]                   |     *((r5 + 4)) = r4;
    0x00021974 str r3, [r5, 8]                   |     *((r5 + 8)) = r3;
    0x00021978 str r2, [r3]                      |     *(r3) = r2;
    0x0002197c add sp, sp, 8                     |     
    0x00021980 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/lib/libmount.so.1.1.0 @ 0x24190 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00024190 ()                  | void fcn_00024190 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00024190 push {r1, r2, r3}             |     
    0x00024194 ldr r3, [pc, 0xa4]            |     r3 = *(0x2423c);
    0x00024198 push {r0, r1, r2, r4, lr}     |     
    0x0002419c ldr r1, [pc, 0xa0]            |     r1 = *(0x24240);
    0x000241a0 add r3, pc, r3                |     r3 = pc + r3;
    0x000241a4 subs r2, r0, 0                |     r2 = r0 - 0;
    0x000241a8 ldr r4, [r3, r1]              |     r4 = *(0x2423c);
                                             |     if (r2 != r0) {
    0x000241ac beq 0x241d4                   |         
    0x000241b0 ldr r1, [pc, 0x90]            |         r1 = *(0x24244);
    0x000241b4 ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x000241b8 ldr r3, [r3]                  |         r3 = *(r3);
    0x000241bc tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x000241c0 bne 0x241d4                   |             goto label_1;
                                             |         }
    0x000241c4 ldr r1, [pc, 0x80]            |         r1 = *(0x24248);
    0x000241c8 ldr r0, [r4]                  |         r0 = *(r4);
    0x000241cc add r1, pc, r1                |         r1 = pc + r1;
    0x000241d0 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x000241d4 add r2, sp, 0x18              |     r2 += var_18h;
    0x000241d8 ldr r1, [sp, 0x14]            |     r1 = format;
    0x000241dc ldr r0, [r4]                  |     r0 = *(r4);
    0x000241e0 str r2, [sp, 4]               |     var_4h = r2;
    0x000241e4 bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x000241e8 ldr r1, [r4]                  |     r1 = *(r4);
    0x000241ec ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x000241f0 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000241f4 beq 0x24234                   |         goto label_2;
                                             |     }
    0x000241f8 ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x000241fc ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00024200 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00024204 bhs 0x24228                   |         goto label_3;
                                             |     }
    0x00024208 add r2, r3, 1                 |     r2 = r3 + 1;
    0x0002420c str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00024210 mov r2, 0xa                   |     r2 = 0xa;
    0x00024214 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x00024218 add sp, sp, 0xc               |         
    0x0002421c pop {r4, lr}                  |         
    0x00024220 add sp, sp, 0xc               |         
    0x00024224 bx lr                         |         return;
                                             | label_3:
    0x00024228 mov r0, 0xa                   |         r0 = 0xa;
    0x0002422c bl 0x91dc                     |         fputc_unlocked ();
    0x00024230 b 0x24218                     |         
                                             |     } while (1);
                                             | label_2:
    0x00024234 mov r0, 0xa                   |     r0 = 0xa;
    0x00024238 bl 0x8ea0                     |     fputc (r0, r1);
    0x0002423c b 0x24218                     |     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/lib/libmount.so.1.1.0 @ 0x24250 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00024250 ()                              | void fcn_00024250 (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     char * ptr;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00024250 push {r0, r1, r2, r3, r4, r5, r6, lr}     |     
    0x00024254 ldr r5, [pc, 0xf4]                        |     r5 = *(0x2434c);
    0x00024258 mov r3, 0                                 |     r3 = 0;
    0x0002425c mov r4, r0                                |     r4 = r0;
    0x00024260 mov r6, r1                                |     r6 = r1;
    0x00024264 str r3, [sp, 8]                           |     ptr = r3;
    0x00024268 bl 0x7ff4                                 |     fcn_00007ff4 ();
    0x0002426c add r5, pc, r5                            |     r5 = pc + r5;
    0x00024270 cmp r0, 0                                 |     
    0x00024274 beq 0x24288                               |     
                                                         |     while (r0 == 0) {
                                                         | label_0:
    0x00024278 mov r4, 0                                 |         r4 = 0;
                                                         | label_1:
    0x0002427c mov r0, r4                                |         r0 = r4;
    0x00024280 add sp, sp, 0x10                          |         
    0x00024284 pop {r4, r5, r6, pc}                      |         
    0x00024288 ldr r0, [r4, 0x10]                        |         r0 = *((r4 + 0x10));
    0x0002428c bl 0x87bc                                 |         r0 = fcn_000087bc ();
    0x00024290 cmp r0, 0                                 |         
    0x00024294 beq 0x24278                               |         
                                                         |     }
    0x00024298 add r3, sp, 0xc                           |     r3 += var_ch;
    0x0002429c add r2, sp, 8                             |     r2 += ptr;
    0x000242a0 mov r1, r6                                |     r1 = r6;
    0x000242a4 bl 0x84a4                                 |     r0 = fcn_000084a4 ();
    0x000242a8 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000242ac bne 0x24278                               |         goto label_0;
                                                         |     }
    0x000242b0 ldrd r0, r1, [sp, 8]                      |     __asm ("ldrd r0, r1, [ptr]");
    0x000242b4 bl 0x8048                                 |     r0 = strndup (r0, r1);
    0x000242b8 cmp r0, 0                                 |     
    0x000242bc str r0, [sp, 8]                           |     ptr = r0;
                                                         |     if (r0 == 0) {
    0x000242c0 mvneq r4, 0xb                             |         r4 = ~0xb;
                                                         |         goto label_2;
                                                         |     }
                                                         |     if (r0 == 0) {
                                                         | label_2:
    0x000242c4 beq 0x2427c                               |         goto label_1;
                                                         |     }
    0x000242c8 ldr r3, [pc, 0x84]                        |     
    0x000242cc ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x000242d0 ldr r3, [r3]                              |     r3 = *(0x24350);
    0x000242d4 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) != 0) {
    0x000242d8 beq 0x2432c                               |         
    0x000242dc ldr r3, [pc, 0x74]                        |         r3 = *(0x24354);
    0x000242e0 ldr r3, [r5, r3]                          |         r3 = *((r5 + r3));
    0x000242e4 ldr r5, [r3]                              |         r5 = *(0x24354);
    0x000242e8 bl 0x8204                                 |         getpid ();
    0x000242ec ldr r3, [pc, 0x68]                        |         r3 = *(0x24358);
    0x000242f0 ldr r1, [pc, 0x68]                        |         r1 = *(0x2435c);
    0x000242f4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000242f8 str r3, [sp]                              |         *(sp) = r3;
    0x000242fc ldr r3, [pc, 0x60]                        |         r3 = *(0x24360);
    0x00024300 add r1, pc, r1                            |         r1 = pc + r1;
    0x00024304 add r3, pc, r3                            |         r3 = pc + r3;
    0x00024308 mov r2, r0                                |         r2 = r0;
    0x0002430c mov r0, r5                                |         r0 = r5;
    0x00024310 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x00024314 ldr r1, [pc, 0x4c]                        |         r1 = *(0x24364);
    0x00024318 mov r3, r6                                |         r3 = r6;
    0x0002431c ldr r2, [sp, 8]                           |         r2 = ptr;
    0x00024320 add r1, pc, r1                            |         r1 = pc + r1;
    0x00024324 mov r0, r4                                |         r0 = r4;
    0x00024328 bl 0x24190                                |         fcn_00024190 (r0);
                                                         |     }
    0x0002432c ldr r1, [pc, 0x38]                        |     r1 = *(0x24368);
    0x00024330 ldr r2, [sp, 8]                           |     r2 = ptr;
    0x00024334 add r1, pc, r1                            |     r1 = pc + r1;
    0x00024338 mov r0, r4                                |     r0 = r4;
    0x0002433c bl 0x1c654                                |     r0 = fcn_0001c654 (r0, r1);
    0x00024340 mov r4, r0                                |     r4 = r0;
    0x00024344 ldr r0, [sp, 8]                           |     r0 = ptr;
    0x00024348 bl 0x91c4                                 |     free (r0);
    0x0002434c b 0x2427c                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x27038 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00027038 ()                  | void fcn_00027038 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00027038 push {r1, r2, r3}             |     
    0x0002703c ldr r3, [pc, 0xa4]            |     r3 = *(0x270e4);
    0x00027040 push {r0, r1, r2, r4, lr}     |     
    0x00027044 ldr r1, [pc, 0xa0]            |     r1 = *(0x270e8);
    0x00027048 add r3, pc, r3                |     r3 = pc + r3;
    0x0002704c subs r2, r0, 0                |     r2 = r0 - 0;
    0x00027050 ldr r4, [r3, r1]              |     r4 = *(0x270e4);
                                             |     if (r2 != r0) {
    0x00027054 beq 0x2707c                   |         
    0x00027058 ldr r1, [pc, 0x90]            |         r1 = *(0x270ec);
    0x0002705c ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x00027060 ldr r3, [r3]                  |         r3 = *(r3);
    0x00027064 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x00027068 bne 0x2707c                   |             goto label_1;
                                             |         }
    0x0002706c ldr r1, [pc, 0x80]            |         r1 = *(0x270f0);
    0x00027070 ldr r0, [r4]                  |         r0 = *(r4);
    0x00027074 add r1, pc, r1                |         r1 = pc + r1;
    0x00027078 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x0002707c add r2, sp, 0x18              |     r2 += var_18h;
    0x00027080 ldr r1, [sp, 0x14]            |     r1 = format;
    0x00027084 ldr r0, [r4]                  |     r0 = *(r4);
    0x00027088 str r2, [sp, 4]               |     var_4h = r2;
    0x0002708c bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x00027090 ldr r1, [r4]                  |     r1 = *(r4);
    0x00027094 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00027098 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x0002709c beq 0x270dc                   |         goto label_2;
                                             |     }
    0x000270a0 ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x000270a4 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x000270a8 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x000270ac bhs 0x270d0                   |         goto label_3;
                                             |     }
    0x000270b0 add r2, r3, 1                 |     r2 = r3 + 1;
    0x000270b4 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x000270b8 mov r2, 0xa                   |     r2 = 0xa;
    0x000270bc strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x000270c0 add sp, sp, 0xc               |         
    0x000270c4 pop {r4, lr}                  |         
    0x000270c8 add sp, sp, 0xc               |         
    0x000270cc bx lr                         |         return;
                                             | label_3:
    0x000270d0 mov r0, 0xa                   |         r0 = 0xa;
    0x000270d4 bl 0x91dc                     |         fputc_unlocked ();
    0x000270d8 b 0x270c0                     |         
                                             |     } while (1);
                                             | label_2:
    0x000270dc mov r0, 0xa                   |     r0 = 0xa;
    0x000270e0 bl 0x8ea0                     |     fputc (r0, r1);
    0x000270e4 b 0x270c0                     |     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/lib/libmount.so.1.1.0 @ 0x27364 */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.00027364 ()                  | void fcn_00027364 (int32_t arg1, uint32_t arg2) {
                                             |     int32_t var_0h_2;
                                             |     int32_t var_8h;
                                             |     int32_t var_ch;
                                             |     int32_t var_10h;
                                             |     int32_t var_14h;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00027364 push {r4, r5, r6, r7, lr}     |     
    0x00027368 ldr r6, [pc, 0x230]           |     r6 = *(0x2759c);
    0x0002736c subs r5, r0, 0                |     r5 = r0 - 0;
    0x00027370 add r6, pc, r6                |     r6 = pc + r6;
    0x00027374 sub sp, sp, 0x2c              |     
                                             |     if (r5 != r0) {
    0x00027378 bne 0x273a0                   |         goto label_2;
                                             |     }
    0x0002737c ldr r3, [pc, 0x220]           |     
    0x00027380 ldr r1, [pc, 0x220]           |     r1 = *(0x275a4);
    0x00027384 ldr r0, [pc, 0x220]           |     r0 = *(0x275a8);
    0x00027388 add r3, pc, r3                |     r3 = pc + r3;
    0x0002738c add r3, r3, 0x58              |     r3 = 0x275f8;
    0x00027390 mov r2, 0x228                 |     r2 = 0x228;
    0x00027394 add r1, pc, r1                |     r1 = pc + r1;
    0x00027398 add r0, pc, r0                |     r0 = pc + r0;
                                             |     do {
    0x0002739c bl 0x908c                     |         assert ();
                                             | label_2:
    0x000273a0 cmp r1, 0                     |         
    0x000273a4 mov r4, r1                    |         r4 = r1;
                                             |         if (r1 != 0) {
    0x000273a8 bne 0x273d0                   |             goto label_3;
                                             |         }
    0x000273ac ldr r3, [pc, 0x1fc]           |         
    0x000273b0 ldr r1, [pc, 0x1fc]           |         r1 = *(0x275b0);
    0x000273b4 ldr r0, [pc, 0x1fc]           |         r0 = *(0x275b4);
    0x000273b8 add r3, pc, r3                |         r3 = pc + r3;
    0x000273bc add r3, r3, 0x58              |         r3 = 0x27604;
    0x000273c0 ldr r2, [pc, 0x1f4]           |         r2 = *(0x275b8);
    0x000273c4 add r1, pc, r1                |         r1 = pc + r1;
    0x000273c8 add r0, pc, r0                |         r0 = pc + r0;
    0x000273cc b 0x2739c                     |         
                                             |     } while (1);
                                             | label_3:
    0x000273d0 ldrb r3, [r1, 0x14]           |     r3 = *((r1 + 0x14));
    0x000273d4 bic r3, r3, 1                 |     r3 = BIT_MASK (r3, 1);
    0x000273d8 cmp r2, 0                     |     
                                             |     if (r2 == 0) {
    0x000273dc orrne r3, r3, 1               |         r3 |= 1;
                                             |     }
    0x000273e0 bic r3, r3, 2                 |     r3 = BIT_MASK (r3, 2);
    0x000273e4 strb r3, [r1, 0x14]           |     *((r1 + 0x14)) = r3;
    0x000273e8 ldr r3, [r5, 4]               |     r3 = *((r5 + 4));
    0x000273ec cmp r3, 0                     |     
    0x000273f0 bge 0x27400                   |     
                                             |     while ((r3 & 0x80000001) == 0) {
                                             | label_0:
    0x000273f4 mov r0, 0                     |         r0 = 0;
                                             | label_1:
    0x000273f8 add sp, sp, 0x2c              |         
    0x000273fc pop {r4, r5, r6, r7, pc}      |         
    0x00027400 cmp r2, 0                     |         
                                             |         if (r2 == 0) {
    0x00027404 beq 0x274f8                   |             goto label_4;
                                             |         }
    0x00027408 ldr r3, [r1, 0xc]             |         r3 = *((r1 + 0xc));
    0x0002740c mov r2, 0                     |         r2 = 0;
    0x00027410 str r3, [sp, 8]               |         var_8h = r3;
    0x00027414 ldr r3, [r1, 0x10]            |         r3 = *((r1 + 0x10));
    0x00027418 str r2, [sp, 0xc]             |         var_ch = r2;
    0x0002741c str r2, [sp, 0x10]            |         var_10h = r2;
    0x00027420 str r2, [sp, 0x14]            |         var_14h = r2;
    0x00027424 ldr r3, [r3]                  |         r3 = *(r3);
    0x00027428 blx r3                        |         r0 = uint32_t (*r3)(uint32_t, uint32_t) (r2, r3);
    0x0002742c subs r7, r0, 0                |         r7 = r0 - 0;
                                             |         if (r7 < r0) {
    0x00027430 blt 0x27590                   |             goto label_5;
                                             |         }
    0x00027434 ldr r3, [pc, 0x184]           |         
    0x00027438 ldr r3, [r6, r3]              |         r3 = *((r6 + r3));
    0x0002743c ldr r3, [r3]                  |         r3 = *(0x275bc);
    0x00027440 tst r3, 0x800                 |         
                                             |         if ((r3 & 0x800) != 0) {
    0x00027444 beq 0x27498                   |             
    0x00027448 ldr r3, [pc, 0x174]           |             r3 = *(0x275c0);
    0x0002744c ldr r3, [r6, r3]              |             r3 = *((r6 + r3));
    0x00027450 ldr r6, [r3]                  |             r6 = *(0x275c0);
    0x00027454 bl 0x8204                     |             getpid ();
    0x00027458 ldr r3, [pc, 0x168]           |             r3 = *(0x275c4);
    0x0002745c ldr r1, [pc, 0x168]           |             r1 = *(0x275c8);
    0x00027460 add r3, pc, r3                |             r3 = pc + r3;
    0x00027464 str r3, [sp]                  |             *(sp) = r3;
    0x00027468 ldr r3, [pc, 0x160]           |             r3 = *(0x275cc);
    0x0002746c add r1, pc, r1                |             r1 = pc + r1;
    0x00027470 add r3, pc, r3                |             r3 = pc + r3;
    0x00027474 mov r2, r0                    |             r2 = r0;
    0x00027478 mov r0, r6                    |             r0 = r6;
    0x0002747c bl 0x8798                     |             fprintf (r0, r1, r2, r3)
    0x00027480 ldr r1, [pc, 0x14c]           |             r1 = *(0x275d0);
    0x00027484 ldr r3, [r4, 4]               |             r3 = *((r4 + 4));
    0x00027488 mov r2, r7                    |             r2 = r7;
    0x0002748c add r1, pc, r1                |             r1 = pc + r1;
    0x00027490 mov r0, r5                    |             r0 = r5;
    0x00027494 bl 0x27038                    |             fcn_00027038 (r0);
                                             |         }
    0x00027498 add r3, sp, 8                 |         r3 += var_8h;
    0x0002749c mov r2, r7                    |         r2 = r7;
    0x000274a0 mov r1, 1                     |         r1 = 1;
    0x000274a4 ldr r0, [r5, 4]               |         r0 = *((r5 + 4));
    0x000274a8 str r4, [sp, 0x10]            |         var_10h = r4;
    0x000274ac bl 0x85dc                     |         r0 = epoll_ctl ();
    0x000274b0 cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x000274b4 bge 0x274c8                   |             
    0x000274b8 bl 0x8f6c                     |             r0 = errno_location ();
    0x000274bc ldr r3, [r0]                  |             r3 = *(r0);
    0x000274c0 cmp r3, 0x11                  |             
                                             |             if (r3 != 0x11) {
    0x000274c4 bne 0x27590                   |                 goto label_5;
                                             |             }
                                             |         }
    0x000274c8 ldr r3, [r4, 0xc]             |         r3 = *((r4 + 0xc));
    0x000274cc tst r3, 0x80000001            |         
    0x000274d0 beq 0x273f4                   |         
                                             |     }
    0x000274d4 add r4, sp, 0x18              |     r4 += var_18h;
                                             |     do {
    0x000274d8 mov r3, 0                     |         r3 = 0;
    0x000274dc mov r2, 1                     |         r2 = 1;
    0x000274e0 mov r1, r4                    |         r1 = r4;
    0x000274e4 ldr r0, [r5, 4]               |         r0 = *((r5 + 4));
    0x000274e8 bl 0x8030                     |         r0 = epoll_wait ();
    0x000274ec cmp r0, 0                     |         
    0x000274f0 bgt 0x274d8                   |         
                                             |     } while (r0 > 0);
    0x000274f4 b 0x273f4                     |     goto label_0;
                                             | label_4:
    0x000274f8 ldr r3, [r1]                  |     r3 = *(r1);
    0x000274fc cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00027500 beq 0x273f4                   |         goto label_0;
                                             |     }
    0x00027504 ldr r3, [pc, 0xb4]            |     
    0x00027508 ldr r3, [r6, r3]              |     r3 = *((r6 + r3));
    0x0002750c ldr r3, [r3]                  |     r3 = *(0x275bc);
    0x00027510 tst r3, 0x800                 |     
                                             |     if ((r3 & 0x800) != 0) {
    0x00027514 beq 0x27564                   |         
    0x00027518 ldr r3, [pc, 0xa4]            |         r3 = *(0x275c0);
    0x0002751c ldr r3, [r6, r3]              |         r3 = *((r6 + r3));
    0x00027520 ldr r6, [r3]                  |         r6 = *(0x275c0);
    0x00027524 bl 0x8204                     |         getpid ();
    0x00027528 ldr r3, [pc, 0xa8]            |         r3 = *(0x275d4);
    0x0002752c ldr r1, [pc, 0xa8]            |         r1 = *(0x275d8);
    0x00027530 add r3, pc, r3                |         r3 = pc + r3;
    0x00027534 str r3, [sp]                  |         *(sp) = r3;
    0x00027538 ldr r3, [pc, 0xa0]            |         r3 = *(0x275dc);
    0x0002753c add r1, pc, r1                |         r1 = pc + r1;
    0x00027540 add r3, pc, r3                |         r3 = pc + r3;
    0x00027544 mov r2, r0                    |         r2 = r0;
    0x00027548 mov r0, r6                    |         r0 = r6;
    0x0002754c bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x00027550 ldr r1, [pc, 0x8c]            |         r1 = *(0x275e0);
    0x00027554 ldm r4, {r2, r3}              |         r2 = *(r4);
                                             |         r3 = *((r4 + 4));
    0x00027558 add r1, pc, r1                |         r1 = pc + r1;
    0x0002755c mov r0, r5                    |         r0 = r5;
    0x00027560 bl 0x27038                    |         fcn_00027038 (r0);
                                             |     }
    0x00027564 mov r3, 0                     |     r3 = 0;
    0x00027568 ldr r2, [r4]                  |     r2 = *(r4);
    0x0002756c mov r1, 2                     |     r1 = 2;
    0x00027570 ldr r0, [r5, 4]               |     r0 = *((r5 + 4));
    0x00027574 bl 0x85dc                     |     r0 = epoll_ctl ();
    0x00027578 cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x0002757c bge 0x273f4                   |         goto label_0;
                                             |     }
    0x00027580 bl 0x8f6c                     |     r0 = errno_location ();
    0x00027584 ldr r3, [r0]                  |     r3 = *(r0);
    0x00027588 cmp r3, 2                     |     
                                             |     if (r3 == 2) {
    0x0002758c beq 0x273f4                   |         goto label_0;
                                             |     }
                                             | label_5:
    0x00027590 bl 0x8f6c                     |     r0 = errno_location ();
    0x00027594 ldr r0, [r0]                  |     r0 = *(r0);
    0x00027598 rsb r0, r0, 0                 |     r0 -= ;
    0x0002759c b 0x273f8                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x2780c */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) fcn.0002780c ()                                              | void fcn_0002780c (int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     char * ptr;
                                                                         |     int32_t var_10h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x0002780c push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00027810 ldr r6, [pc, 0x214]                                       |     r6 = *(0x27a28);
    0x00027814 mov r7, 0                                                 |     r7 = 0;
    0x00027818 subs sb, r0, 0                                            |     sb = r0 - 0;
    0x0002781c add r6, pc, r6                                            |     r6 = pc + r6;
    0x00027820 str r7, [sp, 0xc]                                         |     ptr = r7;
                                                                         |     if (sb != r0) {
    0x00027824 bne 0x2784c                                               |         goto label_4;
                                                                         |     }
    0x00027828 ldr r3, [pc, 0x200]                                       |     
    0x0002782c ldr r1, [pc, 0x200]                                       |     r1 = *(0x27a30);
    0x00027830 ldr r0, [pc, 0x200]                                       |     r0 = *(0x27a34);
    0x00027834 add r3, pc, r3                                            |     r3 = pc + r3;
    0x00027838 add r3, r3, 0x83                                          |     r3 = 0x27aaf;
    0x0002783c mov r2, 0xdf                                              |     r2 = 0xdf;
    0x00027840 add r1, pc, r1                                            |     r1 = pc + r1;
    0x00027844 add r0, pc, r0                                            |     r0 = pc + r0;
                                                                         |     do {
    0x00027848 bl 0x908c                                                 |         assert ();
                                                                         | label_4:
    0x0002784c mov r8, r2                                                |         r8 = r2;
    0x00027850 ldr r2, [sb, 4]                                           |         r2 = *((sb + 4));
    0x00027854 cmp r2, 0                                                 |         
                                                                         |         if (r2 != 0) {
    0x00027858 bne 0x27880                                               |             goto label_5;
                                                                         |         }
    0x0002785c ldr r3, [pc, 0x1d8]                                       |         
    0x00027860 ldr r1, [pc, 0x1d8]                                       |         r1 = *(0x27a3c);
    0x00027864 ldr r0, [pc, 0x1d8]                                       |         r0 = *(0x27a40);
    0x00027868 add r3, pc, r3                                            |         r3 = pc + r3;
    0x0002786c add r3, r3, 0x83                                          |         r3 = 0x27abb;
    0x00027870 mov r2, 0xe0                                              |         r2 = 0xe0;
    0x00027874 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00027878 add r0, pc, r0                                            |         r0 = pc + r0;
    0x0002787c b 0x27848                                                 |         
                                                                         |     } while (1);
                                                                         | label_5:
    0x00027880 mov sl, r1                                                |     sl = r1;
    0x00027884 ldr r1, [pc, 0x1bc]                                       |     r1 = *(0x27a44);
    0x00027888 add r0, sp, 0xc                                           |     r0 += ptr;
    0x0002788c add r1, pc, r1                                            |     r1 = pc + r1;
    0x00027890 bl 0x8d80                                                 |     r0 = asprintf ();
    0x00027894 mov r4, r0                                                |     r4 = r0;
    0x00027898 bl 0x8f6c                                                 |     errno_location ();
    0x0002789c cmp r4, 0                                                 |     
    0x000278a0 mov r5, r0                                                |     r5 = r0;
                                                                         |     if (r4 > 0) {
    0x000278a4 ldrle r4, [r0]                                            |         r4 = *(r0);
                                                                         |     }
                                                                         |     if (r4 <= 0) {
    0x000278a8 ble 0x27964                                               |         goto label_1;
                                                                         |     }
    0x000278ac str r7, [r0]                                              |     *(r0) = r7;
    0x000278b0 mov r2, 0x10                                              |     r2 = 0x10;
    0x000278b4 ldr r1, [sp, 0xc]                                         |     r1 = ptr;
    0x000278b8 ldr r0, [sb]                                              |     r0 = *(sb);
    0x000278bc bl 0x8e88                                                 |     r0 = inotify_add_watch ();
    0x000278c0 subs r4, r0, 0                                            |     r4 = r0 - 0;
                                                                         |     if (r4 < r0) {
    0x000278c4 blt 0x27954                                               |         goto label_6;
                                                                         |     }
    0x000278c8 ldr r3, [pc, 0x17c]                                       |     
    0x000278cc ldr r3, [r6, r3]                                          |     r3 = *((r6 + r3));
    0x000278d0 ldr r3, [r3]                                              |     r3 = *(0x27a48);
    0x000278d4 tst r3, 0x800                                             |     
                                                                         |     if ((r3 & 0x800) != 0) {
    0x000278d8 beq 0x27928                                               |         
    0x000278dc ldr r3, [pc, 0x16c]                                       |         r3 = *(0x27a4c);
    0x000278e0 ldr r3, [r6, r3]                                          |         r3 = *((r6 + r3));
    0x000278e4 ldr r5, [r3]                                              |         r5 = *(0x27a4c);
    0x000278e8 bl 0x8204                                                 |         getpid ();
    0x000278ec ldr r3, [pc, 0x160]                                       |         r3 = *(0x27a50);
    0x000278f0 ldr r1, [pc, 0x160]                                       |         r1 = *(0x27a54);
    0x000278f4 add r3, pc, r3                                            |         r3 = pc + r3;
    0x000278f8 str r3, [sp]                                              |         *(sp) = r3;
    0x000278fc ldr r3, [pc, 0x158]                                       |         r3 = *(0x27a58);
    0x00027900 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00027904 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00027908 mov r2, r0                                                |         r2 = r0;
    0x0002790c mov r0, r5                                                |         r0 = r5;
    0x00027910 bl 0x8798                                                 |         fprintf (r0, r1, r2, r3)
    0x00027914 ldr r0, [pc, 0x144]                                       |         r0 = *(0x27a5c);
    0x00027918 mov r2, r4                                                |         r2 = r4;
    0x0002791c ldr r1, [sp, 0xc]                                         |         r1 = ptr;
    0x00027920 add r0, pc, r0                                            |         r0 = pc + r0;
    0x00027924 bl 0x27778                                                |         fcn_00027778 ();
                                                                         |     }
    0x00027928 cmp sl, 0                                                 |     
                                                                         |     if (sl == 0) {
    0x0002792c movne r3, 1                                               |         r3 = 1;
                                                                         |     }
                                                                         |     if (sl == 0) {
    0x00027930 strne r3, [sl]                                            |         *(sl) = r3;
                                                                         |     }
                                                                         | label_0:
    0x00027934 cmp r8, 0                                                 |     
                                                                         |     if (r8 == 0) {
    0x00027938 strne r4, [r8]                                            |         *(r8) = r4;
                                                                         |     }
    0x0002793c mov r4, 0                                                 |     r4 = 0;
                                                                         |     do {
                                                                         | label_3:
    0x00027940 ldr r0, [sp, 0xc]                                         |         r0 = ptr;
    0x00027944 bl 0x91c4                                                 |         free (r0);
    0x00027948 mov r0, r4                                                |         r0 = r4;
    0x0002794c add sp, sp, 0x10                                          |         
    0x00027950 pop {r4, r5, r6, r7, r8, sb, sl, pc}                      |         
                                                                         | label_6:
    0x00027954 ldr r4, [r5]                                              |         r4 = *(r5);
    0x00027958 cmp r4, 2                                                 |         
                                                                         |         if (r4 != 2) {
    0x0002795c ldreq sl, [pc, 0x100]                                     |             sl = *(0x00027a64);
                                                                         |         }
                                                                         |         if (r4 == 2) {
    0x00027960 beq 0x279f4                                               |             goto label_7;
                                                                         |         }
                                                                         | label_1:
    0x00027964 rsb r4, r4, 0                                             |         r4 -= ;
    0x00027968 b 0x27940                                                 |         
                                                                         |     } while (1);
                                                                         | label_2:
    0x0002796c str r7, [r5]                                              |     *(r5) = r7;
    0x00027970 mov r2, sl                                                |     r2 = sl;
    0x00027974 ldr r0, [sb]                                              |     r0 = *(sb);
    0x00027978 bl 0x8e88                                                 |     r0 = inotify_add_watch ();
    0x0002797c subs r4, r0, 0                                            |     r4 = r0 - 0;
                                                                         |     if (r4 < r0) {
    0x00027980 blt 0x279e8                                               |         goto label_8;
                                                                         |     }
    0x00027984 ldr r3, [pc, 0xc0]                                        |     
    0x00027988 ldr r3, [r6, r3]                                          |     r3 = *((r6 + r3));
    0x0002798c ldr r3, [r3]                                              |     r3 = *(0x27a48);
    0x00027990 tst r3, 0x800                                             |     
                                                                         |     if ((r3 & 0x800) == 0) {
    0x00027994 beq 0x27934                                               |         goto label_0;
                                                                         |     }
    0x00027998 ldr r3, [pc, 0xb0]                                        |     r3 = *(0x27a4c);
    0x0002799c ldr r3, [r6, r3]                                          |     r3 = *((r6 + r3));
    0x000279a0 ldr r5, [r3]                                              |     r5 = *(0x27a4c);
    0x000279a4 bl 0x8204                                                 |     getpid ();
    0x000279a8 ldr r3, [pc, 0xb8]                                        |     r3 = *(0x27a64);
    0x000279ac ldr r1, [pc, 0xb8]                                        |     r1 = *(0x27a68);
    0x000279b0 add r3, pc, r3                                            |     r3 = pc + r3;
    0x000279b4 str r3, [sp]                                              |     *(sp) = r3;
    0x000279b8 ldr r3, [pc, 0xb0]                                        |     r3 = *(0x27a6c);
    0x000279bc add r1, pc, r1                                            |     r1 = pc + r1;
    0x000279c0 add r3, pc, r3                                            |     r3 = pc + r3;
    0x000279c4 mov r2, r0                                                |     r2 = r0;
    0x000279c8 mov r0, r5                                                |     r0 = r5;
    0x000279cc bl 0x8798                                                 |     fprintf (r0, r1, r2, r3)
    0x000279d0 ldr r0, [pc, 0x9c]                                        |     r0 = *(0x27a70);
    0x000279d4 mov r2, r4                                                |     r2 = r4;
    0x000279d8 ldr r1, [sp, 0xc]                                         |     r1 = ptr;
    0x000279dc add r0, pc, r0                                            |     r0 = pc + r0;
    0x000279e0 bl 0x27778                                                |     fcn_00027778 ();
    0x000279e4 b 0x27934                                                 |     goto label_0;
                                                                         | label_8:
    0x000279e8 ldr r4, [r5]                                              |     r4 = *(r5);
    0x000279ec cmp r4, 2                                                 |     
                                                                         |     if (r4 != 2) {
    0x000279f0 bne 0x27964                                               |         goto label_1;
                                                                         |     }
                                                                         | label_7:
    0x000279f4 ldr r4, [sp, 0xc]                                         |     r4 = ptr;
    0x000279f8 mov r1, 0x2f                                              |     r1 = 0x2f;
    0x000279fc mov r0, r4                                                |     r0 = r4;
    0x00027a00 bl 0x90a4                                                 |     r0 = strchr (r0, r1);
    0x00027a04 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x00027a08 beq 0x27a24                                               |         goto label_9;
                                                                         |     }
    0x00027a0c mov r0, r4                                                |     r0 = r4;
    0x00027a10 bl 0x2a12c                                                |     fcn_0002a12c (r0);
    0x00027a14 ldr r1, [sp, 0xc]                                         |     r1 = ptr;
    0x00027a18 ldrsb r3, [r1]                                            |     r3 = *(r1);
    0x00027a1c cmp r3, 0                                                 |     
                                                                         |     if (r3 != 0) {
    0x00027a20 bne 0x2796c                                               |         goto label_2;
                                                                         |     }
                                                                         | label_9:
    0x00027a24 mvn r4, 0x15                                              |     r4 = ~0x15;
    0x00027a28 b 0x27940                                                 |     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/lib/libmount.so.1.1.0 @ 0x28cc0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00028cc0 ()                                  | void fcn_00028cc0 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     void * s;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_8h_3;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_40h_2;
                                                             |     int32_t var_80h;
                                                             |     int32_t var_88h;
                                                             |     int32_t var_8ch;
                                                             |     int32_t var_abh;
                                                             |     int32_t var_ach;
                                                             |     char * s2;
                                                             |     int32_t var_1000h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
    0x00028cc0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00028cc4 ldr r7, [pc, 0x3dc]                           |     r7 = *(0x290a4);
    0x00028cc8 sub sp, sp, 0x1000                            |     
    0x00028ccc sub sp, sp, 0xc                               |     
    0x00028cd0 mov sl, r0                                    |     sl = r0;
    0x00028cd4 bl 0x8bd0                                     |     opendir ();
    0x00028cd8 ldr r3, [pc, 0x3cc]                           |     r3 = *(0x290a8);
    0x00028cdc add r7, pc, r7                                |     r7 = pc + r7;
    0x00028ce0 ldr sb, [r7, r3]                              |     sb = *(0x290a4);
    0x00028ce4 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x00028ce8 bne 0x28d54                                   |         
    0x00028cec ldr r3, [sb]                                  |         r3 = *(sb);
    0x00028cf0 tst r3, 0x1000                                |         
                                                             |         if ((r3 & 0x1000) != 0) {
    0x00028cf4 beq 0x28d48                                   |             
    0x00028cf8 ldr r3, [pc, 0x3b0]                           |             r3 = *(0x290ac);
    0x00028cfc ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x00028d00 ldr r4, [r3]                                  |             r4 = *(0x290ac);
    0x00028d04 bl 0x8204                                     |             getpid ();
    0x00028d08 ldr r3, [pc, 0x3a4]                           |             r3 = *(0x290b0);
    0x00028d0c ldr r1, [pc, 0x3a4]                           |             r1 = *(0x290b4);
    0x00028d10 add r3, pc, r3                                |             r3 = pc + r3;
    0x00028d14 str r3, [sp]                                  |             *(sp) = r3;
    0x00028d18 ldr r3, [pc, 0x39c]                           |             r3 = *(0x290b8);
    0x00028d1c add r1, pc, r1                                |             r1 = pc + r1;
    0x00028d20 add r3, pc, r3                                |             r3 = pc + r3;
    0x00028d24 mov r2, r0                                    |             r2 = r0;
    0x00028d28 mov r0, r4                                    |             r0 = r4;
    0x00028d2c bl 0x8798                                     |             r0 = fprintf (r0, r1, r2, r3)
    0x00028d30 bl 0x8f6c                                     |             errno_location ();
    0x00028d34 mov r1, sl                                    |             r1 = sl;
    0x00028d38 ldr r2, [r0]                                  |             r2 = *(r0);
    0x00028d3c ldr r0, [pc, 0x37c]                           |             r0 = *(0x290bc);
    0x00028d40 add r0, pc, r0                                |             r0 = pc + r0;
    0x00028d44 bl 0x28c34                                    |             fcn_00028c34 ();
                                                             |         }
    0x00028d48 mvn r6, 0                                     |         r6 = ~0;
    0x00028d4c mov r4, r6                                    |         r4 = r6;
    0x00028d50 b 0x28ea8                                     |         goto label_3;
                                                             |     }
    0x00028d54 bl 0x8900                                     |     r0 = dirfd ();
    0x00028d58 subs fp, r0, 0                                |     
                                                             |     if (fp >= r0) {
    0x00028d5c bge 0x28dcc                                   |         goto label_4;
                                                             |     }
    0x00028d60 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00028d64 tst r3, 0x1000                                |     
    0x00028d68 bne 0x28d78                                   |     
                                                             |     while (1) {
                                                             | label_0:
    0x00028d6c mvn r6, 0                                     |         r6 = ~0;
    0x00028d70 mov r4, r6                                    |         r4 = r6;
    0x00028d74 b 0x28ea0                                     |         goto label_2;
    0x00028d78 ldr r3, [pc, 0x330]                           |         r3 = *(0x290ac);
    0x00028d7c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00028d80 ldr r4, [r3]                                  |         r4 = *(0x290ac);
    0x00028d84 bl 0x8204                                     |         getpid ();
    0x00028d88 ldr r3, [pc, 0x334]                           |         r3 = *(0x290c0);
    0x00028d8c ldr r1, [pc, 0x334]                           |         r1 = *(0x290c4);
    0x00028d90 add r3, pc, r3                                |         r3 = pc + r3;
    0x00028d94 str r3, [sp]                                  |         *(sp) = r3;
    0x00028d98 ldr r3, [pc, 0x32c]                           |         r3 = *(0x290c8);
    0x00028d9c add r1, pc, r1                                |         r1 = pc + r1;
    0x00028da0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00028da4 mov r2, r0                                    |         r2 = r0;
    0x00028da8 mov r0, r4                                    |         r0 = r4;
    0x00028dac bl 0x8798                                     |         r0 = fprintf (r0, r1, r2, r3)
    0x00028db0 bl 0x8f6c                                     |         errno_location ();
    0x00028db4 mov r1, sl                                    |         r1 = sl;
    0x00028db8 ldr r2, [r0]                                  |         r2 = *(r0);
    0x00028dbc ldr r0, [pc, 0x30c]                           |         r0 = *(0x290cc);
    0x00028dc0 add r0, pc, r0                                |         r0 = pc + r0;
    0x00028dc4 bl 0x28c34                                    |         fcn_00028c34 ();
    0x00028dc8 b 0x28d6c                                     |         
                                                             |     }
                                                             | label_4:
    0x00028dcc add r4, sp, 8                                 |     r4 += s;
    0x00028dd0 mov r2, 0x1000                                |     r2 = 0x1000;
    0x00028dd4 mov r1, 0                                     |     r1 = 0;
    0x00028dd8 mov r0, r4                                    |     r0 = r4;
    0x00028ddc bl 0x8b4c                                     |     memset (r0, r1, r2);
    0x00028de0 mov r2, 1                                     |     r2 = 1;
    0x00028de4 mov r3, 0                                     |     r3 = 0;
    0x00028de8 strd r2, r3, [r4]                             |     __asm ("strd r2, r3, [r4]");
    0x00028dec ldr r1, [pc, 0x2e0]                           |     r1 = *(0x290d0);
    0x00028df0 mov r2, 6                                     |     r2 = 6;
    0x00028df4 mov r3, 0                                     |     r3 = 0;
    0x00028df8 strd r2, r3, [r4, 8]                          |     __asm ("strd r2, r3, [var_8h_2]");
    0x00028dfc strd r2, r3, [r4, 0x10]                       |     __asm ("strd r2, r3, [var_10h]");
    0x00028e00 mov r3, 0x54                                  |     r3 = 0x54;
    0x00028e04 mvn r6, 0                                     |     r6 = ~0;
    0x00028e08 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x00028e0c str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00028e10 mov r3, 1                                     |     r3 = 1;
    0x00028e14 str r3, [r4, 0x40]                            |     var_40h_2 = r3;
    0x00028e18 str r6, [r4, 0x20]                            |     var_20h = r6;
    0x00028e1c str r6, [r4, 0x24]                            |     var_24h = r6;
    0x00028e20 str r6, [r4, 0x30]                            |     var_30h = r6;
    0x00028e24 str r6, [r4, 0x34]                            |     var_34h = r6;
    0x00028e28 mov r2, r4                                    |     r2 = r4;
    0x00028e2c mov r0, fp                                    |     r0 = fp;
    0x00028e30 bl 0x7f10                                     |     ioctl (r0, r1);
    0x00028e34 mov r5, r6                                    |     r5 = r6;
    0x00028e38 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00028e3c cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00028e40 bge 0x28ebc                                   |         goto label_5;
                                                             |     }
    0x00028e44 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) == 0) {
    0x00028e48 beq 0x28d6c                                   |         goto label_0;
                                                             |     }
    0x00028e4c ldr r3, [pc, 0x25c]                           |     r3 = *(0x290ac);
    0x00028e50 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00028e54 ldr r4, [r3]                                  |     r4 = *(0x290ac);
    0x00028e58 bl 0x8204                                     |     getpid ();
    0x00028e5c ldr r3, [pc, 0x274]                           |     r3 = *(0x290d4);
    0x00028e60 ldr r1, [pc, 0x274]                           |     r1 = *(0x290d8);
    0x00028e64 add r3, pc, r3                                |     r3 = pc + r3;
    0x00028e68 str r3, [sp]                                  |     *(sp) = r3;
    0x00028e6c ldr r3, [pc, 0x26c]                           |     r3 = *(0x290dc);
    0x00028e70 add r1, pc, r1                                |     r1 = pc + r1;
    0x00028e74 add r3, pc, r3                                |     r3 = pc + r3;
    0x00028e78 mov r2, r0                                    |     r2 = r0;
    0x00028e7c mov r0, r4                                    |     r0 = r4;
    0x00028e80 bl 0x8798                                     |     r0 = fprintf (r0, r1, r2, r3)
    0x00028e84 bl 0x8f6c                                     |     errno_location ();
    0x00028e88 mov r1, sl                                    |     r1 = sl;
    0x00028e8c ldr r2, [r0]                                  |     r2 = *(r0);
    0x00028e90 ldr r0, [pc, 0x24c]                           |     r0 = *(0x290e0);
    0x00028e94 add r0, pc, r0                                |     r0 = pc + r0;
    0x00028e98 bl 0x28c34                                    |     fcn_00028c34 ();
                                                             | label_1:
    0x00028e9c mov r4, r5                                    |     r4 = r5;
                                                             | label_2:
    0x00028ea0 mov r0, r8                                    |     r0 = r8;
    0x00028ea4 bl 0x90ec                                     |     closedir ();
                                                             | label_3:
    0x00028ea8 mov r0, r6                                    |     r0 = r6;
    0x00028eac mov r1, r4                                    |     r1 = r4;
    0x00028eb0 add sp, sp, 0x1000                            |     
    0x00028eb4 add sp, sp, 0xc                               |     
    0x00028eb8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_5:
    0x00028ebc ldr r2, [r4, 0x40]                            |     r2 = var_40h_2;
    0x00028ec0 and r3, r3, 0x1000                            |     r3 &= 0x1000;
    0x00028ec4 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00028ec8 bne 0x28f1c                                   |         goto label_6;
                                                             |     }
    0x00028ecc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00028ed0 beq 0x28d6c                                   |         goto label_0;
                                                             |     }
    0x00028ed4 ldr r3, [pc, 0x1d4]                           |     r3 = *(0x290ac);
    0x00028ed8 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00028edc ldr r4, [r3]                                  |     r4 = *(0x290ac);
    0x00028ee0 bl 0x8204                                     |     getpid ();
    0x00028ee4 ldr r3, [pc, 0x1fc]                           |     r3 = *(0x290e4);
    0x00028ee8 ldr r1, [pc, 0x1fc]                           |     r1 = *(0x290e8);
    0x00028eec add r3, pc, r3                                |     r3 = pc + r3;
    0x00028ef0 str r3, [sp]                                  |     *(sp) = r3;
    0x00028ef4 ldr r3, [pc, 0x1f4]                           |     r3 = *(0x290ec);
    0x00028ef8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00028efc add r3, pc, r3                                |     r3 = pc + r3;
    0x00028f00 mov r2, r0                                    |     r2 = r0;
    0x00028f04 mov r0, r4                                    |     r0 = r4;
    0x00028f08 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00028f0c ldr r0, [pc, 0x1e0]                           |     r0 = *(0x290f0);
    0x00028f10 add r0, pc, r0                                |     r0 = pc + r0;
    0x00028f14 bl 0x28c34                                    |     fcn_00028c34 ();
    0x00028f18 b 0x28e9c                                     |     goto label_1;
                                                             | label_6:
    0x00028f1c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00028f20 beq 0x28f6c                                   |         
    0x00028f24 ldr r3, [pc, 0x184]                           |         r3 = *(0x290ac);
    0x00028f28 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00028f2c ldr r5, [r3]                                  |         r5 = *(0x290ac);
    0x00028f30 bl 0x8204                                     |         getpid ();
    0x00028f34 ldr r3, [pc, 0x1bc]                           |         r3 = *(0x290f4);
    0x00028f38 ldr r1, [pc, 0x1bc]                           |         r1 = *(0x290f8);
    0x00028f3c add r3, pc, r3                                |         r3 = pc + r3;
    0x00028f40 str r3, [sp]                                  |         *(sp) = r3;
    0x00028f44 ldr r3, [pc, 0x1b4]                           |         r3 = *(0x290fc);
    0x00028f48 add r1, pc, r1                                |         r1 = pc + r1;
    0x00028f4c add r3, pc, r3                                |         r3 = pc + r3;
    0x00028f50 mov r2, r0                                    |         r2 = r0;
    0x00028f54 mov r0, r5                                    |         r0 = r5;
    0x00028f58 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00028f5c ldr r0, [pc, 0x1a0]                           |         r0 = *(0x29100);
    0x00028f60 ldr r1, [r4, 0x40]                            |         r1 = var_40h_2;
    0x00028f64 add r0, pc, r0                                |         r0 = pc + r0;
    0x00028f68 bl 0x28c34                                    |         fcn_00028c34 ();
                                                             |     }
    0x00028f6c ldr r3, [r4, 0x80]                            |     r3 = var_80h;
    0x00028f70 ldr r5, [sb]                                  |     r5 = *(sb);
    0x00028f74 cmp r3, 0x54                                  |     
    0x00028f78 and r5, r5, 0x1000                            |     r5 &= 0x1000;
                                                             |     if (r3 != 0x54) {
    0x00028f7c bne 0x29054                                   |         goto label_7;
                                                             |     }
    0x00028f80 ldrb r3, [sp, 0xab]                           |     r3 = var_abh;
    0x00028f84 ldrb r2, [sp, 0xac]                           |     r2 = var_ach;
    0x00028f88 ldr r0, [pc, 0x178]                           |     r0 = *(0x29104);
    0x00028f8c orr r2, r3, r2, lsl 8                         |     r2 = r3 | (r2 << 8);
    0x00028f90 add r1, r4, 0xa6                              |     r1 += s2;
    0x00028f94 add r0, pc, r0                                |     r0 = pc + r0;
    0x00028f98 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00028f9c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00028fa0 bne 0x29004                                   |         goto label_8;
                                                             |     }
    0x00028fa4 cmp r5, 0                                     |     
    0x00028fa8 ldr r6, [r4, 0x88]                            |     r6 = var_88h;
    0x00028fac ldr r4, [r4, 0x8c]                            |     r4 = var_8ch;
                                                             |     if (r5 == 0) {
    0x00028fb0 beq 0x28ea0                                   |         goto label_2;
                                                             |     }
    0x00028fb4 ldr r3, [pc, 0xf4]                            |     r3 = *(0x290ac);
    0x00028fb8 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00028fbc ldr r5, [r3]                                  |     r5 = *(0x290ac);
    0x00028fc0 bl 0x8204                                     |     getpid ();
    0x00028fc4 ldr r3, [pc, 0x140]                           |     r3 = *(0x29108);
    0x00028fc8 ldr r1, [pc, 0x140]                           |     r1 = *(0x2910c);
    0x00028fcc add r3, pc, r3                                |     r3 = pc + r3;
    0x00028fd0 str r3, [sp]                                  |     *(sp) = r3;
    0x00028fd4 ldr r3, [pc, 0x138]                           |     r3 = *(0x29110);
    0x00028fd8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00028fdc add r3, pc, r3                                |     r3 = pc + r3;
    0x00028fe0 mov r2, r0                                    |     r2 = r0;
    0x00028fe4 mov r0, r5                                    |     r0 = r5;
    0x00028fe8 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00028fec ldr r0, [pc, 0x124]                           |     r0 = *(0x29114);
    0x00028ff0 mov r2, r6                                    |     r2 = r6;
    0x00028ff4 mov r3, r4                                    |     r3 = r4;
    0x00028ff8 add r0, pc, r0                                |     r0 = pc + r0;
    0x00028ffc bl 0x28c34                                    |     fcn_00028c34 ();
    0x00029000 b 0x28ea0                                     |     goto label_2;
                                                             | label_8:
    0x00029004 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00029008 beq 0x28d6c                                   |         goto label_0;
                                                             |     }
    0x0002900c ldr r3, [pc, 0x9c]                            |     r3 = *(0x290ac);
    0x00029010 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00029014 ldr r4, [r3]                                  |     r4 = *(0x290ac);
    0x00029018 bl 0x8204                                     |     getpid ();
    0x0002901c ldr r3, [pc, 0xf8]                            |     r3 = *(0x29118);
    0x00029020 ldr r1, [pc, 0xf8]                            |     r1 = *(0x2911c);
    0x00029024 add r3, pc, r3                                |     r3 = pc + r3;
    0x00029028 str r3, [sp]                                  |     *(sp) = r3;
    0x0002902c ldr r3, [pc, 0xf0]                            |     r3 = *(0x29120);
    0x00029030 add r1, pc, r1                                |     r1 = pc + r1;
    0x00029034 add r3, pc, r3                                |     r3 = pc + r3;
    0x00029038 mov r2, r0                                    |     r2 = r0;
    0x0002903c mov r0, r4                                    |     r0 = r4;
    0x00029040 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00029044 ldr r0, [pc, 0xdc]                            |     r0 = *(0x29124);
    0x00029048 add r0, pc, r0                                |     r0 = pc + r0;
    0x0002904c bl 0x28c34                                    |     fcn_00028c34 ();
    0x00029050 b 0x28d6c                                     |     goto label_0;
                                                             | label_7:
    0x00029054 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00029058 beq 0x28d6c                                   |         goto label_0;
                                                             |     }
    0x0002905c ldr r3, [pc, 0x4c]                            |     r3 = *(0x290ac);
    0x00029060 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00029064 ldr r5, [r3]                                  |     r5 = *(0x290ac);
    0x00029068 bl 0x8204                                     |     getpid ();
    0x0002906c ldr r3, [pc, 0xb8]                            |     r3 = *(0x29128);
    0x00029070 ldr r1, [pc, 0xb8]                            |     r1 = *(0x2912c);
    0x00029074 add r3, pc, r3                                |     r3 = pc + r3;
    0x00029078 str r3, [sp]                                  |     *(sp) = r3;
    0x0002907c ldr r3, [pc, 0xb0]                            |     r3 = *(0x29130);
    0x00029080 add r1, pc, r1                                |     r1 = pc + r1;
    0x00029084 add r3, pc, r3                                |     r3 = pc + r3;
    0x00029088 mov r2, r0                                    |     r2 = r0;
    0x0002908c mov r0, r5                                    |     r0 = r5;
    0x00029090 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00029094 ldr r0, [pc, 0x9c]                            |     r0 = *(0x29134);
    0x00029098 ldr r1, [r4, 0x80]                            |     r1 = var_80h;
    0x0002909c add r0, pc, r0                                |     r0 = pc + r0;
    0x000290a0 bl 0x28c34                                    |     fcn_00028c34 ();
    0x000290a4 b 0x28d6c                                     |     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/lib/libmount.so.1.1.0 @ 0x34014 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00034014 ()                  | void fcn_00034014 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00034014 push {r1, r2, r3}             |     
    0x00034018 ldr r3, [pc, 0xa4]            |     r3 = *(0x340c0);
    0x0003401c push {r0, r1, r2, r4, lr}     |     
    0x00034020 ldr r1, [pc, 0xa0]            |     r1 = *(0x340c4);
    0x00034024 add r3, pc, r3                |     r3 = pc + r3;
    0x00034028 subs r2, r0, 0                |     r2 = r0 - 0;
    0x0003402c ldr r4, [r3, r1]              |     r4 = *(0x340c0);
                                             |     if (r2 != r0) {
    0x00034030 beq 0x34058                   |         
    0x00034034 ldr r3, [pc, 0x90]            |         
    0x00034038 add r3, pc, r3                |         r3 = pc + r3;
    0x0003403c ldr r3, [r3]                  |         r3 = *(0x340c8);
    0x00034040 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x00034044 bne 0x34058                   |             goto label_1;
                                             |         }
    0x00034048 ldr r1, [pc, 0x80]            |         r1 = *(0x340cc);
    0x0003404c ldr r0, [r4]                  |         r0 = *(r4);
    0x00034050 add r1, pc, r1                |         r1 = pc + r1;
    0x00034054 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x00034058 add r2, sp, 0x18              |     r2 += var_18h;
    0x0003405c ldr r1, [sp, 0x14]            |     r1 = format;
    0x00034060 ldr r0, [r4]                  |     r0 = *(r4);
    0x00034064 str r2, [sp, 4]               |     var_4h = r2;
    0x00034068 bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x0003406c ldr r1, [r4]                  |     r1 = *(r4);
    0x00034070 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00034074 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00034078 beq 0x340b8                   |         goto label_2;
                                             |     }
    0x0003407c ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x00034080 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00034084 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00034088 bhs 0x340ac                   |         goto label_3;
                                             |     }
    0x0003408c add r2, r3, 1                 |     r2 = r3 + 1;
    0x00034090 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00034094 mov r2, 0xa                   |     r2 = 0xa;
    0x00034098 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x0003409c add sp, sp, 0xc               |         
    0x000340a0 pop {r4, lr}                  |         
    0x000340a4 add sp, sp, 0xc               |         
    0x000340a8 bx lr                         |         return;
                                             | label_3:
    0x000340ac mov r0, 0xa                   |         r0 = 0xa;
    0x000340b0 bl 0x91dc                     |         fputc_unlocked ();
    0x000340b4 b 0x3409c                     |         
                                             |     } while (1);
                                             | label_2:
    0x000340b8 mov r0, 0xa                   |     r0 = 0xa;
    0x000340bc bl 0x8ea0                     |     fputc (r0, r1);
    0x000340c0 b 0x3409c                     |     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/lib/libmount.so.1.1.0 @ 0x340d4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000340d4 ()                      | void fcn_000340d4 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
    0x000340d4 push {r0, r1, r4, r5, r6, lr}     |     
    0x000340d8 ldr r6, [pc, 0x124]               |     r6 = *(0x34200);
    0x000340dc subs r4, r0, 0                    |     r4 = r0 - 0;
    0x000340e0 add r6, pc, r6                    |     r6 = pc + r6;
    0x000340e4 bne 0x340f8                       |     
                                                 |     while (r3 == 0) {
                                                 | label_0:
    0x000340e8 mov r5, 0                         |         r5 = 0;
                                                 | label_1:
    0x000340ec mov r0, r5                        |         r0 = r5;
    0x000340f0 add sp, sp, 8                     |         
    0x000340f4 pop {r4, r5, r6, pc}              |         
    0x000340f8 ldrsb r3, [r4]                    |         r3 = *(r4);
    0x000340fc cmp r3, 0                         |         
    0x00034100 beq 0x340e8                       |         
                                                 |     }
    0x00034104 ldr r3, [r4, 0x8c]                |     r3 = *((r4 + 0x8c));
    0x00034108 tst r3, 0x20                      |     
                                                 |     if ((r3 & 0x20) != 0) {
    0x0003410c bne 0x340e8                       |         goto label_0;
                                                 |     }
    0x00034110 ldr r5, [r4, 0x94]                |     r5 = *((r4 + 0x94));
    0x00034114 cmp r5, 0                         |     
                                                 |     if (r5 != 0) {
    0x00034118 bne 0x341fc                       |         goto label_2;
                                                 |     }
    0x0003411c bl 0x3cb40                        |     r0 = fcn_0003cb40 (r0);
    0x00034120 orrs r3, r0, r1                   |     r3 = r0 | r1;
                                                 |     if (r3 != r0) {
    0x00034124 bne 0x34188                       |         goto label_3;
                                                 |     }
    0x00034128 ldr r3, [pc, 0xd8]                |     
    0x0003412c add r3, pc, r3                    |     r3 = pc + r3;
    0x00034130 ldr r3, [r3]                      |     r3 = *(0x34204);
    0x00034134 tst r3, 4                         |     
                                                 |     if ((r3 & 4) == 0) {
    0x00034138 beq 0x340e8                       |         goto label_0;
                                                 |     }
    0x0003413c ldr r3, [pc, 0xc8]                |     r3 = *(0x34208);
    0x00034140 ldr r3, [r6, r3]                  |     r3 = *((r6 + r3));
    0x00034144 ldr r6, [r3]                      |     r6 = *(0x34208);
    0x00034148 bl 0x8204                         |     getpid ();
    0x0003414c ldr r3, [pc, 0xbc]                |     r3 = *(0x3420c);
    0x00034150 ldr r1, [pc, 0xbc]                |     r1 = *(0x34210);
    0x00034154 add r3, pc, r3                    |     r3 = pc + r3;
    0x00034158 str r3, [sp]                      |     *(sp) = r3;
    0x0003415c ldr r3, [pc, 0xb4]                |     r3 = *(0x34214);
    0x00034160 add r1, pc, r1                    |     r1 = pc + r1;
    0x00034164 add r3, pc, r3                    |     r3 = pc + r3;
    0x00034168 mov r2, r0                        |     r2 = r0;
    0x0003416c mov r0, r6                        |     r0 = r6;
    0x00034170 bl 0x8798                         |     fprintf (r0, r1, r2, r3)
    0x00034174 ldr r1, [pc, 0xa0]                |     r1 = *(0x34218);
    0x00034178 mov r0, r4                        |     r0 = r4;
    0x0003417c add r1, pc, r1                    |     r1 = pc + r1;
    0x00034180 bl 0x34014                        |     fcn_00034014 (r0);
    0x00034184 b 0x340ec                         |     goto label_1;
                                                 | label_3:
    0x00034188 mov r3, r5                        |     r3 = r5;
    0x0003418c mov r2, r5                        |     r2 = r5;
    0x00034190 bl 0x3bc18                        |     r0 = fcn_0003bc18 (r0, r1);
    0x00034194 cmp r0, 0                         |     
    0x00034198 str r0, [r4, 0x94]                |     *((r4 + 0x94)) = r0;
                                                 |     if (r0 == 0) {
    0x0003419c bne 0x341fc                       |         
    0x000341a0 ldr r3, [pc, 0x78]                |         
    0x000341a4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000341a8 ldr r3, [r3]                      |         r3 = *(0x3421c);
    0x000341ac tst r3, 4                         |         
                                                 |         if ((r3 & 4) == 0) {
    0x000341b0 beq 0x341fc                       |             goto label_2;
                                                 |         }
    0x000341b4 ldr r3, [pc, 0x50]                |         r3 = *(0x34208);
    0x000341b8 ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x000341bc ldr r5, [r3]                      |         r5 = *(0x34208);
    0x000341c0 bl 0x8204                         |         getpid ();
    0x000341c4 ldr r3, [pc, 0x58]                |         r3 = *(0x34220);
    0x000341c8 ldr r1, [pc, 0x58]                |         r1 = *(0x34224);
    0x000341cc add r3, pc, r3                    |         r3 = pc + r3;
    0x000341d0 str r3, [sp]                      |         *(sp) = r3;
    0x000341d4 ldr r3, [pc, 0x50]                |         r3 = *(0x34228);
    0x000341d8 add r1, pc, r1                    |         r1 = pc + r1;
    0x000341dc add r3, pc, r3                    |         r3 = pc + r3;
    0x000341e0 mov r2, r0                        |         r2 = r0;
    0x000341e4 mov r0, r5                        |         r0 = r5;
    0x000341e8 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x000341ec ldr r1, [pc, 0x3c]                |         r1 = *(0x3422c);
    0x000341f0 mov r0, r4                        |         r0 = r4;
    0x000341f4 add r1, pc, r1                    |         r1 = pc + r1;
    0x000341f8 bl 0x34014                        |         fcn_00034014 (r0);
                                                 |     }
                                                 | label_2:
    0x000341fc ldr r5, [r4, 0x94]                |     r5 = *((r4 + 0x94));
    0x00034200 b 0x340ec                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x342c8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000342c8 ()                                  | void fcn_000342c8 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     char * s2;
                                                             |     int32_t var_10h;
                                                             |     char * * endptr;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000342c8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000342cc ldr r3, [pc, 0x23c]                           |     r3 = *(0x3450c);
    0x000342d0 mov sb, r2                                    |     sb = r2;
    0x000342d4 ldr r2, [pc, 0x238]                           |     
    0x000342d8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000342dc add r2, pc, r2                                |     r2 = pc + r2;
    0x000342e0 ldr r2, [r2]                                  |     r2 = *(0x34510);
    0x000342e4 sub sp, sp, 0x24                              |     
    0x000342e8 tst r2, 8                                     |     
    0x000342ec mov r4, r0                                    |     r4 = r0;
    0x000342f0 mov r5, r1                                    |     r5 = r1;
                                                             |     if ((r2 & 8) != 0) {
    0x000342f4 beq 0x34340                                   |         
    0x000342f8 ldr r2, [pc, 0x218]                           |         r2 = *(0x34514);
    0x000342fc ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x00034300 ldr r6, [r3]                                  |         r6 = *(r3);
    0x00034304 bl 0x8204                                     |         getpid ();
    0x00034308 ldr r3, [pc, 0x20c]                           |         r3 = *(0x34518);
    0x0003430c ldr r1, [pc, 0x20c]                           |         r1 = *(0x3451c);
    0x00034310 add r3, pc, r3                                |         r3 = pc + r3;
    0x00034314 str r3, [sp]                                  |         *(sp) = r3;
    0x00034318 ldr r3, [pc, 0x204]                           |         r3 = *(0x34520);
    0x0003431c add r1, pc, r1                                |         r1 = pc + r1;
    0x00034320 add r3, pc, r3                                |         r3 = pc + r3;
    0x00034324 mov r2, r0                                    |         r2 = r0;
    0x00034328 mov r0, r6                                    |         r0 = r6;
    0x0003432c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00034330 ldr r0, [pc, 0x1f0]                           |         r0 = *(0x34524);
    0x00034334 mov r1, r4                                    |         r1 = r4;
    0x00034338 add r0, pc, r0                                |         r0 = pc + r0;
    0x0003433c bl 0x34234                                    |         fcn_00034234 ();
                                                             |     }
    0x00034340 mov r0, r4                                    |     r0 = r4;
    0x00034344 bl 0x8bd0                                     |     opendir ();
    0x00034348 mov r7, 0                                     |     r7 = 0;
    0x0003434c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00034350 moveq r0, r4                                  |         r0 = r4;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x00034354 beq 0x3448c                                   |         goto label_2;
                                                             |     }
    0x00034358 ldr r0, [r5]                                  |     r0 = *(r5);
    0x0003435c bl 0x91c4                                     |     free (r0);
    0x00034360 ldr sl, [pc, 0x1c4]                           |     sl = *(0x0003452c);
    0x00034364 ldr r3, [pc, 0x1c4]                           |     r3 = *(0x3452c);
    0x00034368 ldr fp, [pc, 0x1c4]                           |     fp = *(0x34530);
    0x0003436c add r3, pc, r3                                |     r3 = pc + r3;
    0x00034370 mov r8, r7                                    |     r8 = r7;
    0x00034374 add sl, pc, sl                                |     sl = pc + sl;
    0x00034378 add fp, pc, fp                                |     
    0x0003437c str r7, [r5]                                  |     *(r5) = r7;
    0x00034380 str r3, [sp, 0xc]                             |     s2 = r3;
                                                             |     do {
                                                             | label_0:
    0x00034384 mov r0, r4                                    |         r0 = r4;
    0x00034388 bl 0x89fc                                     |         r0 = readdir64 ();
    0x0003438c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00034390 bne 0x343cc                                   |             
    0x00034394 cmp r8, 0                                     |             
                                                             |             if (r8 != 0) {
    0x00034398 beq 0x343bc                                   |                 
    0x0003439c ldr r0, [r5]                                  |                 r0 = *(r5);
    0x000343a0 cmp r0, 0                                     |                 
                                                             |                 if (r0 == 0) {
    0x000343a4 beq 0x343bc                                   |                     goto label_3;
                                                             |                 }
    0x000343a8 ldr r3, [pc, 0x188]                           |                 r3 = *(0x34534);
    0x000343ac mov r2, 4                                     |                 r2 = 4;
    0x000343b0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000343b4 mov r1, r8                                    |                 r1 = r8;
    0x000343b8 bl 0x821c                                     |                 qsort ();
                                                             |             }
                                                             | label_3:
    0x000343bc mov r0, r4                                    |             r0 = r4;
    0x000343c0 bl 0x90ec                                     |             closedir ();
    0x000343c4 mov r0, r8                                    |             r0 = r8;
    0x000343c8 b 0x3448c                                     |             goto label_2;
                                                             |         }
    0x000343cc ldrb r2, [r0, 0x12]                           |         r2 = *((r0 + 0x12));
    0x000343d0 sub r3, r2, 6                                 |         r3 = r2 - 6;
    0x000343d4 tst r3, 0xfb                                  |         
                                                             |         if ((r3 & 0xfb) == 0) {
    0x000343d8 movne r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if ((r3 & 0xfb) != 0) {
    0x000343dc moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x000343e0 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x000343e4 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x000343e8 cmp r3, 0                                     |         
    0x000343ec bne 0x34384                                   |         
                                                             |     } while (r3 != 0);
    0x000343f0 add r6, r0, 0x13                              |     r6 = r0 + 0x13;
    0x000343f4 ldr r1, [sp, 0xc]                             |     r1 = s2;
    0x000343f8 mov r0, r6                                    |     r0 = r6;
    0x000343fc bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00034400 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00034404 beq 0x34384                                   |         goto label_0;
                                                             |     }
    0x00034408 mov r1, sl                                    |     r1 = sl;
    0x0003440c mov r0, r6                                    |     r0 = r6;
    0x00034410 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00034414 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00034418 beq 0x34384                                   |         goto label_0;
                                                             |     }
    0x0003441c cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x00034420 beq 0x34494                                   |         goto label_4;
                                                             |     }
    0x00034424 add r2, sp, 0x18                              |     r2 += var_18h;
    0x00034428 mov r1, fp                                    |     r1 = fp;
    0x0003442c mov r0, r6                                    |     r0 = r6;
    0x00034430 bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x00034434 cmp r0, 1                                     |     
                                                             |     if (r0 != 1) {
                                                             | label_1:
    0x00034438 bne 0x34384                                   |         goto label_0;
                                                             |     }
    0x0003443c ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00034440 cmp r3, 7                                     |     
                                                             |     if (r3 < 7) {
    0x00034444 bls 0x34384                                   |         goto label_0;
                                                             |     }
    0x00034448 add r6, r8, 1                                 |     r6 = r8 + 1;
    0x0003444c cmp r6, r7                                    |     
                                                             |     if (r6 < r7) {
    0x00034450 bls 0x344f8                                   |         goto label_5;
                                                             |     }
    0x00034454 add r7, r7, 1                                 |     r7++;
    0x00034458 lsl r1, r7, 2                                 |     r1 = r7 << 2;
    0x0003445c ldr r0, [r5]                                  |     r0 = *(r5);
    0x00034460 bl 0x89cc                                     |     r0 = realloc (r0, r1);
    0x00034464 subs r3, r0, 0                                |     r3 = r0 - 0;
                                                             |     if (r3 != r0) {
    0x00034468 bne 0x344f4                                   |         goto label_6;
                                                             |     }
    0x0003446c ldr r0, [r5]                                  |     r0 = *(r5);
    0x00034470 str r3, [sp, 0xc]                             |     s2 = r3;
    0x00034474 bl 0x91c4                                     |     free (r0);
    0x00034478 ldr r3, [sp, 0xc]                             |     r3 = s2;
    0x0003447c mov r0, r4                                    |     r0 = r4;
    0x00034480 str r3, [r5]                                  |     *(r5) = r3;
    0x00034484 bl 0x90ec                                     |     closedir ();
    0x00034488 mvn r0, 0                                     |     r0 = ~0;
                                                             | label_2:
    0x0003448c add sp, sp, 0x24                              |     
    0x00034490 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_4:
    0x00034494 add r1, sp, 0x20                              |     r1 += var_20h;
    0x00034498 str sb, [r1, -4]!                             |     *((r1 -= 4)) = sb;
    0x0003449c str r1, [sp, 0x14]                            |     endptr = r1;
    0x000344a0 str r1, [sp, 0x10]                            |     var_10h = r1;
    0x000344a4 bl 0x8f6c                                     |     errno_location ();
    0x000344a8 mov r2, 0xa                                   |     r2 = 0xa;
    0x000344ac ldr r1, [sp, 0x14]                            |     r1 = endptr;
    0x000344b0 str sb, [r0]                                  |     *(r0) = sb;
    0x000344b4 str r0, [sp, 0x10]                            |     var_10h = r0;
    0x000344b8 mov r0, r6                                    |     r0 = r6;
    0x000344bc bl 0x863c                                     |     strtol (r0, r1, r2);
    0x000344c0 ldr r2, [sp, 0x1c]                            |     r2 = var_1ch;
    0x000344c4 cmp r6, r2                                    |     
    0x000344c8 str r0, [sp, 0x18]                            |     var_18h = r0;
                                                             |     if (r6 == r2) {
    0x000344cc beq 0x34384                                   |         goto label_0;
                                                             |     }
    0x000344d0 cmp r2, 0                                     |     
    0x000344d4 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
                                                             |     if (r2 == 0) {
    0x000344d8 beq 0x344e8                                   |         goto label_7;
                                                             |     }
    0x000344dc ldrsb r2, [r2]                                |     r2 = *(r2);
    0x000344e0 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x000344e4 bne 0x34384                                   |         goto label_0;
                                                             |     }
                                                             | label_7:
    0x000344e8 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000344ec cmp r3, 0                                     |     
    0x000344f0 b 0x34438                                     |     goto label_1;
                                                             | label_6:
    0x000344f4 str r3, [r5]                                  |     *(r5) = r3;
                                                             | label_5:
    0x000344f8 ldr r3, [r5]                                  |     r3 = *(r5);
    0x000344fc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00034500 ldrne r2, [sp, 0x18]                          |         r2 = var_18h;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00034504 strne r2, [r3, r8, lsl 2]                     |         offset_0 = r8 << 2;
                                                             |         *((r3 + offset_0)) = r2;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00034508 movne r8, r6                                  |         r8 = r6;
                                                             |     }
    0x0003450c b 0x34384                                     |     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/lib/libmount.so.1.1.0 @ 0x3453c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003453c ()                              | void fcn_0003453c (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0003453c push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x00034540 ldr r8, [pc, 0x1a0]                       |     r8 = *(0x346e4);
    0x00034544 subs r4, r0, 0                            |     r4 = r0 - 0;
    0x00034548 add r8, pc, r8                            |     r8 = pc + r8;
                                                         |     if (r4 != r0) {
    0x0003454c mvneq r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r4 == r0) {
    0x00034550 beq 0x346bc                               |         goto label_1;
                                                         |     }
    0x00034554 ldr r0, [r4, 0x84]                        |     r0 = *((r4 + 0x84));
    0x00034558 mov r6, r1                                |     r6 = r1;
    0x0003455c cmp r0, 0                                 |     
                                                         |     if (r0 >= 0) {
    0x00034560 blt 0x345c4                               |         
    0x00034564 bl 0x917c                                 |         close (r0);
    0x00034568 ldr r3, [pc, 0x17c]                       |         
    0x0003456c add r3, pc, r3                            |         r3 = pc + r3;
    0x00034570 ldr r3, [r3]                              |         r3 = *(0x346e8);
    0x00034574 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) == 0) {
    0x00034578 beq 0x345c4                               |             goto label_2;
                                                         |         }
    0x0003457c ldr r3, [pc, 0x16c]                       |         r3 = *(0x346ec);
    0x00034580 ldr r3, [r8, r3]                          |         r3 = *((r8 + r3));
    0x00034584 ldr r5, [r3]                              |         r5 = *(0x346ec);
    0x00034588 bl 0x8204                                 |         getpid ();
    0x0003458c ldr r3, [pc, 0x160]                       |         r3 = *(0x346f0);
    0x00034590 ldr r1, [pc, 0x160]                       |         r1 = *(0x346f4);
    0x00034594 add r3, pc, r3                            |         r3 = pc + r3;
    0x00034598 str r3, [sp]                              |         *(sp) = r3;
    0x0003459c ldr r3, [pc, 0x158]                       |         r3 = *(0x346f8);
    0x000345a0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000345a4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000345a8 mov r2, r0                                |         r2 = r0;
    0x000345ac mov r0, r5                                |         r0 = r5;
    0x000345b0 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x000345b4 ldr r1, [pc, 0x144]                       |         r1 = *(0x346fc);
    0x000345b8 mov r0, r4                                |         r0 = r4;
    0x000345bc add r1, pc, r1                            |         r1 = pc + r1;
    0x000345c0 bl 0x34014                                |         fcn_00034014 (r0);
                                                         |     }
                                                         | label_2:
    0x000345c4 ldrb r3, [r4, 0x90]                       |     r3 = *((r4 + 0x90));
    0x000345c8 mov r7, 0                                 |     r7 = 0;
    0x000345cc and r3, r3, 0xfa                          |     r3 &= 0xfa;
    0x000345d0 mov r0, r4                                |     r0 = r4;
    0x000345d4 mvn r5, 0                                 |     r5 = ~0;
    0x000345d8 str r5, [r4, 0x84]                        |     *((r4 + 0x84)) = r5;
    0x000345dc str r7, [r4, 0x88]                        |     *((r4 + 0x88)) = r7;
    0x000345e0 strb r3, [r4, 0x90]                       |     *((r4 + 0x90)) = r3;
    0x000345e4 mov r2, 0xe8                              |     r2 = 0xe8;
    0x000345e8 strb r7, [r0], 0x98                       |     *(r0) = r7;
                                                         |     r0 += 0x98;
    0x000345ec mov r1, r7                                |     r1 = r7;
    0x000345f0 bl 0x8b4c                                 |     memset (r0, r1, r2);
    0x000345f4 cmp r6, r7                                |     
                                                         |     if (r6 == r7) {
    0x000345f8 beq 0x346ac                               |         goto label_3;
                                                         |     }
    0x000345fc ldrsb r3, [r6]                            |     r3 = *(r6);
    0x00034600 cmp r3, 0x2f                              |     
                                                         |     if (r3 == 0x2f) {
    0x00034604 beq 0x346d0                               |         goto label_4;
                                                         |     }
    0x00034608 ldr r3, [r4, 0x8c]                        |     r3 = *((r4 + 0x8c));
    0x0003460c tst r3, 0x80                              |     
                                                         |     if ((r3 & 0x80) == 0) {
    0x00034610 beq 0x346c4                               |         goto label_5;
                                                         |     }
    0x00034614 mov r0, r6                                |     r0 = r6;
    0x00034618 bl 0x905c                                 |     r0 = strlen (r0);
    0x0003461c cmp r0, 4                                 |     
                                                         |     if (r0 > 4) {
    0x00034620 movls r0, r5                              |         r0 = r5;
                                                         |     }
                                                         |     if (r0 < 4) {
    0x00034624 bls 0x346bc                               |         goto label_1;
                                                         |     }
    0x00034628 ldr r3, [pc, 0xd4]                        |     r3 = *(0x34700);
    0x0003462c add r6, r6, 4                             |     r6 += 4;
    0x00034630 add r3, pc, r3                            |     r3 = pc + r3;
                                                         |     do {
    0x00034634 ldr r2, [pc, 0xcc]                        |         r2 = *(0x34704);
    0x00034638 str r6, [sp]                              |         *(sp) = r6;
    0x0003463c add r2, pc, r2                            |         r2 = pc + r2;
    0x00034640 mov r1, 0x80                              |         r1 = 0x80;
    0x00034644 mov r0, r4                                |         r0 = r4;
    0x00034648 bl 0x809c                                 |         snprintf (r0, r1, r2, r3);
                                                         | label_0:
    0x0003464c ldr r3, [pc, 0xb8]                        |         
    0x00034650 add r3, pc, r3                            |         r3 = pc + r3;
    0x00034654 ldr r3, [r3]                              |         r3 = *(0x34708);
    0x00034658 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x0003465c beq 0x346ac                               |             
    0x00034660 ldr r3, [pc, 0x88]                        |             r3 = *(0x346ec);
    0x00034664 ldr r3, [r8, r3]                          |             r3 = *((r8 + r3));
    0x00034668 ldr r5, [r3]                              |             r5 = *(0x346ec);
    0x0003466c bl 0x8204                                 |             getpid ();
    0x00034670 ldr r3, [pc, 0x98]                        |             r3 = *(0x3470c);
    0x00034674 ldr r1, [pc, 0x98]                        |             r1 = *(0x34710);
    0x00034678 add r3, pc, r3                            |             r3 = pc + r3;
    0x0003467c str r3, [sp]                              |             *(sp) = r3;
    0x00034680 ldr r3, [pc, 0x90]                        |             r3 = *(0x34714);
    0x00034684 add r1, pc, r1                            |             r1 = pc + r1;
    0x00034688 add r3, pc, r3                            |             r3 = pc + r3;
    0x0003468c mov r2, r0                                |             r2 = r0;
    0x00034690 mov r0, r5                                |             r0 = r5;
    0x00034694 bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x00034698 ldr r1, [pc, 0x7c]                        |             r1 = *(0x34718);
    0x0003469c mov r2, r6                                |             r2 = r6;
    0x000346a0 add r1, pc, r1                            |             r1 = pc + r1;
    0x000346a4 mov r0, r4                                |             r0 = r4;
    0x000346a8 bl 0x34014                                |             fcn_00034014 (r0);
                                                         |         }
                                                         | label_3:
    0x000346ac ldr r0, [r4, 0x94]                        |         r0 = *((r4 + 0x94));
    0x000346b0 bl 0x395c8                                |         fcn_000395c8 (r0);
    0x000346b4 mov r0, 0                                 |         r0 = 0;
    0x000346b8 str r0, [r4, 0x94]                        |         *((r4 + 0x94)) = r0;
                                                         | label_1:
    0x000346bc add sp, sp, 8                             |         
    0x000346c0 pop {r4, r5, r6, r7, r8, pc}              |         
                                                         | label_5:
    0x000346c4 ldr r3, [pc, 0x54]                        |         r3 = *(0x3471c);
    0x000346c8 add r3, pc, r3                            |         r3 = pc + r3;
    0x000346cc b 0x34634                                 |         
                                                         |     } while (1);
                                                         | label_4:
    0x000346d0 mov r2, 0x80                              |     r2 = 0x80;
    0x000346d4 mov r1, r6                                |     r1 = r6;
    0x000346d8 mov r0, r4                                |     r0 = r4;
    0x000346dc bl 0x896c                                 |     strncpy (r0, r1, r2);
    0x000346e0 strb r7, [r4, 0x7f]                       |     *((r4 + 0x7f)) = r7;
    0x000346e4 b 0x3464c                                 |     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/lib/libmount.so.1.1.0 @ 0x3473c */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0003473c ()                          | void fcn_0003473c (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     char * * endptr;
                                                     |     int32_t var_18h;
                                                     |     void * s2;
                                                     |     int32_t var_f4h;
                                                     |     int32_t var_21ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0003473c push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00034740 ldr r5, [pc, 0x364]                   |     r5 = *(0x34aa8);
    0x00034744 sub sp, sp, 0x21c                     |     
    0x00034748 add r7, sp, 0x70                      |     r7 += s2;
    0x0003474c mov r4, r0                            |     r4 = r0;
    0x00034750 mov r8, r1                            |     r8 = r1;
    0x00034754 mov r2, 0x1a8                         |     r2 = 0x1a8;
    0x00034758 mov r1, 0                             |     r1 = 0;
    0x0003475c mov r0, r7                            |     r0 = r7;
    0x00034760 bl 0x8b4c                             |     memset (r0, r1, r2);
    0x00034764 mvn r3, 0                             |     r3 = ~0;
    0x00034768 cmp r4, 0                             |     
    0x0003476c add r5, pc, r5                        |     r5 = pc + r5;
    0x00034770 str r3, [sp, 0xf4]                    |     var_f4h = r3;
                                                     |     if (r4 != 0) {
    0x00034774 mvneq r6, 0x15                        |         r6 = ~0x15;
                                                     |     }
                                                     |     if (r4 == 0) {
    0x00034778 beq 0x34a88                           |         goto label_1;
                                                     |     }
    0x0003477c ldr r6, [pc, 0x32c]                   |     r6 = *(0x34aac);
    0x00034780 add r6, pc, r6                        |     r6 = pc + r6;
    0x00034784 ldr sb, [r6]                          |     sb = *(0x34aac);
    0x00034788 cmp sb, 0                             |     
                                                     |     if (sb != 0) {
    0x0003478c bne 0x3485c                           |         goto label_2;
                                                     |     }
    0x00034790 ldr r0, [pc, 0x31c]                   |     r0 = *(0x34ab0);
    0x00034794 add r0, pc, r0                        |     r0 = pc + r0;
    0x00034798 bl 0x815c                             |     r0 = getenv (r0);
    0x0003479c subs r3, r0, 0                        |     r3 = r0 - 0;
                                                     |     if (r3 != r0) {
    0x000347a0 streq r3, [r6]                        |         *(r6) = r3;
                                                     |     }
                                                     |     if (r3 != r0) {
    0x000347a4 beq 0x347e8                           |         
    0x000347a8 mov r2, sb                            |         r2 = sb;
    0x000347ac add r1, sp, 8                         |         r1 += endptr;
    0x000347b0 bl 0x8450                             |         r0 = strtoul (r0, r1, r2);
    0x000347b4 mov r6, r0                            |         r6 = r0;
    0x000347b8 ldr r0, [sp, 8]                       |         r0 = endptr;
    0x000347bc cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x000347c0 beq 0x347dc                           |             
    0x000347c4 ldr r1, [pc, 0x2ec]                   |             r1 = *(0x34ab4);
    0x000347c8 add r1, pc, r1                        |             r1 = pc + r1;
    0x000347cc bl 0x8cb4                             |             strcmp (r0, r1);
    0x000347d0 ldr r3, [pc, 0x2e4]                   |             r3 = *(0x34ab8);
    0x000347d4 cmp r0, 0                             |             
                                                     |             if (r0 == 0) {
    0x000347d8 moveq r6, r3                          |                 r6 = r3;
                                                     |                 goto label_3;
                                                     |             }
                                                     |         }
                                                     | label_3:
    0x000347dc ldr r3, [pc, 0x2dc]                   |         r3 = *(0x34abc);
    0x000347e0 add r3, pc, r3                        |         r3 = pc + r3;
    0x000347e4 str r6, [r3]                          |         *(r3) = r6;
                                                     |     }
    0x000347e8 ldr r3, [pc, 0x2d4]                   |     r3 = *(0x34ac0);
    0x000347ec ldr r6, [pc, r3]                      |     r6 = *(0x000347f4);
    0x000347f0 cmp r6, 0                             |     
                                                     |     if (r6 == 0) {
    0x000347f4 beq 0x34848                           |         goto label_0;
                                                     |     }
    0x000347f8 bl 0x8378                             |     r0 = getuid ();
    0x000347fc mov sb, r0                            |     sb = r0;
    0x00034800 bl 0x8054                             |     r0 = geteuid ();
    0x00034804 cmp sb, r0                            |     
    0x00034808 beq 0x34a94                           |     
                                                     |     while (sb != r0) {
    0x0003480c ldr r3, [pc, 0x2b4]                   |         r3 = *(0x34ac4);
    0x00034810 orr r6, r6, 0x1000000                 |         r6 |= 0x1000000;
    0x00034814 add r3, pc, r3                        |         r3 = pc + r3;
    0x00034818 str r6, [r3]                          |         *(r3) = r6;
    0x0003481c ldr r3, [pc, 0x2a8]                   |         r3 = *(0x34ac8);
    0x00034820 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00034824 ldr r6, [r3]                          |         r6 = *(0x34ac8);
    0x00034828 bl 0x8204                             |         getpid ();
    0x0003482c ldr r3, [pc, 0x29c]                   |         r3 = *(0x34acc);
    0x00034830 ldr r1, [pc, 0x29c]                   |         r1 = *(0x34ad0);
    0x00034834 add r3, pc, r3                        |         r3 = pc + r3;
    0x00034838 add r1, pc, r1                        |         r1 = pc + r1;
    0x0003483c mov r2, r0                            |         r2 = r0;
    0x00034840 mov r0, r6                            |         r0 = r6;
    0x00034844 bl 0x8798                             |         fprintf (r0, r1, r2, r3)
                                                     | label_0:
    0x00034848 ldr r2, [pc, 0x288]                   |         r2 = *(0x34ad4);
    0x0003484c add r2, pc, r2                        |         r2 = pc + r2;
    0x00034850 ldr r3, [r2]                          |         r3 = *(0x34ad4);
    0x00034854 orr r3, r3, 2                         |         r3 |= 2;
    0x00034858 str r3, [r2]                          |         *(r2) = r3;
                                                     | label_2:
    0x0003485c ldr r3, [pc, 0x278]                   |         
    0x00034860 add r3, pc, r3                        |         r3 = pc + r3;
    0x00034864 ldr r3, [r3]                          |         r3 = *(0x34ad8);
    0x00034868 tst r3, 4                             |         
                                                     |         if ((r3 & 4) != 0) {
    0x0003486c beq 0x348b8                           |             
    0x00034870 ldr r3, [pc, 0x254]                   |             r3 = *(0x34ac8);
    0x00034874 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x00034878 ldr r6, [r3]                          |             r6 = *(0x34ac8);
    0x0003487c bl 0x8204                             |             getpid ();
    0x00034880 ldr r3, [pc, 0x258]                   |             r3 = *(0x34adc);
    0x00034884 ldr r1, [pc, 0x258]                   |             r1 = *(0x34ae0);
    0x00034888 add r3, pc, r3                        |             r3 = pc + r3;
    0x0003488c str r3, [sp]                          |             *(sp) = r3;
    0x00034890 ldr r3, [pc, 0x250]                   |             r3 = *(0x34ae4);
    0x00034894 add r1, pc, r1                        |             r1 = pc + r1;
    0x00034898 add r3, pc, r3                        |             r3 = pc + r3;
    0x0003489c mov r2, r0                            |             r2 = r0;
    0x000348a0 mov r0, r6                            |             r0 = r6;
    0x000348a4 bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x000348a8 ldr r1, [pc, 0x23c]                   |             r1 = *(0x34ae8);
    0x000348ac mov r0, r4                            |             r0 = r4;
    0x000348b0 add r1, pc, r1                        |             r1 = pc + r1;
    0x000348b4 bl 0x34014                            |             fcn_00034014 (r0);
                                                     |         }
    0x000348b8 mov r2, 0x1a8                         |         r2 = 0x1a8;
    0x000348bc mov r1, r7                            |         r1 = r7;
    0x000348c0 mov r0, r4                            |         r0 = r4;
    0x000348c4 bl 0x82a0                             |         memcpy (r0, r1, r2);
    0x000348c8 str r8, [r4, 0x8c]                    |         *((r4 + 0x8c)) = r8;
    0x000348cc mov r1, 0                             |         r1 = 0;
    0x000348d0 mov r0, r4                            |         r0 = r4;
    0x000348d4 bl 0x3453c                            |         r0 = fcn_0003453c (r0, r1);
    0x000348d8 subs r6, r0, 0                        |         r6 = r0 - 0;
                                                     |         if (r6 == r0) {
    0x000348dc bne 0x34a88                           |             
    0x000348e0 ldr r0, [pc, 0x208]                   |             r0 = *(0x34aec);
    0x000348e4 add r7, sp, 8                         |             r7 += endptr;
    0x000348e8 mov r1, r7                            |             r1 = r7;
    0x000348ec add r0, pc, r0                        |             r0 = pc + r0;
    0x000348f0 bl 0x8060                             |             r0 = stat64 ();
    0x000348f4 cmp r0, 0                             |             
                                                     |             if (r0 == 0) {
    0x000348f8 bne 0x3490c                           |                 
    0x000348fc ldr r3, [sp, 0x18]                    |                 r3 = var_18h;
    0x00034900 and r3, r3, 0xf000                    |                 r3 &= 0xf000;
    0x00034904 cmp r3, 0x4000                        |                 
                                                     |                 if (r3 == 0x4000) {
    0x00034908 beq 0x34978                           |                     goto label_4;
                                                     |                 }
                                                     |             }
    0x0003490c ldr r3, [r4, 0x8c]                    |             r3 = *((r4 + 0x8c));
    0x00034910 bic r3, r3, 0x40                      |             r3 = BIT_MASK (r3, 0x40);
    0x00034914 orr r3, r3, 0x20                      |             r3 |= 0x20;
    0x00034918 str r3, [r4, 0x8c]                    |             *((r4 + 0x8c)) = r3;
    0x0003491c ldr r3, [pc, 0x1d0]                   |             
    0x00034920 add r3, pc, r3                        |             r3 = pc + r3;
    0x00034924 ldr r3, [r3]                          |             r3 = *(0x34af0);
    0x00034928 tst r3, 4                             |             
                                                     |             if ((r3 & 4) != 0) {
    0x0003492c beq 0x34978                           |                 
    0x00034930 ldr r3, [pc, 0x194]                   |                 r3 = *(0x34ac8);
    0x00034934 ldr r3, [r5, r3]                      |                 r3 = *((r5 + r3));
    0x00034938 ldr r8, [r3]                          |                 r8 = *(0x34ac8);
    0x0003493c bl 0x8204                             |                 getpid ();
    0x00034940 ldr r3, [pc, 0x1b0]                   |                 r3 = *(0x34af4);
    0x00034944 ldr r1, [pc, 0x1b0]                   |                 r1 = *(0x34af8);
    0x00034948 add r3, pc, r3                        |                 r3 = pc + r3;
    0x0003494c str r3, [sp]                          |                 *(sp) = r3;
    0x00034950 ldr r3, [pc, 0x1a8]                   |                 r3 = *(0x34afc);
    0x00034954 add r1, pc, r1                        |                 r1 = pc + r1;
    0x00034958 add r3, pc, r3                        |                 r3 = pc + r3;
    0x0003495c mov r2, r0                            |                 r2 = r0;
    0x00034960 mov r0, r8                            |                 r0 = r8;
    0x00034964 bl 0x8798                             |                 fprintf (r0, r1, r2, r3)
    0x00034968 ldr r1, [pc, 0x194]                   |                 r1 = *(0x34b00);
    0x0003496c mov r0, r4                            |                 r0 = r4;
    0x00034970 add r1, pc, r1                        |                 r1 = pc + r1;
    0x00034974 bl 0x34014                            |                 fcn_00034014 (r0);
                                                     |             }
                                                     | label_4:
    0x00034978 ldr r3, [r4, 0x8c]                    |             r3 = *((r4 + 0x8c));
    0x0003497c tst r3, 0x20                          |             
                                                     |             if ((r3 & 0x20) == 0) {
    0x00034980 bne 0x349fc                           |                 
    0x00034984 bl 0x33f40                            |                 fcn_00033f40 ();
    0x00034988 ldr r3, [pc, 0x178]                   |                 r3 = *(0x34b04);
    0x0003498c cmp r0, r3                            |                 
                                                     |                 if (r0 <= r3) {
    0x00034990 ble 0x349fc                           |                     goto label_5;
                                                     |                 }
    0x00034994 ldr r3, [r4, 0x8c]                    |                 r3 = *((r4 + 0x8c));
    0x00034998 orr r3, r3, 0x40                      |                 r3 |= 0x40;
    0x0003499c str r3, [r4, 0x8c]                    |                 *((r4 + 0x8c)) = r3;
    0x000349a0 ldr r3, [pc, 0x164]                   |                 
    0x000349a4 add r3, pc, r3                        |                 r3 = pc + r3;
    0x000349a8 ldr r3, [r3]                          |                 r3 = *(0x34b08);
    0x000349ac tst r3, 4                             |                 
                                                     |                 if ((r3 & 4) == 0) {
    0x000349b0 beq 0x349fc                           |                     goto label_5;
                                                     |                 }
    0x000349b4 ldr r3, [pc, 0x110]                   |                 r3 = *(0x34ac8);
    0x000349b8 ldr r3, [r5, r3]                      |                 r3 = *((r5 + r3));
    0x000349bc ldr r8, [r3]                          |                 r8 = *(0x34ac8);
    0x000349c0 bl 0x8204                             |                 getpid ();
    0x000349c4 ldr r3, [pc, 0x144]                   |                 r3 = *(0x34b0c);
    0x000349c8 ldr r1, [pc, 0x144]                   |                 r1 = *(0x34b10);
    0x000349cc add r3, pc, r3                        |                 r3 = pc + r3;
    0x000349d0 str r3, [sp]                          |                 *(sp) = r3;
    0x000349d4 ldr r3, [pc, 0x13c]                   |                 r3 = *(0x34b14);
    0x000349d8 add r1, pc, r1                        |                 r1 = pc + r1;
    0x000349dc add r3, pc, r3                        |                 r3 = pc + r3;
    0x000349e0 mov r2, r0                            |                 r2 = r0;
    0x000349e4 mov r0, r8                            |                 r0 = r8;
    0x000349e8 bl 0x8798                             |                 fprintf (r0, r1, r2, r3)
    0x000349ec ldr r1, [pc, 0x128]                   |                 r1 = *(0x34b18);
    0x000349f0 mov r0, r4                            |                 r0 = r4;
    0x000349f4 add r1, pc, r1                        |                 r1 = pc + r1;
    0x000349f8 bl 0x34014                            |                 fcn_00034014 (r0);
                                                     |             }
                                                     | label_5:
    0x000349fc ldr r3, [r4, 0x8c]                    |             r3 = *((r4 + 0x8c));
    0x00034a00 tst r3, 0x100                         |             
                                                     |             if ((r3 & 0x100) != 0) {
    0x00034a04 bne 0x34a88                           |                 goto label_1;
                                                     |             }
    0x00034a08 ldr r0, [pc, 0x110]                   |             r0 = *(0x34b1c);
    0x00034a0c mov r1, r7                            |             r1 = r7;
    0x00034a10 add r0, pc, r0                        |             r0 = pc + r0;
    0x00034a14 bl 0x8060                             |             r0 = stat64 ();
    0x00034a18 cmp r0, 0                             |             
                                                     |             if (r0 != 0) {
    0x00034a1c bne 0x34a88                           |                 goto label_1;
                                                     |             }
    0x00034a20 ldr r3, [r4, 0x8c]                    |             r3 = *((r4 + 0x8c));
    0x00034a24 orr r3, r3, 0x100                     |             r3 |= 0x100;
    0x00034a28 str r3, [r4, 0x8c]                    |             *((r4 + 0x8c)) = r3;
    0x00034a2c ldr r3, [pc, 0xf0]                    |             
    0x00034a30 add r3, pc, r3                        |             r3 = pc + r3;
    0x00034a34 ldr r3, [r3]                          |             r3 = *(0x34b20);
    0x00034a38 tst r3, 4                             |             
                                                     |             if ((r3 & 4) == 0) {
    0x00034a3c beq 0x34a88                           |                 goto label_1;
                                                     |             }
    0x00034a40 ldr r3, [pc, 0x84]                    |             r3 = *(0x34ac8);
    0x00034a44 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x00034a48 ldr r5, [r3]                          |             r5 = *(0x34ac8);
    0x00034a4c bl 0x8204                             |             getpid ();
    0x00034a50 ldr r3, [pc, 0xd0]                    |             r3 = *(0x34b24);
    0x00034a54 ldr r1, [pc, 0xd0]                    |             r1 = *(0x34b28);
    0x00034a58 add r3, pc, r3                        |             r3 = pc + r3;
    0x00034a5c str r3, [sp]                          |             *(sp) = r3;
    0x00034a60 ldr r3, [pc, 0xc8]                    |             r3 = *(0x34b2c);
    0x00034a64 add r1, pc, r1                        |             r1 = pc + r1;
    0x00034a68 add r3, pc, r3                        |             r3 = pc + r3;
    0x00034a6c mov r2, r0                            |             r2 = r0;
    0x00034a70 mov r0, r5                            |             r0 = r5;
    0x00034a74 bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x00034a78 ldr r1, [pc, 0xb4]                    |             r1 = *(0x34b30);
    0x00034a7c mov r0, r4                            |             r0 = r4;
    0x00034a80 add r1, pc, r1                        |             r1 = pc + r1;
    0x00034a84 bl 0x34014                            |             fcn_00034014 (r0);
                                                     |         }
                                                     | label_1:
    0x00034a88 mov r0, r6                            |         r0 = r6;
    0x00034a8c add sp, sp, 0x21c                     |         
    0x00034a90 pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00034a94 bl 0x7f7c                             |         r0 = getgid ();
    0x00034a98 mov sb, r0                            |         sb = r0;
    0x00034a9c bl 0x818c                             |         r0 = getegid ();
    0x00034aa0 cmp sb, r0                            |         
    0x00034aa4 bne 0x3480c                           |         
                                                     |     }
    0x00034aa8 b 0x34848                             |     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/lib/libmount.so.1.1.0 @ 0x34b70 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00034b70 ()                          | void fcn_00034b70 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x00034b70 push {r0, r1, r2, r4, r5, lr}         |     
    0x00034b74 ldr r5, [pc, 0xcc]                    |     r5 = *(0x34c44);
    0x00034b78 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x00034b7c add r5, pc, r5                        |     r5 = pc + r5;
                                                     |     if (r4 == r0) {
    0x00034b80 beq 0x34c40                           |         goto label_1;
                                                     |     }
    0x00034b84 ldrsb r3, [r4]                        |     r3 = *(r4);
    0x00034b88 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00034b8c beq 0x34c40                           |         goto label_1;
                                                     |     }
    0x00034b90 ldr r3, [r4, 0x84]                    |     r3 = *((r4 + 0x84));
    0x00034b94 cmp r3, 0                             |     
                                                     |     if (r3 >= 0) {
    0x00034b98 bge 0x34c28                           |         goto label_2;
                                                     |     }
    0x00034b9c ldr r1, [r4, 0x8c]                    |     r1 = *((r4 + 0x8c));
    0x00034ba0 and r1, r1, 2                         |     r1 &= 2;
    0x00034ba4 str r1, [r4, 0x88]                    |     *((r4 + 0x88)) = r1;
    0x00034ba8 orr r1, r1, 0x80000                   |     r1 |= 0x80000;
    0x00034bac bl 0x8ba0                             |     open64 ();
    0x00034bb0 ldr r3, [pc, 0x94]                    |     
    0x00034bb4 add r3, pc, r3                        |     r3 = pc + r3;
    0x00034bb8 ldr r3, [r3]                          |     r3 = *(0x34c48);
    0x00034bbc tst r3, 4                             |     
    0x00034bc0 str r0, [r4, 0x84]                    |     *((r4 + 0x84)) = r0;
                                                     |     if ((r3 & 4) == 0) {
    0x00034bc4 beq 0x34c28                           |         goto label_2;
                                                     |     }
    0x00034bc8 ldr r3, [pc, 0x80]                    |     r3 = *(0x34c4c);
    0x00034bcc ldr r3, [r5, r3]                      |     r3 = *((r5 + r3));
    0x00034bd0 ldr r5, [r3]                          |     r5 = *(0x34c4c);
    0x00034bd4 bl 0x8204                             |     getpid ();
    0x00034bd8 ldr r3, [pc, 0x74]                    |     r3 = *(0x34c50);
    0x00034bdc ldr r1, [pc, 0x74]                    |     r1 = *(0x34c54);
    0x00034be0 add r3, pc, r3                        |     r3 = pc + r3;
    0x00034be4 str r3, [sp]                          |     *(sp) = r3;
    0x00034be8 ldr r3, [pc, 0x6c]                    |     r3 = *(0x34c58);
    0x00034bec add r1, pc, r1                        |     r1 = pc + r1;
    0x00034bf0 add r3, pc, r3                        |     r3 = pc + r3;
    0x00034bf4 mov r2, r0                            |     r2 = r0;
    0x00034bf8 mov r0, r5                            |     r0 = r5;
    0x00034bfc bl 0x8798                             |     fprintf (r0, r1, r2, r3)
    0x00034c00 ldr r3, [r4, 0x8c]                    |     r3 = *((r4 + 0x8c));
    0x00034c04 tst r3, 2                             |     
                                                     |     if ((r3 & 2) != 0) {
    0x00034c08 bne 0x34c34                           |         goto label_3;
                                                     |     }
    0x00034c0c ldr r3, [pc, 0x4c]                    |     r3 = *(0x34c5c);
    0x00034c10 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     do {
    0x00034c14 ldr r1, [pc, 0x48]                    |         r1 = *(0x34c60);
    0x00034c18 mov r2, r4                            |         r2 = r4;
    0x00034c1c add r1, pc, r1                        |         r1 = pc + r1;
    0x00034c20 mov r0, r4                            |         r0 = r4;
    0x00034c24 bl 0x34014                            |         fcn_00034014 (r0);
                                                     | label_2:
    0x00034c28 ldr r0, [r4, 0x84]                    |         r0 = *((r4 + 0x84));
                                                     | label_0:
    0x00034c2c add sp, sp, 0xc                       |         
    0x00034c30 pop {r4, r5, pc}                      |         
                                                     | label_3:
    0x00034c34 ldr r3, [pc, 0x2c]                    |         r3 = *(0x34c64);
    0x00034c38 add r3, pc, r3                        |         r3 = pc + r3;
    0x00034c3c b 0x34c14                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x00034c40 mvn r0, 0x15                          |     r0 = ~0x15;
    0x00034c44 b 0x34c2c                             |     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/lib/libmount.so.1.1.0 @ 0x34c84 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00034c84 ()                      | void fcn_00034c84 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_18h;
                                                 |     int32_t var_74h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00034c84 ldr r3, [pc, 0x100]               |     r3 = *(0x34d88);
    0x00034c88 push {r4, r5, r6, r7, lr}         |     
    0x00034c8c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00034c90 add r3, pc, r3                    |     r3 = pc + r3;
    0x00034c94 sub sp, sp, 0x74                  |     
                                                 |     if (r4 != r0) {
    0x00034c98 mvneq r0, 0x15                    |         r0 = ~0x15;
                                                 |     }
                                                 |     if (r4 != r0) {
    0x00034c9c beq 0x34d84                       |         
    0x00034ca0 ldr r2, [pc, 0xe8]                |         
    0x00034ca4 mov r5, r1                        |         r5 = r1;
    0x00034ca8 add r2, pc, r2                    |         r2 = pc + r2;
    0x00034cac ldr r2, [r2]                      |         r2 = *(0x34d8c);
    0x00034cb0 add r6, r4, 0x180                 |         r6 = r4 + 0x180;
    0x00034cb4 tst r2, 8                         |         
                                                 |         if ((r2 & 8) != 0) {
    0x00034cb8 beq 0x34d04                       |             
    0x00034cbc ldr r2, [pc, 0xd0]                |             r2 = *(0x34d90);
    0x00034cc0 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x00034cc4 ldr r7, [r3]                      |             r7 = *(r3);
    0x00034cc8 bl 0x8204                         |             getpid ();
    0x00034ccc ldr r3, [pc, 0xc4]                |             r3 = *(0x34d94);
    0x00034cd0 ldr r1, [pc, 0xc4]                |             r1 = *(0x34d98);
    0x00034cd4 add r3, pc, r3                    |             r3 = pc + r3;
    0x00034cd8 str r3, [sp]                      |             *(sp) = r3;
    0x00034cdc ldr r3, [pc, 0xbc]                |             r3 = *(0x34d9c);
    0x00034ce0 add r1, pc, r1                    |             r1 = pc + r1;
    0x00034ce4 add r3, pc, r3                    |             r3 = pc + r3;
    0x00034ce8 mov r2, r0                        |             r2 = r0;
    0x00034cec mov r0, r7                        |             r0 = r7;
    0x00034cf0 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00034cf4 ldr r1, [pc, 0xa8]                |             r1 = *(0x34da0);
    0x00034cf8 mov r0, r6                        |             r0 = r6;
    0x00034cfc add r1, pc, r1                    |             r1 = pc + r1;
    0x00034d00 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00034d04 mov r2, 0x24                      |         r2 = 0x24;
    0x00034d08 mov r1, 0                         |         r1 = 0;
    0x00034d0c mov r0, r6                        |         r0 = r6;
    0x00034d10 bl 0x8b4c                         |         memset (r0, r1, r2);
    0x00034d14 mvn r3, 0                         |         r3 = ~0;
    0x00034d18 str r3, [r4, 0x188]               |         *((r4 + 0x188)) = r3;
    0x00034d1c ldrb r3, [r4, 0x19c]              |         r3 = *((r4 + 0x19c));
    0x00034d20 str r5, [r4, 0x1a0]               |         *((r4 + 0x1a0)) = r5;
    0x00034d24 orr r3, r3, 2                     |         r3 |= 2;
    0x00034d28 strb r3, [r4, 0x19c]              |         *((r4 + 0x19c)) = r3;
    0x00034d2c ldrb r3, [r4, 0x90]               |         r3 = *((r4 + 0x90));
    0x00034d30 tst r3, 2                         |         
                                                 |         if ((r3 & 2) == 0) {
    0x00034d34 bne 0x34d80                       |             
    0x00034d38 ldr r3, [r4, 0x8c]                |             r3 = *((r4 + 0x8c));
    0x00034d3c tst r3, 0x80                      |             
                                                 |             if ((r3 & 0x80) == 0) {
    0x00034d40 bne 0x34d74                       |                 
    0x00034d44 ldr r0, [pc, 0x5c]                |                 r0 = *(0x34da4);
    0x00034d48 add r1, sp, 8                     |                 r1 += var_8h;
    0x00034d4c add r0, pc, r0                    |                 r0 = pc + r0;
    0x00034d50 bl 0x8060                         |                 r0 = stat64 ();
    0x00034d54 cmp r0, 0                         |                 
                                                 |                 if (r0 != 0) {
    0x00034d58 bne 0x34d74                       |                     goto label_0;
                                                 |                 }
    0x00034d5c ldr r3, [sp, 0x18]                |                 r3 = var_18h;
    0x00034d60 and r3, r3, 0xf000                |                 r3 &= 0xf000;
    0x00034d64 cmp r3, 0x4000                    |                 
                                                 |                 if (r3 != 0x4000) {
    0x00034d68 ldreq r3, [r4, 0x8c]              |                     r3 = *((r4 + 0x8c));
                                                 |                 }
                                                 |                 if (r3 != 0x4000) {
    0x00034d6c orreq r3, r3, 0x80                |                     r3 |= 0x80;
                                                 |                 }
                                                 |                 if (r3 == 0x4000) {
    0x00034d70 streq r3, [r4, 0x8c]              |                     *((r4 + 0x8c)) = r3;
                                                 |                     goto label_0;
                                                 |                 }
                                                 |             }
                                                 | label_0:
    0x00034d74 ldrb r3, [r4, 0x90]               |             r3 = *((r4 + 0x90));
    0x00034d78 orr r3, r3, 2                     |             r3 |= 2;
    0x00034d7c strb r3, [r4, 0x90]               |             *((r4 + 0x90)) = r3;
                                                 |         }
    0x00034d80 mov r0, 0                         |         r0 = 0;
                                                 |     }
    0x00034d84 add sp, sp, 0x74                  |     
    0x00034d88 pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0x34dac */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00034dac ()                      | void fcn_00034dac (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
    0x00034dac ldr r3, [pc, 0xb4]                |     r3 = *(0x34e64);
    0x00034db0 push {r0, r1, r4, r5, r6, lr}     |     
    0x00034db4 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00034db8 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r4 != r0) {
    0x00034dbc mvneq r0, 0x15                    |         r0 = ~0x15;
                                                 |     }
                                                 |     if (r4 != r0) {
    0x00034dc0 beq 0x34e60                       |         
    0x00034dc4 ldr r2, [pc, 0xa0]                |         
    0x00034dc8 add r5, r4, 0x180                 |         r5 = r4 + 0x180;
    0x00034dcc add r2, pc, r2                    |         r2 = pc + r2;
    0x00034dd0 ldr r2, [r2]                      |         r2 = *(0x34e68);
    0x00034dd4 tst r2, 8                         |         
                                                 |         if ((r2 & 8) != 0) {
    0x00034dd8 beq 0x34e24                       |             
    0x00034ddc ldr r2, [pc, 0x8c]                |             r2 = *(0x34e6c);
    0x00034de0 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x00034de4 ldr r6, [r3]                      |             r6 = *(r3);
    0x00034de8 bl 0x8204                         |             getpid ();
    0x00034dec ldr r3, [pc, 0x80]                |             r3 = *(0x34e70);
    0x00034df0 ldr r1, [pc, 0x80]                |             r1 = *(0x34e74);
    0x00034df4 add r3, pc, r3                    |             r3 = pc + r3;
    0x00034df8 str r3, [sp]                      |             *(sp) = r3;
    0x00034dfc ldr r3, [pc, 0x78]                |             r3 = *(0x34e78);
    0x00034e00 add r1, pc, r1                    |             r1 = pc + r1;
    0x00034e04 add r3, pc, r3                    |             r3 = pc + r3;
    0x00034e08 mov r2, r0                        |             r2 = r0;
    0x00034e0c mov r0, r6                        |             r0 = r6;
    0x00034e10 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00034e14 ldr r1, [pc, 0x64]                |             r1 = *(0x34e7c);
    0x00034e18 mov r0, r5                        |             r0 = r5;
    0x00034e1c add r1, pc, r1                    |             r1 = pc + r1;
    0x00034e20 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00034e24 ldr r0, [r4, 0x18c]               |         r0 = *((r4 + 0x18c));
    0x00034e28 bl 0x91c4                         |         free (r0);
    0x00034e2c ldr r0, [r4, 0x180]               |         r0 = *((r4 + 0x180));
    0x00034e30 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00034e34 beq 0x34e3c                       |             
    0x00034e38 bl 0x8b94                         |             fclose (r0);
                                                 |         }
    0x00034e3c ldr r0, [r4, 0x184]               |         r0 = *((r4 + 0x184));
    0x00034e40 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00034e44 beq 0x34e4c                       |             
    0x00034e48 bl 0x90ec                         |             closedir ();
                                                 |         }
    0x00034e4c mov r2, 0x24                      |         r2 = 0x24;
    0x00034e50 mov r1, 0                         |         r1 = 0;
    0x00034e54 mov r0, r5                        |         r0 = r5;
    0x00034e58 bl 0x8b4c                         |         memset (r0, r1, r2);
    0x00034e5c mov r0, 0                         |         r0 = 0;
                                                 |     }
    0x00034e60 add sp, sp, 8                     |     
    0x00034e64 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/lib/libmount.so.1.1.0 @ 0x34e84 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00034e84 ()                              | void fcn_00034e84 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00034e84 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00034e88 ldr r6, [pc, 0xa0]                        |     r6 = *(0x34f2c);
    0x00034e8c mov r4, r0                                |     r4 = r0;
    0x00034e90 bl 0x8f6c                                 |     errno_location ();
    0x00034e94 cmp r4, 0                                 |     
    0x00034e98 add r6, pc, r6                            |     r6 = pc + r6;
                                                         |     if (r4 != 0) {
    0x00034e9c beq 0x34f28                               |         
    0x00034ea0 ldr r3, [pc, 0x8c]                        |         
    0x00034ea4 mov r5, r0                                |         r5 = r0;
    0x00034ea8 add r3, pc, r3                            |         r3 = pc + r3;
    0x00034eac ldr r3, [r3]                              |         r3 = *(0x34f30);
    0x00034eb0 ldr r7, [r0]                              |         r7 = *(r0);
    0x00034eb4 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x00034eb8 beq 0x34f04                               |             
    0x00034ebc ldr r3, [pc, 0x74]                        |             r3 = *(0x34f34);
    0x00034ec0 ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x00034ec4 ldr r6, [r3]                              |             r6 = *(0x34f34);
    0x00034ec8 bl 0x8204                                 |             getpid ();
    0x00034ecc ldr r3, [pc, 0x68]                        |             r3 = *(0x34f38);
    0x00034ed0 ldr r1, [pc, 0x68]                        |             r1 = *(0x34f3c);
    0x00034ed4 add r3, pc, r3                            |             r3 = pc + r3;
    0x00034ed8 str r3, [sp]                              |             *(sp) = r3;
    0x00034edc ldr r3, [pc, 0x60]                        |             r3 = *(0x34f40);
    0x00034ee0 add r1, pc, r1                            |             r1 = pc + r1;
    0x00034ee4 add r3, pc, r3                            |             r3 = pc + r3;
    0x00034ee8 mov r2, r0                                |             r2 = r0;
    0x00034eec mov r0, r6                                |             r0 = r6;
    0x00034ef0 bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x00034ef4 ldr r1, [pc, 0x4c]                        |             r1 = *(0x34f44);
    0x00034ef8 mov r0, r4                                |             r0 = r4;
    0x00034efc add r1, pc, r1                            |             r1 = pc + r1;
    0x00034f00 bl 0x34014                                |             fcn_00034014 (r0);
                                                         |         }
    0x00034f04 ldr r0, [r4, 0x80]                        |         r0 = *((r4 + 0x80));
    0x00034f08 bl 0x91c4                                 |         free (r0);
    0x00034f0c mov r1, 0                                 |         r1 = 0;
    0x00034f10 str r1, [r4, 0x80]                        |         *((r4 + 0x80)) = r1;
    0x00034f14 mov r0, r4                                |         r0 = r4;
    0x00034f18 bl 0x3453c                                |         fcn_0003453c (r0, r1);
    0x00034f1c mov r0, r4                                |         r0 = r4;
    0x00034f20 bl 0x34dac                                |         fcn_00034dac (r0);
    0x00034f24 str r7, [r5]                              |         *(r5) = r7;
                                                         |     }
    0x00034f28 add sp, sp, 0xc                           |     
    0x00034f2c pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0x34fac */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.00034fac ()                              | void fcn_00034fac (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00034fac push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00034fb0 ldr r6, [pc, 0x144]                       |     r6 = *(0x350f8);
    0x00034fb4 mov r4, r0                                |     r4 = r0;
    0x00034fb8 bl 0x8f6c                                 |     errno_location ();
    0x00034fbc cmp r4, 0                                 |     
    0x00034fc0 add r6, pc, r6                            |     r6 = pc + r6;
                                                         |     if (r4 != 0) {
    0x00034fc4 beq 0x34fd4                               |         
    0x00034fc8 ldrb r3, [r4, 0x90]                       |         r3 = *((r4 + 0x90));
    0x00034fcc ands r3, r3, 4                            |         r3 &= 4;
                                                         |         if (r3 == r3) {
    0x00034fd0 beq 0x34fe4                               |             goto label_3;
                                                         |         }
                                                         |     }
    0x00034fd4 mov r3, 0x16                              |     r3 = 0x16;
    0x00034fd8 str r3, [r0]                              |     *(r0) = r3;
                                                         |     do {
                                                         | label_2:
    0x00034fdc mov r5, 0                                 |         r5 = 0;
    0x00034fe0 b 0x34ff8                                 |         goto label_1;
                                                         | label_3:
    0x00034fe4 str r3, [r0]                              |         *(r0) = r3;
    0x00034fe8 ldrb r3, [r4, 0x90]                       |         r3 = *((r4 + 0x90));
    0x00034fec ands r7, r3, 1                            |         r7 = r3 & 1;
                                                         |         if (r7 != r3) {
    0x00034ff0 beq 0x35004                               |             
                                                         | label_0:
    0x00034ff4 add r5, r4, 0x98                          |             r5 = r4 + 0x98;
                                                         | label_1:
    0x00034ff8 mov r0, r5                                |             r0 = r5;
    0x00034ffc add sp, sp, 0xc                           |             
    0x00035000 pop {r4, r5, r6, r7, pc}                  |             
                                                         |         }
    0x00035004 mov r0, r4                                |         r0 = r4;
    0x00035008 bl 0x34b70                                |         r0 = fcn_00034b70 (r0);
    0x0003500c cmp r0, 0                                 |         
    0x00035010 blt 0x34fdc                               |         
                                                         |     } while (r0 < 0);
    0x00035014 add r5, r4, 0x98                          |     r5 = r4 + 0x98;
    0x00035018 mov r2, r5                                |     r2 = r5;
    0x0003501c ldr r1, [pc, 0xdc]                        |     r1 = *(0x350fc);
    0x00035020 bl 0x7f10                                 |     ioctl (r0, r1);
    0x00035024 ldr r3, [pc, 0xd8]                        |     r3 = *(0x35100);
    0x00035028 ldr r2, [pc, r3]                          |     r2 = *(0x00035030);
    0x0003502c ldrb r3, [r4, 0x90]                       |     r3 = *((r4 + 0x90));
    0x00035030 and r2, r2, 4                             |     r2 &= 4;
    0x00035034 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00035038 bne 0x3509c                               |         goto label_4;
                                                         |     }
    0x0003503c orr r3, r3, 1                             |     r3 |= 1;
    0x00035040 bic r3, r3, 4                             |     r3 = BIT_MASK (r3, 4);
    0x00035044 cmp r2, 0                                 |     
    0x00035048 strb r3, [r4, 0x90]                       |     *((r4 + 0x90)) = r3;
                                                         |     if (r2 == 0) {
    0x0003504c beq 0x34ff4                               |         goto label_0;
                                                         |     }
    0x00035050 ldr r3, [pc, 0xb0]                        |     r3 = *(0x35104);
    0x00035054 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x00035058 ldr r6, [r3]                              |     r6 = *(0x35104);
    0x0003505c bl 0x8204                                 |     getpid ();
    0x00035060 ldr r3, [pc, 0xa4]                        |     r3 = *(0x35108);
    0x00035064 ldr r1, [pc, 0xa4]                        |     r1 = *(0x3510c);
    0x00035068 add r3, pc, r3                            |     r3 = pc + r3;
    0x0003506c str r3, [sp]                              |     *(sp) = r3;
    0x00035070 ldr r3, [pc, 0x9c]                        |     r3 = *(0x35110);
    0x00035074 add r1, pc, r1                            |     r1 = pc + r1;
    0x00035078 add r3, pc, r3                            |     r3 = pc + r3;
    0x0003507c mov r2, r0                                |     r2 = r0;
    0x00035080 mov r0, r6                                |     r0 = r6;
    0x00035084 bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x00035088 ldr r1, [pc, 0x88]                        |     r1 = *(0x35114);
    0x0003508c mov r0, r4                                |     r0 = r4;
    0x00035090 add r1, pc, r1                            |     r1 = pc + r1;
    0x00035094 bl 0x34014                                |     fcn_00034014 (r0);
    0x00035098 b 0x34ff8                                 |     goto label_1;
                                                         | label_4:
    0x0003509c orr r3, r3, 4                             |     r3 |= 4;
    0x000350a0 cmp r2, 0                                 |     
    0x000350a4 strb r3, [r4, 0x90]                       |     *((r4 + 0x90)) = r3;
                                                         |     if (r2 == 0) {
    0x000350a8 beq 0x34fdc                               |         goto label_2;
                                                         |     }
    0x000350ac ldr r3, [pc, 0x54]                        |     r3 = *(0x35104);
    0x000350b0 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x000350b4 ldr r5, [r3]                              |     r5 = *(0x35104);
    0x000350b8 bl 0x8204                                 |     getpid ();
    0x000350bc ldr r3, [pc, 0x58]                        |     r3 = *(0x35118);
    0x000350c0 ldr r1, [pc, 0x58]                        |     r1 = *(0x3511c);
    0x000350c4 add r3, pc, r3                            |     r3 = pc + r3;
    0x000350c8 str r3, [sp]                              |     *(sp) = r3;
    0x000350cc ldr r3, [pc, 0x50]                        |     r3 = *(0x35120);
    0x000350d0 add r1, pc, r1                            |     r1 = pc + r1;
    0x000350d4 add r3, pc, r3                            |     r3 = pc + r3;
    0x000350d8 mov r2, r0                                |     r2 = r0;
    0x000350dc mov r0, r5                                |     r0 = r5;
    0x000350e0 bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x000350e4 ldr r1, [pc, 0x3c]                        |     r1 = *(0x35124);
    0x000350e8 mov r0, r4                                |     r0 = r4;
    0x000350ec add r1, pc, r1                            |     r1 = pc + r1;
    0x000350f0 bl 0x34014                                |     fcn_00034014 (r0);
    0x000350f4 mov r5, r7                                |     r5 = r7;
    0x000350f8 b 0x34ff8                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x3512c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0003512c ()              | void fcn_0003512c (int32_t arg1) {
                                         |     int32_t var_0h;
                                         |     int32_t var_ch;
                                         |     int32_t var_14h;
                                         |     r0 = arg1;
    0x0003512c push {r4, r5, lr}         |     
    0x00035130 ldr r5, [pc, 0xd4]        |     r5 = *(0x35208);
    0x00035134 sub sp, sp, 0x14          |     
    0x00035138 mov r4, r0                |     r4 = r0;
    0x0003513c bl 0x340d4                |     fcn_000340d4 (r0);
    0x00035140 mov r3, 0                 |     r3 = 0;
    0x00035144 add r5, pc, r5            |     r5 = pc + r5;
    0x00035148 str r3, [sp, 0xc]         |     var_ch = r3;
    0x0003514c cmp r0, r3                |     
                                         |     if (r0 != r3) {
    0x00035150 beq 0x35164               |         
    0x00035154 ldr r2, [pc, 0xb4]        |         r2 = *(0x3520c);
    0x00035158 add r1, sp, 0xc           |         r1 += var_ch;
    0x0003515c add r2, pc, r2            |         r2 = pc + r2;
    0x00035160 bl 0x3a630                |         fcn_0003a630 (r0);
                                         |     }
    0x00035164 ldr r3, [sp, 0xc]         |     r3 = var_ch;
    0x00035168 cmp r3, 0                 |     
                                         |     if (r3 == 0) {
    0x0003516c bne 0x351a0               |         
    0x00035170 ldr r3, [r4, 0x8c]        |         r3 = *((r4 + 0x8c));
    0x00035174 tst r3, 0x40              |         
                                         |         if ((r3 & 0x40) != 0) {
    0x00035178 bne 0x351a0               |             goto label_0;
                                         |         }
    0x0003517c mov r0, r4                |         r0 = r4;
    0x00035180 bl 0x34fac                |         r0 = fcn_00034fac (r0);
    0x00035184 cmp r0, 0                 |         
                                         |         if (r0 == 0) {
    0x00035188 beq 0x351a0               |             goto label_0;
                                         |         }
    0x0003518c mov r3, 0x2a              |         r3 = 0x2a;
    0x00035190 strh r3, [r0, 0x76]       |         *((r0 + 0x76)) = r3;
    0x00035194 add r0, r0, 0x38          |         r0 += 0x38;
    0x00035198 bl 0x8ae0                 |         strdup (r0);
    0x0003519c str r0, [sp, 0xc]         |         var_ch = r0;
                                         |     }
                                         | label_0:
    0x000351a0 ldr r3, [pc, 0x6c]        |     
    0x000351a4 add r3, pc, r3            |     r3 = pc + r3;
    0x000351a8 ldr r3, [r3]              |     r3 = *(0x35210);
    0x000351ac tst r3, 4                 |     
                                         |     if ((r3 & 4) != 0) {
    0x000351b0 beq 0x35200               |         
    0x000351b4 ldr r3, [pc, 0x5c]        |         r3 = *(0x35214);
    0x000351b8 ldr r3, [r5, r3]          |         r3 = *((r5 + r3));
    0x000351bc ldr r5, [r3]              |         r5 = *(0x35214);
    0x000351c0 bl 0x8204                 |         getpid ();
    0x000351c4 ldr r3, [pc, 0x50]        |         r3 = *(0x35218);
    0x000351c8 ldr r1, [pc, 0x50]        |         r1 = *(0x3521c);
    0x000351cc add r3, pc, r3            |         r3 = pc + r3;
    0x000351d0 str r3, [sp]              |         *(sp) = r3;
    0x000351d4 ldr r3, [pc, 0x48]        |         r3 = *(0x35220);
    0x000351d8 add r1, pc, r1            |         r1 = pc + r1;
    0x000351dc add r3, pc, r3            |         r3 = pc + r3;
    0x000351e0 mov r2, r0                |         r2 = r0;
    0x000351e4 mov r0, r5                |         r0 = r5;
    0x000351e8 bl 0x8798                 |         fprintf (r0, r1, r2, r3)
    0x000351ec ldr r1, [pc, 0x34]        |         r1 = *(0x35224);
    0x000351f0 ldr r2, [sp, 0xc]         |         r2 = var_ch;
    0x000351f4 add r1, pc, r1            |         r1 = pc + r1;
    0x000351f8 mov r0, r4                |         r0 = r4;
    0x000351fc bl 0x34014                |         fcn_00034014 (r0);
                                         |     }
    0x00035200 ldr r0, [sp, 0xc]         |     r0 = var_ch;
    0x00035204 add sp, sp, 0x14          |     
    0x00035208 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x3522c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003522c ()                              | void fcn_0003522c (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0003522c push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x00035230 ldr r8, [pc, 0xdc]                        |     r8 = *(0x35310);
    0x00035234 mov r6, r0                                |     r6 = r0;
    0x00035238 mov r7, r1                                |     r7 = r1;
    0x0003523c bl 0x340d4                                |     fcn_000340d4 (r0);
    0x00035240 add r8, pc, r8                            |     r8 = pc + r8;
    0x00035244 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00035248 beq 0x352d4                               |         goto label_2;
                                                         |     }
    0x0003524c ldr r2, [pc, 0xc4]                        |     r2 = *(0x35314);
    0x00035250 mov r1, r7                                |     r1 = r7;
    0x00035254 add r2, pc, r2                            |     r2 = pc + r2;
    0x00035258 bl 0x3a94c                                |     r0 = fcn_0003a94c (r0);
    0x0003525c subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 != r0) {
    0x00035260 bne 0x352d8                               |         goto label_3;
                                                         |     }
                                                         | label_0:
    0x00035264 mov r4, 0                                 |     r4 = 0;
                                                         |     do {
                                                         | label_1:
    0x00035268 ldr r3, [pc, 0xac]                        |         
    0x0003526c add r3, pc, r3                            |         r3 = pc + r3;
    0x00035270 ldr r3, [r3]                              |         r3 = *(0x35318);
    0x00035274 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x00035278 beq 0x352c8                               |             
    0x0003527c ldr r3, [pc, 0x9c]                        |             r3 = *(0x3531c);
    0x00035280 ldr r3, [r8, r3]                          |             r3 = *((r8 + r3));
    0x00035284 ldr r5, [r3]                              |             r5 = *(0x3531c);
    0x00035288 bl 0x8204                                 |             getpid ();
    0x0003528c ldr r3, [pc, 0x90]                        |             r3 = *(0x35320);
    0x00035290 ldr r1, [pc, 0x90]                        |             r1 = *(0x35324);
    0x00035294 add r3, pc, r3                            |             r3 = pc + r3;
    0x00035298 str r3, [sp]                              |             *(sp) = r3;
    0x0003529c ldr r3, [pc, 0x88]                        |             r3 = *(0x35328);
    0x000352a0 add r1, pc, r1                            |             r1 = pc + r1;
    0x000352a4 add r3, pc, r3                            |             r3 = pc + r3;
    0x000352a8 mov r2, r0                                |             r2 = r0;
    0x000352ac mov r0, r5                                |             r0 = r5;
    0x000352b0 bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x000352b4 ldr r1, [pc, 0x74]                        |             r1 = *(0x3532c);
    0x000352b8 mov r2, r4                                |             r2 = r4;
    0x000352bc add r1, pc, r1                            |             r1 = pc + r1;
    0x000352c0 mov r0, r6                                |             r0 = r6;
    0x000352c4 bl 0x34014                                |             fcn_00034014 (r0);
                                                         |         }
    0x000352c8 mov r0, r4                                |         r0 = r4;
    0x000352cc add sp, sp, 8                             |         
    0x000352d0 pop {r4, r5, r6, r7, r8, pc}              |         
                                                         | label_2:
    0x000352d4 mvn r4, 0x15                              |         r4 = ~0x15;
                                                         | label_3:
    0x000352d8 ldr r3, [r6, 0x8c]                        |         r3 = *((r6 + 0x8c));
    0x000352dc ands r5, r3, 0x40                         |         r5 = r3 & 0x40;
    0x000352e0 bne 0x35268                               |         
                                                         |     } while (r5 != r3);
    0x000352e4 mov r0, r6                                |     r0 = r6;
    0x000352e8 bl 0x34fac                                |     r0 = fcn_00034fac (r0);
    0x000352ec cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000352f0 beq 0x35304                               |         
    0x000352f4 cmp r7, 0                                 |         
    0x000352f8 ldrdne r2, r3, [r0, 0x18]                 |         __asm ("ldrdne r2, r3, [r0, 0x18]");
    0x000352fc strdne r2, r3, [r7]                       |         __asm ("strdne r2, r3, [r7]");
    0x00035300 b 0x35264                                 |         goto label_0;
                                                         |     }
    0x00035304 bl 0x8f6c                                 |     r0 = errno_location ();
    0x00035308 ldr r4, [r0]                              |     r4 = *(r0);
    0x0003530c rsb r4, r4, 0                             |     r4 -= ;
    0x00035310 b 0x35268                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x35334 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00035334 ()                              | void fcn_00035334 (int32_t arg1, char * arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00035334 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00035338 ldr r6, [pc, 0x1b0]                       |     r6 = *(0x354ec);
    0x0003533c mov r4, r0                                |     r4 = r0;
    0x00035340 bl 0x3453c                                |     fcn_0003453c (r0, r1);
    0x00035344 add r6, pc, r6                            |     r6 = pc + r6;
    0x00035348 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 != r0) {
    0x0003534c bne 0x353d8                               |         goto label_0;
                                                         |     }
    0x00035350 ldr r3, [r4, 0x1a0]                       |     r3 = *((r4 + 0x1a0));
    0x00035354 tst r3, 3                                 |     
                                                         |     if ((r3 & 3) == 0) {
    0x00035358 beq 0x353d8                               |         goto label_0;
                                                         |     }
    0x0003535c mov r0, r4                                |     r0 = r4;
    0x00035360 bl 0x34f4c                                |     r0 = fcn_00034f4c (r0);
    0x00035364 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00035368 bne 0x353e4                               |         goto label_1;
                                                         |     }
    0x0003536c ldr r3, [pc, 0x180]                       |     
    0x00035370 add r3, pc, r3                            |     r3 = pc + r3;
    0x00035374 ldr r3, [r3]                              |     r3 = *(0x354f0);
    0x00035378 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x0003537c beq 0x353cc                               |         
    0x00035380 ldr r3, [pc, 0x170]                       |         r3 = *(0x354f4);
    0x00035384 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00035388 ldr r5, [r3]                              |         r5 = *(0x354f4);
    0x0003538c bl 0x8204                                 |         getpid ();
    0x00035390 ldr r3, [pc, 0x164]                       |         r3 = *(0x354f8);
    0x00035394 ldr r1, [pc, 0x164]                       |         r1 = *(0x354fc);
    0x00035398 add r3, pc, r3                            |         r3 = pc + r3;
    0x0003539c str r3, [sp]                              |         *(sp) = r3;
    0x000353a0 ldr r3, [pc, 0x15c]                       |         r3 = *(0x35500);
    0x000353a4 add r1, pc, r1                            |         r1 = pc + r1;
    0x000353a8 add r3, pc, r3                            |         r3 = pc + r3;
    0x000353ac mov r2, r0                                |         r2 = r0;
    0x000353b0 mov r0, r5                                |         r0 = r5;
    0x000353b4 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x000353b8 ldr r1, [pc, 0x148]                       |         r1 = *(0x35504);
    0x000353bc mov r2, r4                                |         r2 = r4;
    0x000353c0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000353c4 add r0, r4, 0x180                         |         r0 = r4 + 0x180;
    0x000353c8 bl 0x34014                                |         r0 = fcn_00034014 (r0);
                                                         |     }
    0x000353cc bl 0x8f6c                                 |     r0 = errno_location ();
    0x000353d0 ldr r5, [r0]                              |     r5 = *(r0);
    0x000353d4 rsb r5, r5, 0                             |     r5 -= ;
                                                         |     do {
                                                         | label_0:
    0x000353d8 mov r0, r5                                |         r0 = r5;
    0x000353dc add sp, sp, 0xc                           |         
    0x000353e0 pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_1:
    0x000353e4 ldr r3, [pc, 0x120]                       |         
    0x000353e8 add r3, pc, r3                            |         r3 = pc + r3;
    0x000353ec ldr r3, [r3]                              |         r3 = *(0x35508);
    0x000353f0 tst r3, 8                                 |         
                                                         |         if ((r3 & 8) != 0) {
    0x000353f4 beq 0x35444                               |             
    0x000353f8 ldr r3, [pc, 0xf8]                        |             r3 = *(0x354f4);
    0x000353fc ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x00035400 ldr r7, [r3]                              |             r7 = *(0x354f4);
    0x00035404 bl 0x8204                                 |             getpid ();
    0x00035408 ldr r3, [pc, 0x100]                       |             r3 = *(0x3550c);
    0x0003540c ldr r1, [pc, 0x100]                       |             r1 = *(0x35510);
    0x00035410 add r3, pc, r3                            |             r3 = pc + r3;
    0x00035414 str r3, [sp]                              |             *(sp) = r3;
    0x00035418 ldr r3, [pc, 0xf8]                        |             r3 = *(0x35514);
    0x0003541c add r1, pc, r1                            |             r1 = pc + r1;
    0x00035420 add r3, pc, r3                            |             r3 = pc + r3;
    0x00035424 mov r2, r0                                |             r2 = r0;
    0x00035428 mov r0, r7                                |             r0 = r7;
    0x0003542c bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x00035430 ldr r1, [pc, 0xe4]                        |             r1 = *(0x35518);
    0x00035434 mov r2, r4                                |             r2 = r4;
    0x00035438 add r1, pc, r1                            |             r1 = pc + r1;
    0x0003543c add r0, r4, 0x180                         |             r0 = r4 + 0x180;
    0x00035440 bl 0x34014                                |             fcn_00034014 (r0);
                                                         |         }
    0x00035444 mov r1, 0                                 |         r1 = 0;
    0x00035448 mov r0, r4                                |         r0 = r4;
    0x0003544c bl 0x3522c                                |         fcn_0003522c (r0, r1);
    0x00035450 ldr r2, [r4, 0x1a0]                       |         r2 = *((r4 + 0x1a0));
    0x00035454 mov r3, r0                                |         r3 = r0;
    0x00035458 clz r0, r0                                |         r0 &= r0;
    0x0003545c lsr r0, r0, 5                             |         r0 >>= 5;
    0x00035460 ands r1, r0, r2, lsr 1                    |         r1 = r0 & (r2 >> 1);
    0x00035464 bne 0x353d8                               |         
                                                         |     } while (r1 != r0);
    0x00035468 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0003546c andne r3, r2, 1                           |         r3 = r2 & 1;
                                                         |     }
                                                         |     if (r3 != 0) {
    0x00035470 moveq r3, 0                               |         r3 = 0;
                                                         |     }
    0x00035474 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00035478 bne 0x353d8                               |         goto label_0;
                                                         |     }
    0x0003547c ldr r3, [pc, 0x9c]                        |     
    0x00035480 add r3, pc, r3                            |     r3 = pc + r3;
    0x00035484 ldr r3, [r3]                              |     r3 = *(0x3551c);
    0x00035488 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x0003548c beq 0x354dc                               |         
    0x00035490 ldr r3, [pc, 0x60]                        |         r3 = *(0x354f4);
    0x00035494 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00035498 ldr r5, [r3]                              |         r5 = *(0x354f4);
    0x0003549c bl 0x8204                                 |         getpid ();
    0x000354a0 ldr r3, [pc, 0x7c]                        |         r3 = *(0x35520);
    0x000354a4 ldr r1, [pc, 0x7c]                        |         r1 = *(0x35524);
    0x000354a8 add r3, pc, r3                            |         r3 = pc + r3;
    0x000354ac str r3, [sp]                              |         *(sp) = r3;
    0x000354b0 ldr r3, [pc, 0x74]                        |         r3 = *(0x35528);
    0x000354b4 add r1, pc, r1                            |         r1 = pc + r1;
    0x000354b8 add r3, pc, r3                            |         r3 = pc + r3;
    0x000354bc mov r2, r0                                |         r2 = r0;
    0x000354c0 mov r0, r5                                |         r0 = r5;
    0x000354c4 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x000354c8 ldr r1, [pc, 0x60]                        |         r1 = *(0x3552c);
    0x000354cc mov r2, r4                                |         r2 = r4;
    0x000354d0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000354d4 add r0, r4, 0x180                         |         r0 = r4 + 0x180;
    0x000354d8 bl 0x34014                                |         fcn_00034014 (r0);
                                                         |     }
    0x000354dc mov r1, 0                                 |     r1 = 0;
    0x000354e0 mov r0, r4                                |     r0 = r4;
    0x000354e4 bl 0x3453c                                |     fcn_0003453c (r0, r1);
    0x000354e8 mov r5, 1                                 |     r5 = 1;
    0x000354ec b 0x353d8                                 |     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/lib/libmount.so.1.1.0 @ 0x35534 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00035534 ()                                  | void fcn_00035534 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     char * format;
                                                             |     int32_t var_10h;
                                                             |     char * s;
                                                             |     int32_t var_194h;
                                                             |     r0 = arg1;
    0x00035534 ldr r3, [pc, 0x1c8]                           |     
    0x00035538 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0003553c ldr r7, [pc, 0x1c4]                           |     r7 = *(0x35704);
    0x00035540 add r3, pc, r3                                |     r3 = pc + r3;
    0x00035544 ldr r3, [r3]                                  |     r3 = *(0x35700);
    0x00035548 add r7, pc, r7                                |     r7 = pc + r7;
    0x0003554c tst r3, 8                                     |     
    0x00035550 sub sp, sp, 0x194                             |     
    0x00035554 mov r5, r0                                    |     r5 = r0;
    0x00035558 add r8, r0, 0x180                             |     r8 = r0 + 0x180;
                                                             |     if ((r3 & 8) != 0) {
    0x0003555c beq 0x355a8                                   |         
    0x00035560 ldr r3, [pc, 0x1a4]                           |         r3 = *(0x35708);
    0x00035564 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00035568 ldr r4, [r3]                                  |         r4 = *(0x35708);
    0x0003556c bl 0x8204                                     |         getpid ();
    0x00035570 ldr r3, [pc, 0x198]                           |         r3 = *(0x3570c);
    0x00035574 ldr r1, [pc, 0x198]                           |         r1 = *(0x35710);
    0x00035578 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003557c str r3, [sp]                                  |         *(sp) = r3;
    0x00035580 ldr r3, [pc, 0x190]                           |         r3 = *(0x35714);
    0x00035584 add r1, pc, r1                                |         r1 = pc + r1;
    0x00035588 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003558c mov r2, r0                                    |         r2 = r0;
    0x00035590 mov r0, r4                                    |         r0 = r4;
    0x00035594 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00035598 ldr r1, [pc, 0x17c]                           |         r1 = *(0x35718);
    0x0003559c mov r0, r8                                    |         r0 = r8;
    0x000355a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000355a4 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x000355a8 ldr r3, [r5, 0x184]                           |     r3 = *((r5 + 0x184));
    0x000355ac cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000355b0 bne 0x355c4                                   |         
    0x000355b4 ldr r0, [pc, 0x164]                           |         r0 = *(0x3571c);
    0x000355b8 add r0, pc, r0                                |         r0 = pc + r0;
    0x000355bc bl 0x8bd0                                     |         opendir ();
    0x000355c0 str r0, [r5, 0x184]                           |         *((r5 + 0x184)) = r0;
                                                             |     }
    0x000355c4 ldr r0, [r5, 0x184]                           |     r0 = *((r5 + 0x184));
    0x000355c8 cmp r0, 0                                     |     
    0x000355cc bne 0x355dc                                   |     
                                                             |     while (r0 == 0) {
    0x000355d0 mov r0, 1                                     |         r0 = 1;
                                                             | label_1:
    0x000355d4 add sp, sp, 0x194                             |         
    0x000355d8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x000355dc bl 0x8900                                     |         dirfd ();
    0x000355e0 ldr r3, [pc, 0x13c]                           |         r3 = *(0x35720);
    0x000355e4 ldr sl, [pc, 0x13c]                           |         sl = *(0x35724);
    0x000355e8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000355ec str r3, [sp, 8]                               |         var_8h = r3;
    0x000355f0 ldr r3, [pc, 0x134]                           |         r3 = *(0x35728);
    0x000355f4 add sl, pc, sl                                |         sl = pc + sl;
    0x000355f8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000355fc str r3, [sp, 0xc]                             |         format = r3;
    0x00035600 mov sb, r0                                    |         sb = r0;
                                                             | label_0:
    0x00035604 ldr r0, [r5, 0x184]                           |         r0 = *((r5 + 0x184));
    0x00035608 bl 0x89fc                                     |         r0 = readdir64 ();
    0x0003560c cmp r0, 0                                     |         
    0x00035610 beq 0x355d0                                   |         
                                                             |     }
    0x00035614 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00035618 add r4, r0, 0x13                              |     r4 = r0 + 0x13;
    0x0003561c tst r3, 8                                     |     
                                                             |     if ((r3 & 8) != 0) {
    0x00035620 beq 0x35668                                   |         
    0x00035624 ldr r3, [pc, 0xe0]                            |         r3 = *(0x35708);
    0x00035628 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0003562c ldr r6, [r3]                                  |         r6 = *(0x35708);
    0x00035630 bl 0x8204                                     |         getpid ();
    0x00035634 ldr r3, [pc, 0xf4]                            |         r3 = *(0x3572c);
    0x00035638 ldr r1, [sp, 0xc]                             |         r1 = format;
    0x0003563c add r3, pc, r3                                |         r3 = pc + r3;
    0x00035640 str r3, [sp]                                  |         *(sp) = r3;
    0x00035644 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00035648 mov r2, r0                                    |         r2 = r0;
    0x0003564c mov r0, r6                                    |         r0 = r6;
    0x00035650 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00035654 ldr r1, [pc, 0xd8]                            |         r1 = *(0x35730);
    0x00035658 mov r2, r4                                    |         r2 = r4;
    0x0003565c add r1, pc, r1                                |         r1 = pc + r1;
    0x00035660 mov r0, r8                                    |         r0 = r8;
    0x00035664 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00035668 ldr r1, [pc, 0xc8]                            |     r1 = *(0x35734);
    0x0003566c mov r0, r4                                    |     r0 = r4;
    0x00035670 add r1, pc, r1                                |     r1 = pc + r1;
    0x00035674 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00035678 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0003567c beq 0x35604                                   |         goto label_0;
                                                             |     }
    0x00035680 ldr r1, [pc, 0xb4]                            |     r1 = *(0x35738);
    0x00035684 mov r0, r4                                    |     r0 = r4;
    0x00035688 add r1, pc, r1                                |     r1 = pc + r1;
    0x0003568c bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00035690 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00035694 beq 0x35604                                   |         goto label_0;
                                                             |     }
    0x00035698 ldr r1, [pc, 0xa0]                            |     r1 = *(0x3573c);
    0x0003569c mov r2, 4                                     |     r2 = 4;
    0x000356a0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000356a4 mov r0, r4                                    |     r0 = r4;
    0x000356a8 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x000356ac subs fp, r0, 0                                |     
                                                             |     if (fp != r0) {
    0x000356b0 bne 0x35604                                   |         goto label_0;
                                                             |     }
    0x000356b4 ldr r2, [pc, 0x88]                            |     r2 = *(0x35740);
    0x000356b8 add r6, sp, 0x7c                              |     r6 += s;
    0x000356bc mov r3, r4                                    |     r3 = r4;
    0x000356c0 add r2, pc, r2                                |     r2 = pc + r2;
    0x000356c4 ldr r1, [pc, 0x7c]                            |     r1 = *(0x35744);
    0x000356c8 mov r0, r6                                    |     r0 = r6;
    0x000356cc bl 0x809c                                     |     snprintf (r0, r1, r2, r3);
    0x000356d0 mov r3, fp                                    |     r3 = fp;
    0x000356d4 add r2, sp, 0x10                              |     r2 += var_10h;
    0x000356d8 mov r1, r6                                    |     r1 = r6;
    0x000356dc mov r0, sb                                    |     r0 = sb;
    0x000356e0 bl 0x8d50                                     |     r0 = fstatat64 ();
    0x000356e4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000356e8 bne 0x35604                                   |         goto label_0;
                                                             |     }
    0x000356ec mov r1, r4                                    |     r1 = r4;
    0x000356f0 mov r0, r5                                    |     r0 = r5;
    0x000356f4 bl 0x35334                                    |     r0 = fcn_00035334 (r0, r1);
    0x000356f8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000356fc bne 0x35604                                   |         goto label_0;
                                                             |     }
    0x00035700 b 0x355d4                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x3574c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003574c ()                              | void fcn_0003574c (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_4h;
                                                         |     int32_t var_10h;
                                                         |     char * s;
                                                         |     int32_t var_1080h;
                                                         |     int32_t var_10h_2;
                                                         |     r0 = arg1;
    0x0003574c ldr r3, [pc, 0x17c]                       |     
    0x00035750 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00035754 ldr r6, [pc, 0x178]                       |     r6 = *(0x358d0);
    0x00035758 add r3, pc, r3                            |     r3 = pc + r3;
    0x0003575c ldr r3, [r3]                              |     r3 = *(0x358cc);
    0x00035760 sub sp, sp, 0x1080                        |     
    0x00035764 tst r3, 8                                 |     
    0x00035768 add r6, pc, r6                            |     r6 = pc + r6;
    0x0003576c sub sp, sp, 0x10                          |     
    0x00035770 mov r4, r0                                |     r4 = r0;
    0x00035774 add r8, r0, 0x180                         |     r8 = r0 + 0x180;
                                                         |     if ((r3 & 8) != 0) {
    0x00035778 beq 0x357c4                               |         
    0x0003577c ldr r3, [pc, 0x154]                       |         r3 = *(0x358d4);
    0x00035780 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00035784 ldr r5, [r3]                              |         r5 = *(0x358d4);
    0x00035788 bl 0x8204                                 |         getpid ();
    0x0003578c ldr r3, [pc, 0x148]                       |         r3 = *(0x358d8);
    0x00035790 ldr r1, [pc, 0x148]                       |         r1 = *(0x358dc);
    0x00035794 add r3, pc, r3                            |         r3 = pc + r3;
    0x00035798 str r3, [sp]                              |         *(sp) = r3;
    0x0003579c ldr r3, [pc, 0x140]                       |         r3 = *(0x358e0);
    0x000357a0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000357a4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000357a8 mov r2, r0                                |         r2 = r0;
    0x000357ac mov r0, r5                                |         r0 = r5;
    0x000357b0 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x000357b4 ldr r1, [pc, 0x12c]                       |         r1 = *(0x358e4);
    0x000357b8 mov r0, r8                                |         r0 = r8;
    0x000357bc add r1, pc, r1                            |         r1 = pc + r1;
    0x000357c0 bl 0x34014                                |         fcn_00034014 (r0);
                                                         |     }
    0x000357c4 ldr r3, [r4, 0x180]                       |     r3 = *((r4 + 0x180));
    0x000357c8 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000357cc bne 0x357e8                               |         
    0x000357d0 ldr r1, [pc, 0x114]                       |         r1 = *(0x358e8);
    0x000357d4 ldr r0, [pc, 0x114]                       |         r0 = *(0x358ec);
    0x000357d8 add r1, pc, r1                            |         r1 = pc + r1;
    0x000357dc add r0, pc, r0                            |         r0 = pc + r0;
    0x000357e0 bl 0x91e8                                 |         fopen64 ();
    0x000357e4 str r0, [r4, 0x180]                       |         *((r4 + 0x180)) = r0;
                                                         |     }
    0x000357e8 ldr r3, [r4, 0x180]                       |     r3 = *((r4 + 0x180));
    0x000357ec cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000357f0 beq 0x35820                               |         goto label_2;
                                                         |     }
    0x000357f4 ldr sl, [pc, 0xf8]                        |     sl = *(0x358f0);
    0x000357f8 add sb, sp, 0x10                          |     sb += var_10h;
    0x000357fc sub r7, sb, 4                             |     r7 -= var_4h;
    0x00035800 add sl, pc, sl                            |     sl = pc + sl;
                                                         |     do {
                                                         | label_0:
    0x00035804 add r5, sp, 0x90                          |         r5 += s;
    0x00035808 ldr r2, [r4, 0x180]                       |         r2 = *((r4 + 0x180));
    0x0003580c mov r1, 0x1000                            |         r1 = 0x1000;
    0x00035810 mov r0, r5                                |         r0 = r5;
    0x00035814 bl 0x824c                                 |         r0 = fgets (r0, r1, r2);
    0x00035818 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0003581c bne 0x35830                               |             
                                                         | label_2:
    0x00035820 mov r0, 1                                 |             r0 = 1;
                                                         | label_1:
    0x00035824 add sp, sp, 0x1080                        |             
    0x00035828 add sp, sp, 0x10                          |             
    0x0003582c pop {r4, r5, r6, r7, r8, sb, sl, pc}      |             
                                                         |         }
    0x00035830 mov r3, r7                                |         r3 = r7;
    0x00035834 sub r2, sb, 8                             |         r2 -= var_8h;
    0x00035838 mov r1, sl                                |         r1 = sl;
    0x0003583c mov r0, r5                                |         r0 = r5;
    0x00035840 bl 0x8a74                                 |         r0 = sscanf (r0, r1, r2);
    0x00035844 cmp r0, 2                                 |         
    0x00035848 bne 0x35804                               |         
                                                         |     } while (r0 != 2);
    0x0003584c ldr r3, [r5, -0x88]                       |     r3 = var_8h;
    0x00035850 cmp r3, 7                                 |     
                                                         |     if (r3 != 7) {
    0x00035854 bne 0x35804                               |         goto label_0;
                                                         |     }
    0x00035858 ldr r3, [pc, 0x98]                        |     
    0x0003585c add r3, pc, r3                            |     r3 = pc + r3;
    0x00035860 ldr r3, [r3]                              |     r3 = *(0x358f4);
    0x00035864 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x00035868 beq 0x358b8                               |         
    0x0003586c ldr r3, [pc, 0x64]                        |         r3 = *(0x358d4);
    0x00035870 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00035874 ldr r5, [r3]                              |         r5 = *(0x358d4);
    0x00035878 bl 0x8204                                 |         getpid ();
    0x0003587c ldr r3, [pc, 0x78]                        |         r3 = *(0x358f8);
    0x00035880 ldr r1, [pc, 0x78]                        |         r1 = *(0x358fc);
    0x00035884 add r3, pc, r3                            |         r3 = pc + r3;
    0x00035888 str r3, [sp]                              |         *(sp) = r3;
    0x0003588c ldr r3, [pc, 0x70]                        |         r3 = *(0x35900);
    0x00035890 add r1, pc, r1                            |         r1 = pc + r1;
    0x00035894 add r3, pc, r3                            |         r3 = pc + r3;
    0x00035898 mov r2, r0                                |         r2 = r0;
    0x0003589c mov r0, r5                                |         r0 = r5;
    0x000358a0 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x000358a4 ldr r1, [pc, 0x5c]                        |         r1 = *(0x35904);
    0x000358a8 mov r2, r7                                |         r2 = r7;
    0x000358ac add r1, pc, r1                            |         r1 = pc + r1;
    0x000358b0 mov r0, r8                                |         r0 = r8;
    0x000358b4 bl 0x34014                                |         fcn_00034014 (r0);
                                                         |     }
    0x000358b8 mov r1, r7                                |     r1 = r7;
    0x000358bc mov r0, r4                                |     r0 = r4;
    0x000358c0 bl 0x35334                                |     r0 = fcn_00035334 (r0, r1);
    0x000358c4 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000358c8 bne 0x35804                               |         goto label_0;
                                                         |     }
    0x000358cc b 0x35824                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x3590c */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                 |  
    ; (fcn) fcn.0003590c ()                      | void fcn_0003590c (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     char * s;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0003590c push {r4, r5, r6, r7, r8, lr}     |     
    0x00035910 ldr r5, [pc, 0x298]               |     r5 = *(0x35bac);
    0x00035914 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00035918 add r5, pc, r5                    |     r5 = pc + r5;
    0x0003591c sub sp, sp, 0x18                  |     
                                                 |     if (r4 != r0) {
    0x00035920 mvneq r0, 0x15                    |         r0 = ~0x15;
                                                 |     }
                                                 |     if (r4 == r0) {
    0x00035924 beq 0x359cc                       |         goto label_1;
                                                 |     }
    0x00035928 ldrb r3, [r4, 0x19c]              |     r3 = *((r4 + 0x19c));
    0x0003592c tst r3, 1                         |     
                                                 |     if ((r3 & 1) != 0) {
    0x00035930 bne 0x359c8                       |         goto label_5;
                                                 |     }
    0x00035934 ldr r3, [pc, 0x278]               |     
    0x00035938 add r6, r4, 0x180                 |     r6 = r4 + 0x180;
    0x0003593c add r3, pc, r3                    |     r3 = pc + r3;
    0x00035940 ldr r3, [r3]                      |     r3 = *(0x35bb0);
    0x00035944 tst r3, 8                         |     
                                                 |     if ((r3 & 8) != 0) {
    0x00035948 beq 0x35994                       |         
    0x0003594c ldr r3, [pc, 0x264]               |         r3 = *(0x35bb4);
    0x00035950 ldr r3, [r5, r3]                  |         r3 = *((r5 + r3));
    0x00035954 ldr r7, [r3]                      |         r7 = *(0x35bb4);
    0x00035958 bl 0x8204                         |         getpid ();
    0x0003595c ldr r3, [pc, 0x258]               |         r3 = *(0x35bb8);
    0x00035960 ldr r1, [pc, 0x258]               |         r1 = *(0x35bbc);
    0x00035964 add r3, pc, r3                    |         r3 = pc + r3;
    0x00035968 str r3, [sp]                      |         *(sp) = r3;
    0x0003596c ldr r3, [pc, 0x250]               |         r3 = *(0x35bc0);
    0x00035970 add r1, pc, r1                    |         r1 = pc + r1;
    0x00035974 add r3, pc, r3                    |         r3 = pc + r3;
    0x00035978 mov r2, r0                        |         r2 = r0;
    0x0003597c mov r0, r7                        |         r0 = r7;
    0x00035980 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00035984 ldr r1, [pc, 0x23c]               |         r1 = *(0x35bc4);
    0x00035988 mov r0, r6                        |         r0 = r6;
    0x0003598c add r1, pc, r1                    |         r1 = pc + r1;
    0x00035990 bl 0x34014                        |         fcn_00034014 (r0);
                                                 |     }
    0x00035994 ldr r3, [r4, 0x1a0]               |     r3 = *((r4 + 0x1a0));
    0x00035998 tst r3, 2                         |     
                                                 |     if ((r3 & 2) == 0) {
    0x0003599c beq 0x359dc                       |         goto label_6;
                                                 |     }
    0x000359a0 ldr r3, [r4, 0x8c]                |     r3 = *((r4 + 0x8c));
    0x000359a4 mov r0, r4                        |     r0 = r4;
    0x000359a8 and r3, r3, 0x60                  |     r3 &= 0x60;
    0x000359ac cmp r3, 0x40                      |     
                                                 |     if (r3 != 0x40) {
    0x000359b0 bne 0x359d4                       |         goto label_7;
                                                 |     }
    0x000359b4 bl 0x35534                        |     r0 = fcn_00035534 (r0);
                                                 |     do {
    0x000359b8 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x000359bc beq 0x359cc                       |             
                                                 | label_0:
    0x000359c0 mov r0, r4                        |             r0 = r4;
    0x000359c4 bl 0x34dac                        |             fcn_00034dac (r0);
                                                 | label_5:
    0x000359c8 mov r0, 1                         |             r0 = 1;
                                                 |         }
                                                 | label_1:
    0x000359cc add sp, sp, 0x18                  |         
    0x000359d0 pop {r4, r5, r6, r7, r8, pc}      |         
                                                 | label_7:
    0x000359d4 bl 0x3574c                        |         fcn_0003574c (r0);
    0x000359d8 b 0x359b8                         |         
                                                 |     } while (1);
                                                 | label_6:
    0x000359dc ldrb r3, [r4, 0x19c]              |     r3 = *((r4 + 0x19c));
    0x000359e0 tst r3, 2                         |     
                                                 |     if ((r3 & 2) != 0) {
    0x000359e4 beq 0x35a74                       |         
    0x000359e8 ldr r3, [pc, 0x1dc]               |         
    0x000359ec add r3, pc, r3                    |         r3 = pc + r3;
    0x000359f0 ldr r3, [r3]                      |         r3 = *(0x35bc8);
    0x000359f4 tst r3, 8                         |         
                                                 |         if ((r3 & 8) != 0) {
    0x000359f8 beq 0x35a44                       |             
    0x000359fc ldr r3, [pc, 0x1b4]               |             r3 = *(0x35bb4);
    0x00035a00 ldr r3, [r5, r3]                  |             r3 = *((r5 + r3));
    0x00035a04 ldr r7, [r3]                      |             r7 = *(0x35bb4);
    0x00035a08 bl 0x8204                         |             getpid ();
    0x00035a0c ldr r3, [pc, 0x1bc]               |             r3 = *(0x35bcc);
    0x00035a10 ldr r1, [pc, 0x1bc]               |             r1 = *(0x35bd0);
    0x00035a14 add r3, pc, r3                    |             r3 = pc + r3;
    0x00035a18 str r3, [sp]                      |             *(sp) = r3;
    0x00035a1c ldr r3, [pc, 0x1b4]               |             r3 = *(0x35bd4);
    0x00035a20 add r1, pc, r1                    |             r1 = pc + r1;
    0x00035a24 add r3, pc, r3                    |             r3 = pc + r3;
    0x00035a28 mov r2, r0                        |             r2 = r0;
    0x00035a2c mov r0, r7                        |             r0 = r7;
    0x00035a30 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00035a34 ldr r1, [pc, 0x1a0]               |             r1 = *(0x35bd8);
    0x00035a38 mov r0, r6                        |             r0 = r6;
    0x00035a3c add r1, pc, r1                    |             r1 = pc + r1;
    0x00035a40 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00035a44 ldr r3, [r4, 0x188]               |         r3 = *((r4 + 0x188));
    0x00035a48 ldr r8, [pc, 0x190]               |         r8 = *(0x35bdc);
    0x00035a4c add r3, r3, 1                     |         r3++;
    0x00035a50 add r8, pc, r8                    |         r8 = pc + r8;
    0x00035a54 add r7, sp, 8                     |         r7 += s;
    0x00035a58 str r3, [r4, 0x188]               |         *((r4 + 0x188)) = r3;
                                                 | label_3:
    0x00035a5c ldr r3, [r4, 0x188]               |         r3 = *((r4 + 0x188));
    0x00035a60 cmp r3, 7                         |         
                                                 |         if (r3 <= 7) {
    0x00035a64 ble 0x35b6c                       |             goto label_8;
                                                 |         }
    0x00035a68 ldrb r3, [r4, 0x19c]              |         r3 = *((r4 + 0x19c));
    0x00035a6c bic r3, r3, 2                     |         r3 = BIT_MASK (r3, 2);
    0x00035a70 strb r3, [r4, 0x19c]              |         *((r4 + 0x19c)) = r3;
                                                 |     }
    0x00035a74 ldr r3, [r4, 0x18c]               |     r3 = *((r4 + 0x18c));
    0x00035a78 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x00035a7c bne 0x35b08                       |         
    0x00035a80 ldr r3, [pc, 0x15c]               |         
    0x00035a84 add r3, pc, r3                    |         r3 = pc + r3;
    0x00035a88 ldr r3, [r3]                      |         r3 = *(0x35be0);
    0x00035a8c tst r3, 8                         |         
                                                 |         if ((r3 & 8) != 0) {
    0x00035a90 beq 0x35adc                       |             
    0x00035a94 ldr r3, [pc, 0x11c]               |             r3 = *(0x35bb4);
    0x00035a98 ldr r3, [r5, r3]                  |             r3 = *((r5 + r3));
    0x00035a9c ldr r5, [r3]                      |             r5 = *(0x35bb4);
    0x00035aa0 bl 0x8204                         |             getpid ();
    0x00035aa4 ldr r3, [pc, 0x13c]               |             r3 = *(0x35be4);
    0x00035aa8 ldr r1, [pc, 0x13c]               |             r1 = *(0x35be8);
    0x00035aac add r3, pc, r3                    |             r3 = pc + r3;
    0x00035ab0 str r3, [sp]                      |             *(sp) = r3;
    0x00035ab4 ldr r3, [pc, 0x134]               |             r3 = *(0x35bec);
    0x00035ab8 add r1, pc, r1                    |             r1 = pc + r1;
    0x00035abc add r3, pc, r3                    |             r3 = pc + r3;
    0x00035ac0 mov r2, r0                        |             r2 = r0;
    0x00035ac4 mov r0, r5                        |             r0 = r5;
    0x00035ac8 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00035acc ldr r1, [pc, 0x120]               |             r1 = *(0x35bf0);
    0x00035ad0 mov r0, r6                        |             r0 = r6;
    0x00035ad4 add r1, pc, r1                    |             r1 = pc + r1;
    0x00035ad8 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00035adc ldr r3, [r4, 0x8c]                |         r3 = *((r4 + 0x8c));
    0x00035ae0 add r1, r4, 0x18c                 |         r1 = r4 + 0x18c;
    0x00035ae4 tst r3, 0x80                      |         
                                                 |         if ((r3 & 0x80) == 0) {
    0x00035ae8 beq 0x35ba0                       |             goto label_9;
                                                 |         }
    0x00035aec ldr r0, [pc, 0x104]               |         r0 = *(0x35bf4);
    0x00035af0 mov r2, 0                         |         r2 = 0;
    0x00035af4 add r0, pc, r0                    |         r0 = pc + r0;
                                                 | label_4:
    0x00035af8 bl 0x342c8                        |         fcn_000342c8 (r0, r1);
    0x00035afc mvn r3, 0                         |         r3 = ~0;
    0x00035b00 str r3, [r4, 0x188]               |         *((r4 + 0x188)) = r3;
    0x00035b04 str r0, [r4, 0x190]               |         *((r4 + 0x190)) = r0;
                                                 |     }
    0x00035b08 ldr r3, [r4, 0x188]               |     r3 = *((r4 + 0x188));
    0x00035b0c ldr r6, [pc, 0xe8]                |     r6 = *(0x35bf8);
    0x00035b10 add r3, r3, 1                     |     r3++;
    0x00035b14 add r6, pc, r6                    |     r6 = pc + r6;
    0x00035b18 add r5, sp, 8                     |     r5 += s;
    0x00035b1c str r3, [r4, 0x188]               |     *((r4 + 0x188)) = r3;
                                                 | label_2:
    0x00035b20 ldr r3, [r4, 0x188]               |     r3 = *((r4 + 0x188));
    0x00035b24 ldr r2, [r4, 0x190]               |     r2 = *((r4 + 0x190));
    0x00035b28 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x00035b2c bge 0x359c0                       |         goto label_0;
                                                 |     }
    0x00035b30 ldr r2, [r4, 0x18c]               |     r2 = *((r4 + 0x18c));
    0x00035b34 mov r1, 0x10                      |     r1 = 0x10;
    0x00035b38 ldr r3, [r2, r3, lsl 2]           |     offset_0 = r3 << 2;
                                                 |     r3 = *((r2 + offset_0));
    0x00035b3c mov r0, r5                        |     r0 = r5;
    0x00035b40 mov r2, r6                        |     r2 = r6;
    0x00035b44 bl 0x809c                         |     snprintf (r0, r1, r2, r3);
    0x00035b48 mov r1, r5                        |     r1 = r5;
    0x00035b4c mov r0, r4                        |     r0 = r4;
    0x00035b50 bl 0x35334                        |     r0 = fcn_00035334 (r0, r1);
    0x00035b54 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00035b58 beq 0x359cc                       |         goto label_1;
                                                 |     }
    0x00035b5c ldr r3, [r4, 0x188]               |     r3 = *((r4 + 0x188));
    0x00035b60 add r3, r3, 1                     |     r3++;
    0x00035b64 str r3, [r4, 0x188]               |     *((r4 + 0x188)) = r3;
    0x00035b68 b 0x35b20                         |     goto label_2;
                                                 | label_8:
    0x00035b6c mov r2, r8                        |     r2 = r8;
    0x00035b70 mov r1, 0x10                      |     r1 = 0x10;
    0x00035b74 mov r0, r7                        |     r0 = r7;
    0x00035b78 bl 0x809c                         |     snprintf (r0, r1, r2, r3);
    0x00035b7c mov r1, r7                        |     r1 = r7;
    0x00035b80 mov r0, r4                        |     r0 = r4;
    0x00035b84 bl 0x35334                        |     r0 = fcn_00035334 (r0, r1);
    0x00035b88 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00035b8c beq 0x359cc                       |         goto label_1;
                                                 |     }
    0x00035b90 ldr r3, [r4, 0x188]               |     r3 = *((r4 + 0x188));
    0x00035b94 add r3, r3, 1                     |     r3++;
    0x00035b98 str r3, [r4, 0x188]               |     *((r4 + 0x188)) = r3;
    0x00035b9c b 0x35a5c                         |     goto label_3;
                                                 | label_9:
    0x00035ba0 ldr r0, [pc, 0x58]                |     r0 = *(0x35bfc);
    0x00035ba4 mov r2, 1                         |     r2 = 1;
    0x00035ba8 add r0, pc, r0                    |     r0 = pc + r0;
    0x00035bac b 0x35af8                         |     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/lib/libmount.so.1.1.0 @ 0x35d04 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00035d04 ()                                  | void fcn_00035d04 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00035d04 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x00035d08 ldr r8, [pc, 0xdc]                            |     r8 = *(0x35de8);
    0x00035d0c mov r6, r0                                    |     r6 = r0;
    0x00035d10 mov r7, r1                                    |     r7 = r1;
    0x00035d14 bl 0x340d4                                    |     fcn_000340d4 (r0);
    0x00035d18 add r8, pc, r8                                |     r8 = pc + r8;
    0x00035d1c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00035d20 beq 0x35dac                                   |         goto label_2;
                                                             |     }
    0x00035d24 ldr r2, [pc, 0xc4]                            |     r2 = *(0x35dec);
    0x00035d28 mov r1, r7                                    |     r1 = r7;
    0x00035d2c add r2, pc, r2                                |     r2 = pc + r2;
    0x00035d30 bl 0x3a94c                                    |     r0 = fcn_0003a94c (r0);
    0x00035d34 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00035d38 bne 0x35db0                                   |         goto label_3;
                                                             |     }
                                                             | label_0:
    0x00035d3c mov r4, 0                                     |     r4 = 0;
                                                             |     do {
                                                             | label_1:
    0x00035d40 ldr r3, [pc, 0xac]                            |         
    0x00035d44 add r3, pc, r3                                |         r3 = pc + r3;
    0x00035d48 ldr r3, [r3]                                  |         r3 = *(0x35df0);
    0x00035d4c tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x00035d50 beq 0x35da0                                   |             
    0x00035d54 ldr r3, [pc, 0x9c]                            |             r3 = *(0x35df4);
    0x00035d58 ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x00035d5c ldr r5, [r3]                                  |             r5 = *(0x35df4);
    0x00035d60 bl 0x8204                                     |             getpid ();
    0x00035d64 ldr r3, [pc, 0x90]                            |             r3 = *(0x35df8);
    0x00035d68 ldr r1, [pc, 0x90]                            |             r1 = imp.__deregister_frame_info;
    0x00035d6c add r3, pc, r3                                |             r3 = pc + r3;
    0x00035d70 str r3, [sp]                                  |             *(sp) = r3;
    0x00035d74 ldr r3, [pc, 0x88]                            |             r3 = *(0x35e00);
    0x00035d78 add r1, pc, r1                                |             r1 = pc + r1;
    0x00035d7c add r3, pc, r3                                |             r3 = pc + r3;
    0x00035d80 mov r2, r0                                    |             r2 = r0;
    0x00035d84 mov r0, r5                                    |             r0 = r5;
    0x00035d88 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00035d8c ldr r1, [pc, 0x74]                            |             r1 = *(0x35e04);
    0x00035d90 mov r2, r4                                    |             r2 = r4;
    0x00035d94 add r1, pc, r1                                |             r1 = pc + r1;
    0x00035d98 mov r0, r6                                    |             r0 = r6;
    0x00035d9c bl 0x34014                                    |             fcn_00034014 (r0);
                                                             |         }
    0x00035da0 mov r0, r4                                    |         r0 = r4;
    0x00035da4 add sp, sp, 8                                 |         
    0x00035da8 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_2:
    0x00035dac mvn r4, 0x15                                  |         r4 = ~0x15;
                                                             | label_3:
    0x00035db0 ldr r3, [r6, 0x8c]                            |         r3 = *((r6 + 0x8c));
    0x00035db4 ands r5, r3, 0x40                             |         r5 = r3 & 0x40;
    0x00035db8 bne 0x35d40                                   |         
                                                             |     } while (r5 != r3);
    0x00035dbc mov r0, r6                                    |     r0 = r6;
    0x00035dc0 bl 0x34fac                                    |     r0 = fcn_00034fac (r0);
    0x00035dc4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00035dc8 beq 0x35ddc                                   |         
    0x00035dcc cmp r7, 0                                     |         
    0x00035dd0 ldrdne r2, r3, [r0, 0x20]                     |         __asm ("ldrdne r2, r3, [r0, 0x20]");
    0x00035dd4 strdne r2, r3, [r7]                           |         __asm ("strdne r2, r3, [r7]");
    0x00035dd8 b 0x35d3c                                     |         goto label_0;
                                                             |     }
    0x00035ddc bl 0x8f6c                                     |     r0 = errno_location ();
    0x00035de0 ldr r4, [r0]                                  |     r4 = *(r0);
    0x00035de4 rsb r4, r4, 0                                 |     r4 -= ;
    0x00035de8 b 0x35d40                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x35e0c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00035e0c ()                      | void fcn_00035e0c (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00035e0c push {r0, r1, r4, r5, r6, lr}     |     
    0x00035e10 ldr r5, [pc, 0xa0]                |     r5 = *(0x35eb4);
    0x00035e14 mov r6, r0                        |     r6 = r0;
    0x00035e18 mov r4, r1                        |     r4 = r1;
    0x00035e1c bl 0x34fac                        |     fcn_00034fac (r0);
    0x00035e20 add r5, pc, r5                    |     r5 = pc + r5;
    0x00035e24 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00035e28 beq 0x35ea8                       |         goto label_0;
                                                 |     }
    0x00035e2c cmp r4, 0                         |     
                                                 |     if (r4 == 0) {
    0x00035e30 ldrne r3, [r0, 0x2c]              |         r3 = *((r0 + 0x2c));
                                                 |     }
                                                 |     if (r4 == 0) {
    0x00035e34 strne r3, [r4]                    |         *(r4) = r3;
                                                 |     }
    0x00035e38 movne r4, 0                       |     r4 = 0;
                                                 |     while (1) {
    0x00035e3c ldr r3, [pc, 0x78]                |         
    0x00035e40 add r3, pc, r3                    |         r3 = pc + r3;
    0x00035e44 ldr r3, [r3]                      |         r3 = *(0x35eb8);
    0x00035e48 tst r3, 4                         |         
                                                 |         if ((r3 & 4) != 0) {
    0x00035e4c beq 0x35e9c                       |             
    0x00035e50 ldr r3, [pc, 0x68]                |             r3 = *(0x35ebc);
    0x00035e54 ldr r3, [r5, r3]                  |             r3 = *((r5 + r3));
    0x00035e58 ldr r5, [r3]                      |             r5 = *(0x35ebc);
    0x00035e5c bl 0x8204                         |             getpid ();
    0x00035e60 ldr r3, [pc, 0x5c]                |             r3 = *(0x35ec0);
    0x00035e64 ldr r1, [pc, 0x5c]                |             r1 = imp.strtod;
    0x00035e68 add r3, pc, r3                    |             r3 = pc + r3;
    0x00035e6c str r3, [sp]                      |             *(sp) = r3;
    0x00035e70 ldr r3, [pc, 0x54]                |             r3 = *(0x35ec8);
    0x00035e74 add r1, pc, r1                    |             r1 = pc + r1;
    0x00035e78 add r3, pc, r3                    |             r3 = pc + r3;
    0x00035e7c mov r2, r0                        |             r2 = r0;
    0x00035e80 mov r0, r5                        |             r0 = r5;
    0x00035e84 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00035e88 ldr r1, [pc, 0x40]                |             r1 = *(0x35ecc);
    0x00035e8c mov r2, r4                        |             r2 = r4;
    0x00035e90 add r1, pc, r1                    |             r1 = pc + r1;
    0x00035e94 mov r0, r6                        |             r0 = r6;
    0x00035e98 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00035e9c mov r0, r4                        |         r0 = r4;
    0x00035ea0 add sp, sp, 8                     |         
    0x00035ea4 pop {r4, r5, r6, pc}              |         
                                                 | label_0:
    0x00035ea8 bl 0x8f6c                         |         r0 = errno_location ();
    0x00035eac ldr r4, [r0]                      |         r4 = *(r0);
    0x00035eb0 rsb r4, r4, 0                     |         r4 -= ;
    0x00035eb4 b 0x35e3c                         |         
                                                 |     }
                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0x35f74 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00035f74 ()                      | void fcn_00035f74 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00035f74 push {r0, r1, r4, r5, r6, lr}     |     
    0x00035f78 ldr r5, [pc, 0xa0]                |     r5 = *(0x3601c);
    0x00035f7c mov r6, r0                        |     r6 = r0;
    0x00035f80 mov r4, r1                        |     r4 = r1;
    0x00035f84 bl 0x34fac                        |     fcn_00034fac (r0);
    0x00035f88 add r5, pc, r5                    |     r5 = pc + r5;
    0x00035f8c cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00035f90 beq 0x36010                       |         goto label_0;
                                                 |     }
    0x00035f94 cmp r4, 0                         |     
    0x00035f98 ldrdne r2, r3, [r0]               |     __asm ("ldrdne r2, r3, [r0]");
    0x00035f9c strdne r2, r3, [r4]               |     __asm ("strdne r2, r3, [r4]");
    0x00035fa0 movne r4, 0                       |     r4 = 0;
                                                 |     while (1) {
    0x00035fa4 ldr r3, [pc, 0x78]                |         
    0x00035fa8 add r3, pc, r3                    |         r3 = pc + r3;
    0x00035fac ldr r3, [r3]                      |         r3 = *(0x36020);
    0x00035fb0 tst r3, 4                         |         
                                                 |         if ((r3 & 4) != 0) {
    0x00035fb4 beq 0x36004                       |             
    0x00035fb8 ldr r3, [pc, 0x68]                |             r3 = *(0x36024);
    0x00035fbc ldr r3, [r5, r3]                  |             r3 = *((r5 + r3));
    0x00035fc0 ldr r5, [r3]                      |             r5 = *(0x36024);
    0x00035fc4 bl 0x8204                         |             getpid ();
    0x00035fc8 ldr r3, [pc, 0x5c]                |             r3 = *(0x36028);
    0x00035fcc ldr r1, [pc, 0x5c]                |             r1 = imp.__fgetc_unlocked;
    0x00035fd0 add r3, pc, r3                    |             r3 = pc + r3;
    0x00035fd4 str r3, [sp]                      |             *(sp) = r3;
    0x00035fd8 ldr r3, [pc, 0x54]                |             r3 = *(0x36030);
    0x00035fdc add r1, pc, r1                    |             r1 = pc + r1;
    0x00035fe0 add r3, pc, r3                    |             r3 = pc + r3;
    0x00035fe4 mov r2, r0                        |             r2 = r0;
    0x00035fe8 mov r0, r5                        |             r0 = r5;
    0x00035fec bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00035ff0 ldr r1, [pc, 0x40]                |             r1 = *(0x36034);
    0x00035ff4 mov r2, r4                        |             r2 = r4;
    0x00035ff8 add r1, pc, r1                    |             r1 = pc + r1;
    0x00035ffc mov r0, r6                        |             r0 = r6;
    0x00036000 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00036004 mov r0, r4                        |         r0 = r4;
    0x00036008 add sp, sp, 8                     |         
    0x0003600c pop {r4, r5, r6, pc}              |         
                                                 | label_0:
    0x00036010 bl 0x8f6c                         |         r0 = errno_location ();
    0x00036014 ldr r4, [r0]                      |         r4 = *(r0);
    0x00036018 rsb r4, r4, 0                     |         r4 -= ;
    0x0003601c b 0x35fa4                         |         
                                                 |     }
                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0x3603c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0003603c ()                      | void fcn_0003603c (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0003603c push {r0, r1, r4, r5, r6, lr}     |     
    0x00036040 ldr r5, [pc, 0xa0]                |     r5 = *(0x360e4);
    0x00036044 mov r6, r0                        |     r6 = r0;
    0x00036048 mov r4, r1                        |     r4 = r1;
    0x0003604c bl 0x34fac                        |     fcn_00034fac (r0);
    0x00036050 add r5, pc, r5                    |     r5 = pc + r5;
    0x00036054 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00036058 beq 0x360d8                       |         goto label_0;
                                                 |     }
    0x0003605c cmp r4, 0                         |     
    0x00036060 ldrdne r2, r3, [r0, 8]            |     __asm ("ldrdne r2, r3, [r0, 8]");
    0x00036064 strdne r2, r3, [r4]               |     __asm ("strdne r2, r3, [r4]");
    0x00036068 movne r4, 0                       |     r4 = 0;
                                                 |     while (1) {
    0x0003606c ldr r3, [pc, 0x78]                |         
    0x00036070 add r3, pc, r3                    |         r3 = pc + r3;
    0x00036074 ldr r3, [r3]                      |         r3 = *(0x360e8);
    0x00036078 tst r3, 4                         |         
                                                 |         if ((r3 & 4) != 0) {
    0x0003607c beq 0x360cc                       |             
    0x00036080 ldr r3, [pc, 0x68]                |             r3 = *(0x360ec);
    0x00036084 ldr r3, [r5, r3]                  |             r3 = *((r5 + r3));
    0x00036088 ldr r5, [r3]                      |             r5 = *(0x360ec);
    0x0003608c bl 0x8204                         |             getpid ();
    0x00036090 ldr r3, [pc, 0x5c]                |             r3 = *(0x360f0);
    0x00036094 ldr r1, [pc, 0x5c]                |             r1 = *(0x360f4);
    0x00036098 add r3, pc, r3                    |             r3 = pc + r3;
    0x0003609c str r3, [sp]                      |             *(sp) = r3;
    0x000360a0 ldr r3, [pc, 0x54]                |             r3 = *(0x360f8);
    0x000360a4 add r1, pc, r1                    |             r1 = pc + r1;
    0x000360a8 add r3, pc, r3                    |             r3 = pc + r3;
    0x000360ac mov r2, r0                        |             r2 = r0;
    0x000360b0 mov r0, r5                        |             r0 = r5;
    0x000360b4 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x000360b8 ldr r1, [pc, 0x40]                |             r1 = *(0x360fc);
    0x000360bc mov r2, r4                        |             r2 = r4;
    0x000360c0 add r1, pc, r1                    |             r1 = pc + r1;
    0x000360c4 mov r0, r6                        |             r0 = r6;
    0x000360c8 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x000360cc mov r0, r4                        |         r0 = r4;
    0x000360d0 add sp, sp, 8                     |         
    0x000360d4 pop {r4, r5, r6, pc}              |         
                                                 | label_0:
    0x000360d8 bl 0x8f6c                         |         r0 = errno_location ();
    0x000360dc ldr r4, [r0]                      |         r4 = *(r0);
    0x000360e0 rsb r4, r4, 0                     |         r4 -= ;
    0x000360e4 b 0x3606c                         |         
                                                 |     }
                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0x362fc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000362fc ()                      | void fcn_000362fc (int32_t arg_40h, int32_t arg_48h, int32_t arg_50h, 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_18h;
                                                 |     int32_t var_18h_2;
                                                 |     int32_t var_20h;
                                                 |     int32_t var_20h_2;
                                                 |     int32_t var_28h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000362fc ldr r3, [pc, 0x1a0]               |     r3 = *(0x364a0);
    0x00036300 push {r4, r5, r6, r7, r8, lr}     |     
    0x00036304 subs r4, r0, 0                    |     r4 -= arg_40h;
    0x00036308 sub sp, sp, 0x28                  |     
    0x0003630c add r3, pc, r3                    |     r3 = pc + r3;
    0x00036310 ldr r5, [sp, 0x50]                |     r5 = *(arg_50h);
    0x00036314 bne 0x36320                       |     
                                                 |     while (r1 != r3) {
                                                 | label_0:
    0x00036318 mov r6, 0                         |         r6 = 0;
    0x0003631c b 0x36498                         |         goto label_3;
    0x00036320 mov r6, r2                        |         r6 = r2;
    0x00036324 ldr r2, [pc, 0x17c]               |         
    0x00036328 mov r7, r1                        |         r7 = r1;
    0x0003632c add r2, pc, r2                    |         r2 = pc + r2;
    0x00036330 ldr r2, [r2]                      |         r2 = *(0x364a4);
    0x00036334 tst r2, 4                         |         
                                                 |         if ((r2 & 4) != 0) {
    0x00036338 beq 0x36394                       |             
    0x0003633c ldr r2, [pc, 0x168]               |             r2 = *(0x364a8);
    0x00036340 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x00036344 ldr r8, [r3]                      |             r8 = *(r3);
    0x00036348 bl 0x8204                         |             getpid ();
    0x0003634c ldr r3, [pc, 0x15c]               |             r3 = *(0x364ac);
    0x00036350 ldr r1, [pc, 0x15c]               |             r1 = *(0x364b0);
    0x00036354 add r3, pc, r3                    |             r3 = pc + r3;
    0x00036358 str r3, [sp]                      |             *(sp) = r3;
    0x0003635c ldr r3, [pc, 0x154]               |             r3 = *(0x364b4);
    0x00036360 add r1, pc, r1                    |             r1 = pc + r1;
    0x00036364 add r3, pc, r3                    |             r3 = pc + r3;
    0x00036368 mov r2, r0                        |             r2 = r0;
    0x0003636c mov r0, r8                        |             r0 = r8;
    0x00036370 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00036374 mov r0, r4                        |             r0 = r4;
    0x00036378 bl 0x34b58                        |             fcn_00034b58 (r0);
    0x0003637c ldr r1, [pc, 0x138]               |             r1 = *(0x364b8);
    0x00036380 mov r3, r6                        |             r3 = r6;
    0x00036384 add r1, pc, r1                    |             r1 = pc + r1;
    0x00036388 mov r2, r0                        |             r2 = r0;
    0x0003638c mov r0, r4                        |             r0 = r4;
    0x00036390 bl 0x34014                        |             fcn_00034014 (r0);
                                                 |         }
    0x00036394 cmp r7, 0                         |         
                                                 |         if (r7 == 0) {
    0x00036398 beq 0x363fc                       |             goto label_4;
                                                 |         }
    0x0003639c add r1, sp, 8                     |         r1 += var_8h;
    0x000363a0 mov r0, r4                        |         r0 = r4;
    0x000363a4 bl 0x3603c                        |         r0 = fcn_0003603c (r0, r1);
    0x000363a8 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x000363ac bne 0x363fc                       |             goto label_4;
                                                 |         }
    0x000363b0 add r1, sp, 0x10                  |         r1 += var_10h;
    0x000363b4 mov r0, r4                        |         r0 = r4;
    0x000363b8 bl 0x35f74                        |         r0 = fcn_00035f74 (r0, r1);
    0x000363bc cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x000363c0 bne 0x363fc                       |             goto label_4;
                                                 |         }
    0x000363c4 ldrd r0, r1, [r7, 0x60]           |         __asm ("ldrd r0, r1, [r7, 0x60]");
    0x000363c8 ldrd r2, r3, [sp, 8]              |         __asm ("ldrd r2, r3, [var_8h]");
    0x000363cc cmp r1, r3                        |         
    0x000363d0 cmpeq r0, r2                      |         __asm ("cmpeq r0, r2");
    0x000363d4 bne 0x36318                       |         
                                                 |     }
    0x000363d8 ldrd r0, r1, [r7]                 |     __asm ("ldrd r0, r1, [r7]");
    0x000363dc ldrd r2, r3, [sp, 0x10]           |     __asm ("ldrd r2, r3, [var_10h]");
    0x000363e0 cmp r1, r3                        |     
    0x000363e4 cmpeq r0, r2                      |     __asm ("cmpeq r0, r2");
                                                 |     if (r1 != r3) {
    0x000363e8 bne 0x36318                       |         goto label_0;
                                                 |     }
                                                 | label_1:
    0x000363ec tst r5, 0x10                      |     
                                                 |     if ((r5 & 0x10) != 0) {
    0x000363f0 bne 0x3643c                       |         goto label_5;
                                                 |     }
                                                 | label_2:
    0x000363f4 mov r6, 1                         |     r6 = 1;
    0x000363f8 b 0x36498                         |     goto label_3;
                                                 | label_4:
    0x000363fc cmp r6, 0                         |     
                                                 |     if (r6 == 0) {
    0x00036400 beq 0x36318                       |         goto label_0;
                                                 |     }
    0x00036404 mov r0, r4                        |     r0 = r4;
    0x00036408 bl 0x3512c                        |     r0 = fcn_0003512c (r0);
    0x0003640c subs r7, r0, 0                    |     r7 = r0 - 0;
                                                 |     if (r7 != r0) {
    0x00036410 moveq r6, r7                      |         r6 = r7;
                                                 |     }
                                                 |     if (r7 != r0) {
    0x00036414 beq 0x36428                       |         
    0x00036418 mov r1, r6                        |         r1 = r6;
    0x0003641c bl 0x8cb4                         |         r0 = strcmp (r0, r1);
    0x00036420 clz r6, r0                        |         r6 &= r0;
    0x00036424 lsr r6, r6, 5                     |         r6 >>= 5;
                                                 |     }
    0x00036428 mov r0, r7                        |     r0 = r7;
    0x0003642c bl 0x91c4                         |     free (r0);
    0x00036430 cmp r6, 0                         |     
                                                 |     if (r6 != 0) {
    0x00036434 bne 0x363ec                       |         goto label_1;
                                                 |     }
    0x00036438 b 0x36318                         |     goto label_0;
                                                 | label_5:
    0x0003643c add r1, sp, 0x18                  |     r1 += var_18h;
    0x00036440 mov r0, r4                        |     r0 = r4;
    0x00036444 bl 0x3522c                        |     r0 = fcn_0003522c (r0, r1);
    0x00036448 subs r6, r0, 0                    |     r6 = r0 - 0;
                                                 |     if (r6 != r0) {
    0x0003644c bne 0x36318                       |         goto label_0;
                                                 |     }
    0x00036450 ldrd r2, r3, [sp, 0x40]           |     __asm ("ldrd r2, r3, [arg_40h]");
    0x00036454 ldrd r0, r1, [sp, 0x18]           |     __asm ("ldrd r0, r1, [var_18h]");
    0x00036458 cmp r1, r3                        |     
    0x0003645c cmpeq r0, r2                      |     __asm ("cmpeq r0, r2");
                                                 |     if (r1 != r3) {
    0x00036460 bne 0x36498                       |         goto label_3;
                                                 |     }
    0x00036464 tst r5, 0x200                     |     
                                                 |     if ((r5 & 0x200) == 0) {
    0x00036468 beq 0x363f4                       |         goto label_2;
                                                 |     }
    0x0003646c add r1, sp, 0x20                  |     r1 += var_20h;
    0x00036470 mov r0, r4                        |     r0 = r4;
    0x00036474 bl 0x35d04                        |     r0 = fcn_00035d04 (r0, r1);
    0x00036478 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0003647c bne 0x36498                       |         
    0x00036480 ldrd r2, r3, [sp, 0x48]           |         __asm ("ldrd r2, r3, [arg_48h]");
    0x00036484 ldrd r0, r1, [sp, 0x20]           |         __asm ("ldrd r0, r1, [var_20h]");
    0x00036488 cmp r1, r3                        |         
    0x0003648c cmpeq r0, r2                      |         __asm ("cmpeq r0, r2");
                                                 |         if (r1 != r3) {
    0x00036490 moveq r6, 1                       |             r6 = 1;
                                                 |         }
                                                 |         if (r1 != r3) {
    0x00036494 movne r6, 0                       |             r6 = 0;
                                                 |             goto label_3;
                                                 |         }
                                                 |     }
                                                 | label_3:
    0x00036498 mov r0, r6                        |     r0 = r6;
    0x0003649c add sp, sp, 0x28                  |     
    0x000364a0 pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x364c0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000364c0 ()                              | void fcn_000364c0 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x000364c0 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x000364c4 ldr r1, [pc, 0x88]                        |     r1 = *(0x36550);
    0x000364c8 subs r6, r0, 0                            |     r6 = r0 - 0;
    0x000364cc add r1, pc, r1                            |     r1 = pc + r1;
                                                         |     if (r6 != r0) {
    0x000364d0 mvneq r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r6 != r0) {
    0x000364d4 beq 0x3654c                               |         
    0x000364d8 mov r5, r3                                |         r5 = r3;
    0x000364dc ldr r3, [pc, 0x74]                        |         
    0x000364e0 mov r4, r2                                |         r4 = r2;
    0x000364e4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000364e8 ldr r3, [r3]                              |         r3 = *(0x36554);
    0x000364ec strd r4, r5, [r6, 0xb0]                   |         __asm ("strd r4, r5, [r6, 0xb0]");
    0x000364f0 ands r0, r3, 4                            |         r0 = r3 & 4;
                                                         |         if (r0 == r3) {
    0x000364f4 beq 0x3654c                               |             goto label_0;
                                                         |         }
    0x000364f8 ldr r3, [pc, 0x5c]                        |         r3 = *(0x36558);
    0x000364fc ldr r3, [r1, r3]                          |         r3 = *((r1 + r3));
    0x00036500 ldr r7, [r3]                              |         r7 = *(0x36558);
    0x00036504 bl 0x8204                                 |         getpid ();
    0x00036508 ldr r3, [pc, 0x50]                        |         r3 = *(0x3655c);
    0x0003650c ldr r1, [pc, 0x50]                        |         r1 = *(0x36560);
    0x00036510 add r3, pc, r3                            |         r3 = pc + r3;
    0x00036514 str r3, [sp]                              |         *(sp) = r3;
    0x00036518 ldr r3, [pc, 0x48]                        |         r3 = *(0x36564);
    0x0003651c add r1, pc, r1                            |         r1 = pc + r1;
    0x00036520 add r3, pc, r3                            |         r3 = pc + r3;
    0x00036524 mov r2, r0                                |         r2 = r0;
    0x00036528 mov r0, r7                                |         r0 = r7;
    0x0003652c bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x00036530 ldr r1, [pc, 0x34]                        |         r1 = *(0x36568);
    0x00036534 mov r0, r6                                |         r0 = r6;
    0x00036538 mov r2, r4                                |         r2 = r4;
    0x0003653c mov r3, r5                                |         r3 = r5;
    0x00036540 add r1, pc, r1                            |         r1 = pc + r1;
    0x00036544 bl 0x34014                                |         fcn_00034014 (r0);
    0x00036548 mov r0, 0                                 |         r0 = 0;
                                                         |     }
                                                         | label_0:
    0x0003654c add sp, sp, 0xc                           |     
    0x00036550 pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0x36570 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00036570 ()                              | void fcn_00036570 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00036570 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00036574 ldr r1, [pc, 0x88]                        |     r1 = *(0x36600);
    0x00036578 subs r6, r0, 0                            |     r6 = r0 - 0;
    0x0003657c add r1, pc, r1                            |     r1 = pc + r1;
                                                         |     if (r6 != r0) {
    0x00036580 mvneq r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r6 != r0) {
    0x00036584 beq 0x365fc                               |         
    0x00036588 mov r5, r3                                |         r5 = r3;
    0x0003658c ldr r3, [pc, 0x74]                        |         
    0x00036590 mov r4, r2                                |         r4 = r2;
    0x00036594 add r3, pc, r3                            |         r3 = pc + r3;
    0x00036598 ldr r3, [r3]                              |         r3 = *(0x36604);
    0x0003659c strd r4, r5, [r6, 0xb8]                   |         __asm ("strd r4, r5, [r6, 0xb8]");
    0x000365a0 ands r0, r3, 4                            |         r0 = r3 & 4;
                                                         |         if (r0 == r3) {
    0x000365a4 beq 0x365fc                               |             goto label_0;
                                                         |         }
    0x000365a8 ldr r3, [pc, 0x5c]                        |         r3 = *(0x36608);
    0x000365ac ldr r3, [r1, r3]                          |         r3 = *((r1 + r3));
    0x000365b0 ldr r7, [r3]                              |         r7 = *(0x36608);
    0x000365b4 bl 0x8204                                 |         getpid ();
    0x000365b8 ldr r3, [pc, 0x50]                        |         r3 = *(0x3660c);
    0x000365bc ldr r1, [pc, 0x50]                        |         r1 = *(0x36610);
    0x000365c0 add r3, pc, r3                            |         r3 = pc + r3;
    0x000365c4 str r3, [sp]                              |         *(sp) = r3;
    0x000365c8 ldr r3, [pc, 0x48]                        |         r3 = *(0x36614);
    0x000365cc add r1, pc, r1                            |         r1 = pc + r1;
    0x000365d0 add r3, pc, r3                            |         r3 = pc + r3;
    0x000365d4 mov r2, r0                                |         r2 = r0;
    0x000365d8 mov r0, r7                                |         r0 = r7;
    0x000365dc bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x000365e0 ldr r1, [pc, 0x34]                        |         r1 = *(0x36618);
    0x000365e4 mov r0, r6                                |         r0 = r6;
    0x000365e8 mov r2, r4                                |         r2 = r4;
    0x000365ec mov r3, r5                                |         r3 = r5;
    0x000365f0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000365f4 bl 0x34014                                |         fcn_00034014 (r0);
    0x000365f8 mov r0, 0                                 |         r0 = 0;
                                                         |     }
                                                         | label_0:
    0x000365fc add sp, sp, 0xc                           |     
    0x00036600 pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0x36620 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00036620 ()                      | void fcn_00036620 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00036620 ldr r2, [pc, 0x84]                |     r2 = *(0x366a8);
    0x00036624 push {r0, r1, r4, r5, r6, lr}     |     
    0x00036628 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0003662c add r2, pc, r2                    |     r2 = pc + r2;
                                                 |     if (r4 != r0) {
    0x00036630 mvneq r0, 0x15                    |         r0 = ~0x15;
                                                 |     }
                                                 |     if (r4 != r0) {
    0x00036634 beq 0x366a4                       |         
    0x00036638 ldr r3, [pc, 0x70]                |         
    0x0003663c str r1, [r4, 0xcc]                |         *((r4 + 0xcc)) = r1;
    0x00036640 add r3, pc, r3                    |         r3 = pc + r3;
    0x00036644 ldr r3, [r3]                      |         r3 = *(0x366ac);
    0x00036648 ands r0, r3, 4                    |         r0 = r3 & 4;
                                                 |         if (r0 == r3) {
    0x0003664c beq 0x366a4                       |             goto label_0;
                                                 |         }
    0x00036650 ldr r3, [pc, 0x5c]                |         r3 = *(0x366b0);
    0x00036654 mov r5, r1                        |         r5 = r1;
    0x00036658 ldr r3, [r2, r3]                  |         r3 = *((r2 + r3));
    0x0003665c ldr r6, [r3]                      |         r6 = *(0x366b0);
    0x00036660 bl 0x8204                         |         getpid ();
    0x00036664 ldr r3, [pc, 0x4c]                |         r3 = *(0x366b4);
    0x00036668 ldr r1, [pc, 0x4c]                |         r1 = *(0x366b8);
    0x0003666c add r3, pc, r3                    |         r3 = pc + r3;
    0x00036670 str r3, [sp]                      |         *(sp) = r3;
    0x00036674 ldr r3, [pc, 0x44]                |         r3 = *(0x366bc);
    0x00036678 add r1, pc, r1                    |         r1 = pc + r1;
    0x0003667c add r3, pc, r3                    |         r3 = pc + r3;
    0x00036680 mov r2, r0                        |         r2 = r0;
    0x00036684 mov r0, r6                        |         r0 = r6;
    0x00036688 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x0003668c ldr r1, [pc, 0x30]                |         r1 = *(0x366c0);
    0x00036690 mov r0, r4                        |         r0 = r4;
    0x00036694 mov r2, r5                        |         r2 = r5;
    0x00036698 add r1, pc, r1                    |         r1 = pc + r1;
    0x0003669c bl 0x34014                        |         fcn_00034014 (r0);
    0x000366a0 mov r0, 0                         |         r0 = 0;
                                                 |     }
                                                 | label_0:
    0x000366a4 add sp, sp, 8                     |     
    0x000366a8 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/lib/libmount.so.1.1.0 @ 0x366c8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000366c8 ()                              | void fcn_000366c8 (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000366c8 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x000366cc ldr r6, [pc, 0xb4]                        |     r6 = *(0x36784);
    0x000366d0 subs r4, r0, 0                            |     r4 = r0 - 0;
    0x000366d4 add r6, pc, r6                            |     r6 = pc + r6;
                                                         |     if (r4 != r0) {
    0x000366d8 mvneq r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r4 == r0) {
    0x000366dc beq 0x36704                               |         goto label_0;
                                                         |     }
    0x000366e0 mov r0, r1                                |     r0 = r1;
    0x000366e4 bl 0x29984                                |     r0 = fcn_00029984 (r0);
    0x000366e8 cmp r0, 0                                 |     
    0x000366ec mov r1, r0                                |     r1 = r0;
    0x000366f0 str r0, [r4, 0x80]                        |     *((r4 + 0x80)) = r0;
                                                         |     if (r0 != 0) {
    0x000366f4 bne 0x3670c                               |         goto label_1;
                                                         |     }
    0x000366f8 bl 0x8f6c                                 |     r0 = errno_location ();
    0x000366fc ldr r0, [r0]                              |     r0 = *(r0);
    0x00036700 rsb r0, r0, 0                             |     r0 -= ;
                                                         |     do {
                                                         | label_0:
    0x00036704 add sp, sp, 0xc                           |         
    0x00036708 pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_1:
    0x0003670c add r7, r4, 0xd0                          |         r7 = r4 + 0xd0;
    0x00036710 mov r2, 0x40                              |         r2 = 0x40;
    0x00036714 mov r0, r7                                |         r0 = r7;
    0x00036718 bl 0x896c                                 |         strncpy (r0, r1, r2);
    0x0003671c ldr r3, [pc, 0x68]                        |         r3 = *(0x36788);
    0x00036720 mov r5, 0                                 |         r5 = 0;
    0x00036724 strb r5, [r4, 0x10f]                      |         *((r4 + 0x10f)) = r5;
    0x00036728 ldr r0, [pc, r3]                          |         r0 = *(0x00036730);
    0x0003672c ands r0, r0, 4                            |         r0 &= 4;
    0x00036730 beq 0x36704                               |         
                                                         |     } while (r0 == r0);
    0x00036734 ldr r3, [pc, 0x54]                        |     r3 = *(0x3678c);
    0x00036738 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x0003673c ldr r6, [r3]                              |     r6 = *(0x3678c);
    0x00036740 bl 0x8204                                 |     getpid ();
    0x00036744 ldr r3, [pc, 0x48]                        |     r3 = *(0x36790);
    0x00036748 ldr r1, [pc, 0x48]                        |     r1 = *(0x36794);
    0x0003674c add r3, pc, r3                            |     r3 = pc + r3;
    0x00036750 str r3, [sp]                              |     *(sp) = r3;
    0x00036754 ldr r3, [pc, 0x40]                        |     r3 = *(0x36798);
    0x00036758 add r1, pc, r1                            |     r1 = pc + r1;
    0x0003675c add r3, pc, r3                            |     r3 = pc + r3;
    0x00036760 mov r2, r0                                |     r2 = r0;
    0x00036764 mov r0, r6                                |     r0 = r6;
    0x00036768 bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x0003676c ldr r1, [pc, 0x2c]                        |     r1 = *(0x3679c);
    0x00036770 mov r0, r4                                |     r0 = r4;
    0x00036774 mov r2, r7                                |     r2 = r7;
    0x00036778 add r1, pc, r1                            |     r1 = pc + r1;
    0x0003677c bl 0x34014                                |     fcn_00034014 (r0);
    0x00036780 mov r0, r5                                |     r0 = r5;
    0x00036784 b 0x36704                                 |     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/lib/libmount.so.1.1.0 @ 0x36954 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00036954 ()                              | void fcn_00036954 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00036954 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00036958 ldr r6, [pc, 0xf8]                        |     r6 = *(0x36a54);
    0x0003695c mov r7, r0                                |     r7 = r0;
    0x00036960 bl 0x34b70                                |     fcn_00034b70 (r0);
    0x00036964 add r6, pc, r6                            |     r6 = pc + r6;
    0x00036968 cmp r0, 0                                 |     
                                                         |     if (r0 >= 0) {
    0x0003696c mvnlt r4, 0x15                            |         r4 = ~0x15;
                                                         |     }
                                                         |     if (r0 < 0) {
    0x00036970 blt 0x369f0                               |         goto label_0;
                                                         |     }
    0x00036974 mov r2, 0                                 |     r2 = 0;
    0x00036978 ldr r1, [pc, 0xdc]                        |     r1 = *(0x36a58);
    0x0003697c bl 0x7f10                                 |     ioctl (r0, r1);
    0x00036980 ldr r3, [pc, 0xd8]                        |     r3 = *(0x36a5c);
    0x00036984 ldr r5, [pc, r3]                          |     r5 = *(0x0003698c);
    0x00036988 and r5, r5, 4                             |     r5 &= 4;
    0x0003698c cmp r0, 0                                 |     
                                                         |     if (r0 >= 0) {
    0x00036990 bge 0x369fc                               |         goto label_1;
                                                         |     }
    0x00036994 bl 0x8f6c                                 |     errno_location ();
    0x00036998 cmp r5, 0                                 |     
    0x0003699c ldr r4, [r0]                              |     r4 = *(r0);
    0x000369a0 rsb r4, r4, 0                             |     r4 -= ;
                                                         |     if (r5 == 0) {
    0x000369a4 beq 0x369f0                               |         goto label_0;
                                                         |     }
    0x000369a8 ldr r3, [pc, 0xb4]                        |     r3 = *(0x36a60);
    0x000369ac ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x000369b0 ldr r5, [r3]                              |     r5 = *(0x36a60);
    0x000369b4 bl 0x8204                                 |     getpid ();
    0x000369b8 ldr r3, [pc, 0xa8]                        |     r3 = *(0x36a64);
    0x000369bc ldr r1, [pc, 0xa8]                        |     r1 = *(0x36a68);
    0x000369c0 add r3, pc, r3                            |     r3 = pc + r3;
    0x000369c4 str r3, [sp]                              |     *(sp) = r3;
    0x000369c8 ldr r3, [pc, 0xa0]                        |     r3 = *(0x36a6c);
    0x000369cc add r1, pc, r1                            |     r1 = pc + r1;
    0x000369d0 add r3, pc, r3                            |     r3 = pc + r3;
    0x000369d4 mov r2, r0                                |     r2 = r0;
    0x000369d8 mov r0, r5                                |     r0 = r5;
    0x000369dc bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x000369e0 ldr r1, [pc, 0x8c]                        |     r1 = *(0x36a70);
    0x000369e4 mov r0, r7                                |     r0 = r7;
    0x000369e8 add r1, pc, r1                            |     r1 = pc + r1;
    0x000369ec bl 0x34014                                |     fcn_00034014 (r0);
                                                         |     do {
                                                         | label_0:
    0x000369f0 mov r0, r4                                |         r0 = r4;
    0x000369f4 add sp, sp, 0xc                           |         
    0x000369f8 pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_1:
    0x000369fc cmp r5, 0                                 |         
                                                         |         if (r5 != 0) {
    0x00036a00 moveq r4, r5                              |             r4 = r5;
                                                         |         }
    0x00036a04 beq 0x369f0                               |         
                                                         |     } while (r5 == 0);
    0x00036a08 ldr r3, [pc, 0x54]                        |     r3 = *(0x36a60);
    0x00036a0c ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x00036a10 ldr r4, [r3]                              |     r4 = *(0x36a60);
    0x00036a14 bl 0x8204                                 |     getpid ();
    0x00036a18 ldr r3, [pc, 0x58]                        |     r3 = *(0x36a74);
    0x00036a1c ldr r1, [pc, 0x58]                        |     r1 = *(0x36a78);
    0x00036a20 add r3, pc, r3                            |     r3 = pc + r3;
    0x00036a24 str r3, [sp]                              |     *(sp) = r3;
    0x00036a28 ldr r3, [pc, 0x50]                        |     r3 = *(0x36a7c);
    0x00036a2c add r1, pc, r1                            |     r1 = pc + r1;
    0x00036a30 add r3, pc, r3                            |     r3 = pc + r3;
    0x00036a34 mov r2, r0                                |     r2 = r0;
    0x00036a38 mov r0, r4                                |     r0 = r4;
    0x00036a3c bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x00036a40 ldr r1, [pc, 0x3c]                        |     r1 = *(0x36a80);
    0x00036a44 mov r0, r7                                |     r0 = r7;
    0x00036a48 add r1, pc, r1                            |     r1 = pc + r1;
    0x00036a4c bl 0x34014                                |     fcn_00034014 (r0);
    0x00036a50 mov r4, 0                                 |     r4 = 0;
    0x00036a54 b 0x369f0                                 |     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/lib/libmount.so.1.1.0 @ 0x36a88 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00036a88 ()                                  | void fcn_00036a88 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t fd;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_18h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_50h_2;
                                                             |     int32_t var_8ch;
                                                             |     r0 = arg1;
    0x00036a88 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00036a8c ldr r5, [pc, 0xa88]                           |     r5 = *(0x37518);
    0x00036a90 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00036a94 add r5, pc, r5                                |     r5 = pc + r5;
    0x00036a98 sub sp, sp, 0x8c                              |     
                                                             |     if (r4 == r0) {
    0x00036a9c beq 0x37398                                   |         goto label_6;
                                                             |     }
    0x00036aa0 ldrsb r3, [r4]                                |     r3 = *(r4);
    0x00036aa4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00036aa8 beq 0x37398                                   |         goto label_6;
                                                             |     }
    0x00036aac ldr r3, [r4, 0x80]                            |     r3 = *((r4 + 0x80));
    0x00036ab0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00036ab4 beq 0x37398                                   |         goto label_6;
                                                             |     }
    0x00036ab8 ldr r3, [pc, 0xa60]                           |     
    0x00036abc add r3, pc, r3                                |     r3 = pc + r3;
    0x00036ac0 ldr r3, [r3]                                  |     r3 = *(0x3751c);
    0x00036ac4 tst r3, 0x10                                  |     
                                                             |     if ((r3 & 0x10) != 0) {
    0x00036ac8 beq 0x36b14                                   |         
    0x00036acc ldr r3, [pc, 0xa50]                           |         r3 = *(0x37520);
    0x00036ad0 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00036ad4 ldr r6, [r3]                                  |         r6 = *(0x37520);
    0x00036ad8 bl 0x8204                                     |         getpid ();
    0x00036adc ldr r3, [pc, 0xa44]                           |         r3 = *(0x37524);
    0x00036ae0 ldr r1, [pc, 0xa44]                           |         r1 = *(0x37528);
    0x00036ae4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036ae8 str r3, [sp]                                  |         *(sp) = r3;
    0x00036aec ldr r3, [pc, 0xa3c]                           |         r3 = *(0x3752c);
    0x00036af0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00036af4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036af8 mov r2, r0                                    |         r2 = r0;
    0x00036afc mov r0, r6                                    |         r0 = r6;
    0x00036b00 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00036b04 ldr r1, [pc, 0xa28]                           |         r1 = *(0x37530);
    0x00036b08 mov r0, r4                                    |         r0 = r4;
    0x00036b0c add r1, pc, r1                                |         r1 = pc + r1;
    0x00036b10 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00036b14 ldr r3, [r4, 0xcc]                            |     r3 = *((r4 + 0xcc));
    0x00036b18 ldr r0, [r4, 0x80]                            |     r0 = *((r4 + 0x80));
    0x00036b1c tst r3, 1                                     |     
                                                             |     if ((r3 & 1) == 0) {
    0x00036b20 movne r8, 0                                   |         r8 = 0;
                                                             |     }
                                                             |     if ((r3 & 1) != 0) {
    0x00036b24 moveq r8, 2                                   |         r8 = 2;
                                                             |     }
    0x00036b28 orr r1, r8, 0x80000                           |     r1 = r8 | 0x80000;
    0x00036b2c bl 0x8ba0                                     |     r0 = open64 ();
    0x00036b30 mov r7, r0                                    |     r7 = r0;
    0x00036b34 bl 0x8f6c                                     |     errno_location ();
    0x00036b38 cmp r7, 0                                     |     
    0x00036b3c mov r6, r0                                    |     r6 = r0;
                                                             |     if (r7 >= 0) {
    0x00036b40 bge 0x36be4                                   |         goto label_7;
                                                             |     }
    0x00036b44 cmp r8, 0                                     |     
    0x00036b48 bne 0x36bbc                                   |     
                                                             |     while (r3 != 0xd) {
                                                             | label_0:
    0x00036b4c ldr r3, [pc, 0x9e4]                           |         
    0x00036b50 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036b54 ldr r3, [r3]                                  |         r3 = *(0x37534);
    0x00036b58 tst r3, 0x10                                  |         
                                                             |         if ((r3 & 0x10) != 0) {
    0x00036b5c beq 0x36ba8                                   |             
    0x00036b60 ldr r3, [pc, 0x9bc]                           |             r3 = *(0x37520);
    0x00036b64 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00036b68 ldr r5, [r3]                                  |             r5 = *(0x37520);
    0x00036b6c bl 0x8204                                     |             getpid ();
    0x00036b70 ldr r3, [pc, 0x9c4]                           |             r3 = *(0x37538);
    0x00036b74 ldr r1, [pc, 0x9c4]                           |             r1 = *(0x3753c);
    0x00036b78 add r3, pc, r3                                |             r3 = pc + r3;
    0x00036b7c str r3, [sp]                                  |             *(sp) = r3;
    0x00036b80 ldr r3, [pc, 0x9bc]                           |             r3 = *(0x37540);
    0x00036b84 add r1, pc, r1                                |             r1 = pc + r1;
    0x00036b88 add r3, pc, r3                                |             r3 = pc + r3;
    0x00036b8c mov r2, r0                                    |             r2 = r0;
    0x00036b90 mov r0, r5                                    |             r0 = r5;
    0x00036b94 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00036b98 ldr r1, [pc, 0x9a8]                           |             r1 = *(0x37544);
    0x00036b9c mov r0, r4                                    |             r0 = r4;
    0x00036ba0 add r1, pc, r1                                |             r1 = pc + r1;
    0x00036ba4 bl 0x34014                                    |             fcn_00034014 (r0);
                                                             |         }
    0x00036ba8 ldr sb, [r6]                                  |         sb = *(r6);
    0x00036bac rsb sb, sb, 0                                 |         sb -= ;
                                                             | label_2:
    0x00036bb0 mov r0, sb                                    |         r0 = sb;
    0x00036bb4 add sp, sp, 0x8c                              |         
    0x00036bb8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00036bbc ldr r3, [r0]                                  |         r3 = *(r0);
    0x00036bc0 cmp r3, 0xd                                   |         
    0x00036bc4 cmpne r3, 0x1e                                |         __asm ("cmpne r3, 0x1e");
    0x00036bc8 bne 0x36b4c                                   |         
                                                             |     }
    0x00036bcc mov r1, 0                                     |     r1 = 0;
    0x00036bd0 ldr r0, [r4, 0x80]                            |     r0 = *((r4 + 0x80));
    0x00036bd4 bl 0x8ba0                                     |     r0 = open64 ();
    0x00036bd8 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 >= r0) {
    0x00036bdc movge r8, 0                                   |         r8 = 0;
                                                             |         goto label_8;
                                                             |     }
                                                             |     if (r7 < r0) {
                                                             | label_8:
    0x00036be0 blt 0x36b4c                                   |         goto label_0;
                                                             |     }
                                                             | label_7:
    0x00036be4 ldr r3, [pc, 0x960]                           |     
    0x00036be8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00036bec ldr r3, [r3]                                  |     r3 = *(0x37548);
    0x00036bf0 tst r3, 0x10                                  |     
                                                             |     if ((r3 & 0x10) != 0) {
    0x00036bf4 beq 0x36c40                                   |         
    0x00036bf8 ldr r3, [pc, 0x924]                           |         r3 = *(0x37520);
    0x00036bfc ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00036c00 ldr sb, [r3]                                  |         sb = *(0x37520);
    0x00036c04 bl 0x8204                                     |         getpid ();
    0x00036c08 ldr r3, [pc, 0x940]                           |         r3 = *(0x3754c);
    0x00036c0c ldr r1, [pc, 0x940]                           |         r1 = *(0x37550);
    0x00036c10 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036c14 str r3, [sp]                                  |         *(sp) = r3;
    0x00036c18 ldr r3, [pc, 0x938]                           |         r3 = *(0x37554);
    0x00036c1c add r1, pc, r1                                |         r1 = pc + r1;
    0x00036c20 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036c24 mov r2, r0                                    |         r2 = r0;
    0x00036c28 mov r0, sb                                    |         r0 = sb;
    0x00036c2c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00036c30 ldr r1, [pc, 0x924]                           |         r1 = *(0x37558);
    0x00036c34 mov r0, r4                                    |         r0 = r4;
    0x00036c38 add r1, pc, r1                                |         r1 = pc + r1;
    0x00036c3c bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00036c40 ldr r3, [r4, 0x84]                            |     r3 = *((r4 + 0x84));
    0x00036c44 cmn r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x00036c48 beq 0x36ccc                                   |         
    0x00036c4c ldr r3, [r4, 0x88]                            |         r3 = *((r4 + 0x88));
    0x00036c50 cmp r3, r8                                    |         
                                                             |         if (r3 == r8) {
    0x00036c54 beq 0x36ccc                                   |             goto label_9;
                                                             |         }
    0x00036c58 ldr r3, [pc, 0x900]                           |         
    0x00036c5c add r3, pc, r3                                |         r3 = pc + r3;
    0x00036c60 ldr r3, [r3]                                  |         r3 = *(0x3755c);
    0x00036c64 tst r3, 0x10                                  |         
                                                             |         if ((r3 & 0x10) != 0) {
    0x00036c68 beq 0x36cb4                                   |             
    0x00036c6c ldr r3, [pc, 0x8b0]                           |             r3 = *(0x37520);
    0x00036c70 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00036c74 ldr sb, [r3]                                  |             sb = *(0x37520);
    0x00036c78 bl 0x8204                                     |             getpid ();
    0x00036c7c ldr r3, [pc, 0x8e0]                           |             r3 = *(0x37560);
    0x00036c80 ldr r1, [pc, 0x8e0]                           |             r1 = *(0x37564);
    0x00036c84 add r3, pc, r3                                |             r3 = pc + r3;
    0x00036c88 str r3, [sp]                                  |             *(sp) = r3;
    0x00036c8c ldr r3, [pc, 0x8d8]                           |             r3 = "_";
    0x00036c90 add r1, pc, r1                                |             r1 = pc + r1;
    0x00036c94 add r3, pc, r3                                |             r3 = pc + r3;
    0x00036c98 mov r2, r0                                    |             r2 = r0;
    0x00036c9c mov r0, sb                                    |             r0 = sb;
    0x00036ca0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00036ca4 ldr r1, [pc, 0x8c4]                           |             r1 = *(0x3756c);
    0x00036ca8 mov r0, r4                                    |             r0 = r4;
    0x00036cac add r1, pc, r1                                |             r1 = pc + r1;
    0x00036cb0 bl 0x34014                                    |             fcn_00034014 (r0);
                                                             |         }
    0x00036cb4 ldr r0, [r4, 0x84]                            |         r0 = *((r4 + 0x84));
    0x00036cb8 bl 0x917c                                     |         close (r0);
    0x00036cbc mvn r3, 0                                     |         r3 = ~0;
    0x00036cc0 str r3, [r4, 0x84]                            |         *((r4 + 0x84)) = r3;
    0x00036cc4 mov r3, 0                                     |         r3 = 0;
    0x00036cc8 str r3, [r4, 0x88]                            |         *((r4 + 0x88)) = r3;
                                                             |     }
                                                             | label_9:
    0x00036ccc ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x00036cd0 ldr r2, [r4, 0xcc]                            |     r2 = *((r4 + 0xcc));
    0x00036cd4 cmp r8, 0                                     |     
    0x00036cd8 ldr sl, [pc, 0x894]                           |     sl = *(0x00037574);
    0x00036cdc bicne r3, r3, 1                               |     __asm ("bicne r3, r3, 1");
                                                             |     if (r8 != 0) {
    0x00036ce0 orreq r3, r3, 1                               |         r3 |= 1;
                                                             |     }
                                                             |     if (r8 != 0) {
    0x00036ce4 orreq r2, r2, 1                               |         r2 |= 1;
                                                             |     }
    0x00036ce8 bicne r2, r2, 1                               |     __asm ("bicne r2, r2, 1");
                                                             |     if (r8 == 0) {
    0x00036cec orrne r3, r3, 2                               |         r3 |= 2;
                                                             |     }
    0x00036cf0 mov r8, 0x11                                  |     r8 = 0x11;
    0x00036cf4 mov fp, 0                                     |     
    0x00036cf8 add sb, sp, 0x20                              |     sb += var_20h;
                                                             |     if (r8 != 0) {
    0x00036cfc streq r3, [r4, 0x8c]                          |         *((r4 + 0x8c)) = r3;
                                                             |     }
                                                             |     if (r8 != 0) {
    0x00036d00 streq r2, [r4, 0xcc]                          |         *((r4 + 0xcc)) = r2;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x00036d04 strne r2, [r4, 0xcc]                          |         *((r4 + 0xcc)) = r2;
                                                             |     }
    0x00036d08 strne r3, [r4, 0x8c]                          |     *((r4 + 0x8c)) = r3;
                                                             |     while (r8 != r8) {
    0x00036d0c str fp, [r6]                                  |         *(r6) = fp;
    0x00036d10 mov r0, r4                                    |         r0 = r4;
    0x00036d14 bl 0x34b70                                    |         r0 = fcn_00034b70 (r0);
    0x00036d18 subs r3, r0, 0                                |         r3 = r0 - 0;
    0x00036d1c str r3, [sp, 8]                               |         fd = r3;
                                                             |         if (r3 >= r0) {
    0x00036d20 bge 0x373a0                                   |             goto label_10;
                                                             |         }
    0x00036d24 ldrb r3, [r4, 0x90]                           |         r3 = *((r4 + 0x90));
    0x00036d28 ldr r1, [r6]                                  |         r1 = *(r6);
    0x00036d2c tst r3, 8                                     |         
                                                             |         if ((r3 & 8) == 0) {
    0x00036d30 beq 0x36d60                                   |             goto label_11;
                                                             |         }
    0x00036d34 cmp r1, 0xd                                   |         
    0x00036d38 cmpne r1, 2                                   |         __asm ("cmpne r1, 2");
                                                             |         if (r1 == 0xd) {
    0x00036d3c movne r1, 1                                   |             r1 = 1;
                                                             |         }
                                                             |         if (r1 != 0xd) {
    0x00036d40 moveq r1, 0                                   |             r1 = 0;
                                                             |         }
                                                             |         if (r1 != 0xd) {
    0x00036d44 bne 0x36d60                                   |             goto label_11;
                                                             |         }
    0x00036d48 mov r0, sb                                    |         r0 = sb;
    0x00036d4c str r1, [sp, 0x20]                            |         var_20h = r1;
    0x00036d50 str sl, [sp, 0x24]                            |         var_24h = sl;
    0x00036d54 bl 0x86cc                                     |         nanosleep ();
    0x00036d58 subs r8, r8, 1                                |         r8--;
    0x00036d5c bne 0x36d0c                                   |         
                                                             |     }
                                                             | label_11:
    0x00036d60 ldr sb, [r6]                                  |     sb = *(r6);
    0x00036d64 mov r8, 0                                     |     r8 = 0;
    0x00036d68 rsb sb, sb, 0                                 |     sb -= ;
    0x00036d6c b 0x3747c                                     |     goto label_12;
                                                             | label_5:
    0x00036d70 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00036d74 beq 0x36dc0                                   |         
    0x00036d78 ldr r3, [pc, 0x7a4]                           |         r3 = *(0x37520);
    0x00036d7c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00036d80 ldr r8, [r3]                                  |         r8 = *(0x37520);
    0x00036d84 bl 0x8204                                     |         getpid ();
    0x00036d88 ldr r3, [pc, 0x7e8]                           |         r3 = *(0x37574);
    0x00036d8c ldr r1, [pc, 0x7e8]                           |         r1 = *(0x37578);
    0x00036d90 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036d94 str r3, [sp]                                  |         *(sp) = r3;
    0x00036d98 ldr r3, [pc, 0x7e0]                           |         r3 = *(0x3757c);
    0x00036d9c add r1, pc, r1                                |         r1 = pc + r1;
    0x00036da0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036da4 mov r2, r0                                    |         r2 = r0;
    0x00036da8 mov r0, r8                                    |         r0 = r8;
    0x00036dac bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00036db0 ldr r1, [pc, 0x7cc]                           |         r1 = *(0x37580);
    0x00036db4 mov r0, r4                                    |         r0 = r4;
    0x00036db8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00036dbc bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00036dc0 add r3, r4, 0x98                              |     r3 = r4 + 0x98;
    0x00036dc4 mov r2, r3                                    |     r2 = r3;
    0x00036dc8 ldr r1, [pc, 0x7b8]                           |     r1 = *(0x37584);
    0x00036dcc ldr r0, [sp, 8]                               |     r0 = fd;
    0x00036dd0 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00036dd4 bl 0x7f10                                     |     ioctl (r0, r1);
    0x00036dd8 ldr r3, [pc, 0x7ac]                           |     
    0x00036ddc add r3, pc, r3                                |     r3 = pc + r3;
    0x00036de0 ldr r3, [r3]                                  |     r3 = "tab";
    0x00036de4 and r3, r3, 0x10                              |     r3 &= 0x10;
    0x00036de8 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x00036dec beq 0x36e44                                   |         
    0x00036df0 ldr r8, [r6]                                  |         r8 = *(r6);
    0x00036df4 cmp r3, 0                                     |         
    0x00036df8 rsb sb, r8, 0                                 |         sb = r8 - ;
                                                             |         if (r3 == 0) {
    0x00036dfc beq 0x3747c                                   |             goto label_12;
                                                             |         }
    0x00036e00 ldr r3, [pc, 0x71c]                           |         r3 = *(0x37520);
    0x00036e04 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00036e08 ldr sl, [r3]                                  |         sl = *(0x37520);
    0x00036e0c bl 0x8204                                     |         getpid ();
    0x00036e10 ldr r3, [pc, 0x778]                           |         r3 = *(0x3758c);
    0x00036e14 ldr r1, [pc, 0x778]                           |         r1 = *(0x37590);
    0x00036e18 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036e1c str r3, [sp]                                  |         *(sp) = r3;
    0x00036e20 ldr r3, [pc, 0x770]                           |         r3 = *(0x37594);
    0x00036e24 add r1, pc, r1                                |         r1 = pc + r1;
    0x00036e28 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036e2c mov r2, r0                                    |         r2 = r0;
    0x00036e30 mov r0, sl                                    |         r0 = sl;
    0x00036e34 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00036e38 ldr r1, [pc, 0x75c]                           |         r1 = *(0x37598);
    0x00036e3c add r1, pc, r1                                |         r1 = pc + r1;
    0x00036e40 b 0x37474                                     |         goto label_13;
                                                             |     }
    0x00036e44 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00036e48 beq 0x36e94                                   |         
    0x00036e4c ldr r3, [pc, 0x6d0]                           |         r3 = *(0x37520);
    0x00036e50 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00036e54 ldr sb, [r3]                                  |         sb = *(0x37520);
    0x00036e58 bl 0x8204                                     |         getpid ();
    0x00036e5c ldr r3, [pc, 0x73c]                           |         r3 = *(0x3759c);
    0x00036e60 ldr r1, [pc, 0x73c]                           |         r1 = *(0x375a0);
    0x00036e64 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036e68 str r3, [sp]                                  |         *(sp) = r3;
    0x00036e6c ldr r3, [pc, 0x734]                           |         r3 = "_";
    0x00036e70 add r1, pc, r1                                |         r1 = pc + r1;
    0x00036e74 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036e78 mov r2, r0                                    |         r2 = r0;
    0x00036e7c mov r0, sb                                    |         r0 = sb;
    0x00036e80 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00036e84 ldr r1, [pc, 0x720]                           |         r1 = *(0x375a8);
    0x00036e88 mov r0, r4                                    |         r0 = r4;
    0x00036e8c add r1, pc, r1                                |         r1 = pc + r1;
    0x00036e90 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00036e94 ldrd r2, r3, [r4, 0xb0]                       |     __asm ("ldrd r2, r3, [r4, 0xb0]");
    0x00036e98 orrs r3, r2, r3                               |     r3 = r2 | r3;
                                                             |     if (r3 == r2) {
    0x00036e9c bne 0x36eac                                   |         
    0x00036ea0 ldrd r2, r3, [r4, 0xb8]                       |         __asm ("ldrd r2, r3, [r4, 0xb8]");
    0x00036ea4 orrs r3, r2, r3                               |         r3 = r2 | r3;
                                                             |         if (r3 == r2) {
    0x00036ea8 beq 0x37034                                   |             goto label_4;
                                                             |         }
                                                             |     }
    0x00036eac add r1, sp, 0x20                              |     r1 += var_20h;
    0x00036eb0 mov r0, r7                                    |     r0 = r7;
    0x00036eb4 bl 0x860c                                     |     r0 = fstat64 ();
    0x00036eb8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00036ebc beq 0x36f30                                   |         goto label_14;
                                                             |     }
    0x00036ec0 ldr r3, [pc, 0x6e8]                           |     
    0x00036ec4 add r3, pc, r3                                |     r3 = pc + r3;
    0x00036ec8 ldr r3, [r3]                                  |     r3 = *(0x375ac);
    0x00036ecc tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x00036ed0 beq 0x36f1c                                   |         goto label_3;
                                                             |     }
    0x00036ed4 ldr r3, [pc, 0x648]                           |     r3 = *(0x37520);
    0x00036ed8 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00036edc ldr sb, [r3]                                  |     sb = *(0x37520);
    0x00036ee0 bl 0x8204                                     |     getpid ();
    0x00036ee4 ldr r3, [pc, 0x6c8]                           |     r3 = *(0x375b0);
    0x00036ee8 ldr r1, [pc, 0x6c8]                           |     r1 = *(0x375b4);
    0x00036eec add r3, pc, r3                                |     r3 = pc + r3;
    0x00036ef0 str r3, [sp]                                  |     *(sp) = r3;
    0x00036ef4 ldr r3, [pc, 0x6c0]                           |     r3 = "_";
    0x00036ef8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00036efc add r3, pc, r3                                |     r3 = pc + r3;
    0x00036f00 mov r2, r0                                    |     r2 = r0;
    0x00036f04 mov r0, sb                                    |     r0 = sb;
    0x00036f08 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00036f0c ldr r1, [pc, 0x6ac]                           |     r1 = *(0x375bc);
    0x00036f10 add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_1:
    0x00036f14 mov r0, r4                                    |     r0 = r4;
    0x00036f18 bl 0x34014                                    |     fcn_00034014 (r0);
                                                             |     do {
                                                             | label_3:
    0x00036f1c ldr sb, [r6]                                  |         sb = *(r6);
    0x00036f20 rsb sb, sb, 0                                 |         sb -= ;
    0x00036f24 cmp sb, 0                                     |         
                                                             |         if (sb != 0) {
    0x00036f28 bne 0x3747c                                   |             goto label_12;
                                                             |         }
    0x00036f2c b 0x37034                                     |         goto label_4;
                                                             | label_14:
    0x00036f30 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00036f34 and r3, r3, 0xf000                            |         r3 &= 0xf000;
    0x00036f38 cmp r3, 0x6000                                |         
                                                             |         if (r3 != fcn.00000004) {
    0x00036f3c bne 0x36fac                                   |             goto label_15;
                                                             |         }
    0x00036f40 add r1, sp, 0x18                              |         r1 += var_18h;
    0x00036f44 mov r0, r7                                    |         r0 = r7;
    0x00036f48 bl 0x292b4                                    |         r0 = fcn_000292b4 (r0, r1);
    0x00036f4c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00036f50 beq 0x36fb4                                   |             goto label_16;
                                                             |         }
    0x00036f54 ldr r3, [pc, 0x668]                           |         
    0x00036f58 add r3, pc, r3                                |         r3 = pc + r3;
    0x00036f5c ldr r3, [r3]                                  |         r3 = *(0x375c0);
    0x00036f60 tst r3, 4                                     |         
    0x00036f64 beq 0x36f1c                                   |         
                                                             |     } while ((r3 & 4) == 0);
    0x00036f68 ldr r3, [pc, 0x5b4]                           |     r3 = *(0x37520);
    0x00036f6c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00036f70 ldr sb, [r3]                                  |     sb = *(0x37520);
    0x00036f74 bl 0x8204                                     |     getpid ();
    0x00036f78 ldr r3, [pc, 0x648]                           |     r3 = *(0x375c4);
    0x00036f7c ldr r1, [pc, 0x648]                           |     r1 = *(0x375c8);
    0x00036f80 add r3, pc, r3                                |     r3 = pc + r3;
    0x00036f84 str r3, [sp]                                  |     *(sp) = r3;
    0x00036f88 ldr r3, [pc, 0x640]                           |     r3 = *(0x375cc);
    0x00036f8c add r1, pc, r1                                |     r1 = pc + r1;
    0x00036f90 add r3, pc, r3                                |     r3 = pc + r3;
    0x00036f94 mov r2, r0                                    |     r2 = r0;
    0x00036f98 mov r0, sb                                    |     r0 = sb;
    0x00036f9c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00036fa0 ldr r1, [pc, 0x62c]                           |     r1 = *(0x375d0);
    0x00036fa4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00036fa8 b 0x36f14                                     |     goto label_1;
                                                             | label_15:
    0x00036fac ldrd r2, r3, [sp, 0x50]                       |     __asm ("ldrd r2, r3, [var_50h]");
    0x00036fb0 strd r2, r3, [sp, 0x18]                       |     __asm ("strd r2, r3, [var_18h]");
                                                             | label_16:
    0x00036fb4 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x00036fb8 mov fp, r3                                    |     
    0x00036fbc orrs r3, r2, r3                               |     r3 = r2 | r3;
    0x00036fc0 mov sl, r2                                    |     sl = r2;
                                                             |     if (r3 != r2) {
    0x00036fc4 beq 0x36fd8                                   |         
    0x00036fc8 ldrd r0, r1, [r4, 0xb0]                       |         __asm ("ldrd r0, r1, [r4, 0xb0]");
    0x00036fcc cmp fp, r1                                    |         
    0x00036fd0 cmpeq sl, r0                                  |         __asm ("cmpeq sl, r0");
                                                             |         if (fp > r1) {
    0x00036fd4 bhi 0x370b8                                   |             goto label_17;
                                                             |         }
                                                             |     }
    0x00036fd8 ldr r3, [pc, 0x5f8]                           |     
    0x00036fdc add r3, pc, r3                                |     r3 = pc + r3;
    0x00036fe0 ldr r3, [r3]                                  |     r3 = *(0x375d4);
    0x00036fe4 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00036fe8 beq 0x37034                                   |         
    0x00036fec ldr r3, [pc, 0x530]                           |         r3 = *(0x37520);
    0x00036ff0 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00036ff4 ldr r6, [r3]                                  |         r6 = *(0x37520);
    0x00036ff8 bl 0x8204                                     |         getpid ();
    0x00036ffc ldr r3, [pc, 0x5d8]                           |         r3 = *(0x375d8);
    0x00037000 ldr r1, [pc, 0x5d8]                           |         r1 = *(0x375dc);
    0x00037004 add r3, pc, r3                                |         r3 = pc + r3;
    0x00037008 str r3, [sp]                                  |         *(sp) = r3;
    0x0003700c ldr r3, [pc, 0x5d0]                           |         r3 = "_";
    0x00037010 add r1, pc, r1                                |         r1 = pc + r1;
    0x00037014 add r3, pc, r3                                |         r3 = pc + r3;
    0x00037018 mov r2, r0                                    |         r2 = r0;
    0x0003701c mov r0, r6                                    |         r0 = r6;
    0x00037020 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00037024 ldr r1, [pc, 0x5bc]                           |         r1 = *(0x375e4);
    0x00037028 mov r0, r4                                    |         r0 = r4;
    0x0003702c add r1, pc, r1                                |         r1 = pc + r1;
    0x00037030 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
                                                             | label_4:
    0x00037034 mov r0, r7                                    |     r0 = r7;
    0x00037038 bl 0x917c                                     |     close (r0);
    0x0003703c mov r2, 0xe8                                  |     r2 = 0xe8;
    0x00037040 mov r1, 0                                     |     r1 = 0;
    0x00037044 add r0, r4, 0x98                              |     r0 = r4 + 0x98;
    0x00037048 bl 0x8b4c                                     |     memset (r0, r1, r2);
    0x0003704c ldrb r3, [r4, 0x90]                           |     r3 = *((r4 + 0x90));
    0x00037050 and r3, r3, 0xfa                              |     r3 &= 0xfa;
    0x00037054 strb r3, [r4, 0x90]                           |     *((r4 + 0x90)) = r3;
    0x00037058 ldr r3, [pc, 0x58c]                           |     r3 = *(0x375e8);
    0x0003705c ldr sb, [pc, r3]                              |     sb = *(0x00037064);
    0x00037060 ands sb, sb, 0x10                             |     sb &= 0x10;
                                                             |     if (sb == sb) {
    0x00037064 beq 0x36bb0                                   |         goto label_2;
                                                             |     }
    0x00037068 ldr r3, [pc, 0x4b4]                           |     r3 = *(0x37520);
    0x0003706c mov sb, 0                                     |     sb = 0;
    0x00037070 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00037074 ldr r5, [r3]                                  |     r5 = *(0x37520);
    0x00037078 bl 0x8204                                     |     getpid ();
    0x0003707c ldr r3, [pc, 0x56c]                           |     r3 = *(0x375ec);
    0x00037080 ldr r1, [pc, 0x56c]                           |     r1 = *(0x375f0);
    0x00037084 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037088 str r3, [sp]                                  |     *(sp) = r3;
    0x0003708c ldr r3, [pc, 0x564]                           |     r3 = "_";
    0x00037090 add r1, pc, r1                                |     r1 = pc + r1;
    0x00037094 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037098 mov r2, r0                                    |     r2 = r0;
    0x0003709c mov r0, r5                                    |     r0 = r5;
    0x000370a0 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000370a4 ldr r1, [pc, 0x550]                           |     r1 = *(0x375f8);
    0x000370a8 mov r0, r4                                    |     r0 = r4;
    0x000370ac add r1, pc, r1                                |     r1 = pc + r1;
    0x000370b0 bl 0x34014                                    |     fcn_00034014 (r0);
    0x000370b4 b 0x36bb0                                     |     goto label_2;
                                                             | label_17:
    0x000370b8 orrs r3, r0, r1                               |     r3 = r0 | r1;
                                                             |     if (r3 != r0) {
    0x000370bc beq 0x370cc                                   |         
    0x000370c0 subs r2, sl, r0                               |         r2 = sl - r0;
    0x000370c4 sbc r3, fp, r1                                |         __asm ("sbc r3, fp, r1");
    0x000370c8 strd r2, r3, [sp, 0x18]                       |         __asm ("strd r2, r3, [var_18h]");
                                                             |     }
    0x000370cc ldrd r0, r1, [r4, 0xb8]                       |     __asm ("ldrd r0, r1, [r4, 0xb8]");
    0x000370d0 orrs r3, r0, r1                               |     r3 = r0 | r1;
                                                             |     if (r3 != r0) {
    0x000370d4 beq 0x370e8                                   |         
    0x000370d8 ldrd r2, r3, [sp, 0x18]                       |         __asm ("ldrd r2, r3, [var_18h]");
    0x000370dc cmp r1, r3                                    |         
    0x000370e0 cmpeq r0, r2                                  |         __asm ("cmpeq r0, r2");
    0x000370e4 strdlo r0, r1, [sp, 0x18]                     |         __asm ("strdlo r0, r1, [sp, 0x18]");
                                                             |     }
    0x000370e8 mov r0, r4                                    |     r0 = r4;
    0x000370ec bl 0x34b70                                    |     r0 = fcn_00034b70 (r0);
    0x000370f0 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x000370f4 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (r3 >= r0) {
    0x000370f8 bge 0x37154                                   |         goto label_18;
                                                             |     }
    0x000370fc ldr r3, [pc, 0x4fc]                           |     
    0x00037100 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037104 ldr r3, [r3]                                  |     r3 = *(0x375fc);
    0x00037108 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x0003710c beq 0x36f1c                                   |         goto label_3;
                                                             |     }
    0x00037110 ldr r3, [pc, 0x40c]                           |     r3 = *(0x37520);
    0x00037114 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00037118 ldr sb, [r3]                                  |     sb = *(0x37520);
    0x0003711c bl 0x8204                                     |     getpid ();
    0x00037120 ldr r3, [pc, 0x4dc]                           |     r3 = *(0x37600);
    0x00037124 ldr r1, [pc, 0x4dc]                           |     r1 = *(0x37604);
    0x00037128 add r3, pc, r3                                |     r3 = pc + r3;
    0x0003712c str r3, [sp]                                  |     *(sp) = r3;
    0x00037130 ldr r3, [pc, 0x4d4]                           |     r3 = *(0x37608);
    0x00037134 add r1, pc, r1                                |     r1 = pc + r1;
    0x00037138 add r3, pc, r3                                |     r3 = pc + r3;
    0x0003713c mov r2, r0                                    |     r2 = r0;
    0x00037140 mov r0, sb                                    |     r0 = sb;
    0x00037144 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00037148 ldr r1, [pc, 0x4c0]                           |     r1 = *(0x3760c);
    0x0003714c add r1, pc, r1                                |     r1 = pc + r1;
    0x00037150 b 0x36f14                                     |     goto label_1;
                                                             | label_18:
    0x00037154 add sb, sp, 0x10                              |     sb += var_10h;
    0x00037158 mov r1, sb                                    |     r1 = sb;
    0x0003715c bl 0x292b4                                    |     r0 = fcn_000292b4 (r0, r1);
    0x00037160 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00037164 beq 0x371c0                                   |         goto label_19;
                                                             |     }
    0x00037168 ldr r3, [pc, 0x4a4]                           |     
    0x0003716c add r3, pc, r3                                |     r3 = pc + r3;
    0x00037170 ldr r3, [r3]                                  |     r3 = *(0x37610);
    0x00037174 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x00037178 beq 0x36f1c                                   |         goto label_3;
                                                             |     }
    0x0003717c ldr r3, [pc, 0x3a0]                           |     r3 = *(0x37520);
    0x00037180 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00037184 ldr sb, [r3]                                  |     sb = *(0x37520);
    0x00037188 bl 0x8204                                     |     getpid ();
    0x0003718c ldr r3, [pc, 0x484]                           |     r3 = *(0x37614);
    0x00037190 ldr r1, [pc, 0x484]                           |     r1 = *(0x37618);
    0x00037194 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037198 str r3, [sp]                                  |     *(sp) = r3;
    0x0003719c ldr r3, [pc, 0x47c]                           |     r3 = "_";
    0x000371a0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000371a4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000371a8 mov r2, r0                                    |     r2 = r0;
    0x000371ac mov r0, sb                                    |     r0 = sb;
    0x000371b0 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000371b4 ldr r1, [pc, 0x468]                           |     r1 = *(0x37620);
    0x000371b8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000371bc b 0x36f14                                     |     goto label_1;
                                                             | label_19:
    0x000371c0 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x000371c4 ldr r0, [pc, 0x45c]                           |     r0 = *(0x37624);
    0x000371c8 mov r1, 0                                     |     r1 = 0;
    0x000371cc and sl, r2, r0                                |     sl = r2 & r0;
    0x000371d0 and fp, r3, r1                                |     
    0x000371d4 mov r2, sl                                    |     r2 = sl;
    0x000371d8 mov r3, fp                                    |     r3 = fp;
    0x000371dc orrs r3, r2, r3                               |     r3 = r2 | r3;
                                                             |     if (r3 != r2) {
    0x000371e0 beq 0x37258                                   |         
    0x000371e4 ldr r3, [pc, 0x440]                           |         
    0x000371e8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000371ec ldr r3, [r3]                                  |         r3 = *(0x37628);
    0x000371f0 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x000371f4 beq 0x37240                                   |             
    0x000371f8 ldr r3, [pc, 0x324]                           |             r3 = *(0x37520);
    0x000371fc ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00037200 ldr sl, [r3]                                  |             sl = *(0x37520);
    0x00037204 bl 0x8204                                     |             getpid ();
    0x00037208 ldr r3, [pc, 0x420]                           |             r3 = *(0x3762c);
    0x0003720c ldr r1, [pc, 0x420]                           |             r1 = *(0x37630);
    0x00037210 add r3, pc, r3                                |             r3 = pc + r3;
    0x00037214 str r3, [sp]                                  |             *(sp) = r3;
    0x00037218 ldr r3, [pc, 0x418]                           |             r3 = *(0x37634);
    0x0003721c add r1, pc, r1                                |             r1 = pc + r1;
    0x00037220 add r3, pc, r3                                |             r3 = pc + r3;
    0x00037224 mov r2, r0                                    |             r2 = r0;
    0x00037228 mov r0, sl                                    |             r0 = sl;
    0x0003722c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00037230 ldr r1, [pc, 0x404]                           |             r1 = *(0x37638);
    0x00037234 mov r0, r4                                    |             r0 = r4;
    0x00037238 add r1, pc, r1                                |             r1 = pc + r1;
    0x0003723c bl 0x34014                                    |             fcn_00034014 (r0);
                                                             |         }
    0x00037240 ldrd r2, r3, [sp, 0x18]                       |         __asm ("ldrd r2, r3, [var_18h]");
    0x00037244 ldr r0, [pc, 0x3f4]                           |         r0 = *(0x3763c);
    0x00037248 mvn r1, 0                                     |         r1 = ~0;
    0x0003724c and sl, r2, r0                                |         sl = r2 & r0;
    0x00037250 and fp, r3, r1                                |         
    0x00037254 strd sl, fp, [sp, 0x18]                       |         __asm ("strd sl, fp, [var_18h]");
                                                             |     }
    0x00037258 ldrd r0, r1, [sp, 0x18]                       |     __asm ("ldrd r0, r1, [var_18h]");
    0x0003725c ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x00037260 cmp r1, r3                                    |     
    0x00037264 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 == r3) {
    0x00037268 beq 0x37034                                   |         goto label_4;
                                                             |     }
    0x0003726c ldr r3, [pc, 0x3d0]                           |     
    0x00037270 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037274 ldr r3, [r3]                                  |     r3 = *(0x37640);
    0x00037278 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x0003727c beq 0x372d4                                   |         
    0x00037280 ldr r3, [pc, 0x29c]                           |         r3 = *(0x37520);
    0x00037284 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00037288 ldr sl, [r3]                                  |         sl = *(0x37520);
    0x0003728c bl 0x8204                                     |         getpid ();
    0x00037290 ldr r3, [pc, 0x3b0]                           |         r3 = *(0x37644);
    0x00037294 ldr r1, [pc, 0x3b0]                           |         r1 = *(0x37648);
    0x00037298 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003729c str r3, [sp]                                  |         *(sp) = r3;
    0x000372a0 ldr r3, [pc, 0x3a8]                           |         r3 = *(0x3764c);
    0x000372a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000372a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000372ac mov r2, r0                                    |         r2 = r0;
    0x000372b0 mov r0, sl                                    |         r0 = sl;
    0x000372b4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000372b8 ldrd r2, r3, [sp, 0x18]                       |         __asm ("ldrd r2, r3, [var_18h]");
    0x000372bc ldr r1, [pc, 0x390]                           |         r1 = *(0x37650);
    0x000372c0 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x000372c4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000372c8 ldrd r2, r3, [sp, 0x10]                       |         __asm ("ldrd r2, r3, [var_10h]");
    0x000372cc mov r0, r4                                    |         r0 = r4;
    0x000372d0 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x000372d4 mov r0, r4                                    |     r0 = r4;
    0x000372d8 bl 0x36954                                    |     r0 = fcn_00036954 (r0);
    0x000372dc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000372e0 beq 0x372fc                                   |         
    0x000372e4 ldr r3, [r6]                                  |         r3 = *(r6);
    0x000372e8 cmp r3, 0x16                                  |         
    0x000372ec cmpne r3, 0x19                                |         __asm ("cmpne r3, 0x19");
                                                             |         if (r3 != 0x16) {
    0x000372f0 moveq r3, 0x22                                |             r3 = 0x22;
                                                             |         }
                                                             |         if (r3 != 0x16) {
    0x000372f4 streq r3, [r6]                                |             *(r6) = r3;
                                                             |         }
    0x000372f8 b 0x36f1c                                     |         goto label_3;
                                                             |     }
    0x000372fc mov r1, sb                                    |     r1 = sb;
    0x00037300 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x00037304 bl 0x292b4                                    |     r0 = fcn_000292b4 (r0, r1);
    0x00037308 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0003730c bne 0x36f1c                                   |         goto label_3;
                                                             |     }
    0x00037310 ldrd r0, r1, [sp, 0x18]                       |     __asm ("ldrd r0, r1, [var_18h]");
    0x00037314 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x00037318 cmp r1, r3                                    |     
    0x0003731c cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 == r3) {
    0x00037320 beq 0x37034                                   |         goto label_4;
                                                             |     }
    0x00037324 mov r3, 0x22                                  |     r3 = 0x22;
    0x00037328 str r3, [r6]                                  |     *(r6) = r3;
    0x0003732c ldr r3, [pc, 0x324]                           |     
    0x00037330 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037334 ldr r3, [r3]                                  |     r3 = *(0x37654);
    0x00037338 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x0003733c beq 0x36f1c                                   |         goto label_3;
                                                             |     }
    0x00037340 ldr r3, [pc, 0x1dc]                           |     r3 = *(0x37520);
    0x00037344 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00037348 ldr sb, [r3]                                  |     sb = *(0x37520);
    0x0003734c bl 0x8204                                     |     getpid ();
    0x00037350 ldr r3, [pc, 0x304]                           |     r3 = *(0x37658);
    0x00037354 ldr r1, [pc, 0x304]                           |     r1 = *(0x3765c);
    0x00037358 add r3, pc, r3                                |     r3 = pc + r3;
    0x0003735c str r3, [sp]                                  |     *(sp) = r3;
    0x00037360 ldr r3, [pc, 0x2fc]                           |     r3 = *(0x37660);
    0x00037364 add r1, pc, r1                                |     r1 = pc + r1;
    0x00037368 add r3, pc, r3                                |     r3 = pc + r3;
    0x0003736c mov r2, r0                                    |     r2 = r0;
    0x00037370 mov r0, sb                                    |     r0 = sb;
    0x00037374 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00037378 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x0003737c ldr r1, [pc, 0x2e4]                           |     r1 = *(0x37664);
    0x00037380 strd r2, r3, [sp]                             |     __asm ("strd r2, r3, [sp]");
    0x00037384 add r1, pc, r1                                |     r1 = pc + r1;
    0x00037388 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x0003738c mov r0, r4                                    |     r0 = r4;
    0x00037390 bl 0x34014                                    |     fcn_00034014 (r0);
    0x00037394 b 0x36f1c                                     |     goto label_3;
                                                             | label_6:
    0x00037398 mvn sb, 0x15                                  |     sb = ~0x15;
    0x0003739c b 0x36bb0                                     |     goto label_2;
                                                             | label_10:
    0x000373a0 ldr r3, [pc, 0x2c4]                           |     
    0x000373a4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000373a8 ldr r3, [r3]                                  |     r3 = *(0x37668);
    0x000373ac tst r3, 0x10                                  |     
                                                             |     if ((r3 & 0x10) != 0) {
    0x000373b0 beq 0x373fc                                   |         
    0x000373b4 ldr r3, [pc, 0x168]                           |         r3 = *(0x37520);
    0x000373b8 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000373bc ldr r8, [r3]                                  |         r8 = *(0x37520);
    0x000373c0 bl 0x8204                                     |         getpid ();
    0x000373c4 ldr r3, [pc, 0x2a4]                           |         r3 = *(0x3766c);
    0x000373c8 ldr r1, [pc, 0x2a4]                           |         r1 = *(0x37670);
    0x000373cc add r3, pc, r3                                |         r3 = pc + r3;
    0x000373d0 str r3, [sp]                                  |         *(sp) = r3;
    0x000373d4 ldr r3, [pc, 0x29c]                           |         r3 = "_";
    0x000373d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000373dc add r3, pc, r3                                |         r3 = pc + r3;
    0x000373e0 mov r2, r0                                    |         r2 = r0;
    0x000373e4 mov r0, r8                                    |         r0 = r8;
    0x000373e8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000373ec ldr r1, [pc, 0x288]                           |         r1 = *(0x37678);
    0x000373f0 mov r0, r4                                    |         r0 = r4;
    0x000373f4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000373f8 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x000373fc mov r2, r7                                    |     r2 = r7;
    0x00037400 mov r1, 0x4c00                                |     r1 = 0x4c00;
    0x00037404 ldr r0, [sp, 8]                               |     r0 = fd;
    0x00037408 bl 0x7f10                                     |     ioctl (r0, r1);
    0x0003740c ldr r3, [pc, 0x26c]                           |     
    0x00037410 add r3, pc, r3                                |     r3 = pc + r3;
    0x00037414 ldr r3, [r3]                                  |     r3 = *(0x3767c);
    0x00037418 and r3, r3, 0x10                              |     r3 &= 0x10;
    0x0003741c cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00037420 bge 0x36d70                                   |         goto label_5;
                                                             |     }
    0x00037424 ldr r8, [r6]                                  |     r8 = *(r6);
    0x00037428 cmp r3, 0                                     |     
    0x0003742c rsb sb, r8, 0                                 |     sb = r8 - ;
                                                             |     if (r3 != 0) {
    0x00037430 beq 0x3747c                                   |         
    0x00037434 ldr r3, [pc, 0xe8]                            |         r3 = *(0x37520);
    0x00037438 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0003743c ldr sl, [r3]                                  |         sl = *(0x37520);
    0x00037440 bl 0x8204                                     |         getpid ();
    0x00037444 ldr r3, [pc, 0x238]                           |         r3 = *(0x37680);
    0x00037448 ldr r1, [pc, 0x238]                           |         r1 = *(0x37684);
    0x0003744c add r3, pc, r3                                |         r3 = pc + r3;
    0x00037450 str r3, [sp]                                  |         *(sp) = r3;
    0x00037454 ldr r3, [pc, 0x230]                           |         r3 = "_";
    0x00037458 add r1, pc, r1                                |         r1 = pc + r1;
    0x0003745c add r3, pc, r3                                |         r3 = pc + r3;
    0x00037460 mov r2, r0                                    |         r2 = r0;
    0x00037464 mov r0, sl                                    |         r0 = sl;
    0x00037468 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0003746c ldr r1, [pc, 0x21c]                           |         r1 = *(0x3768c);
    0x00037470 add r1, pc, r1                                |         r1 = pc + r1;
                                                             | label_13:
    0x00037474 mov r0, r4                                    |         r0 = r4;
    0x00037478 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
                                                             | label_12:
    0x0003747c mov r0, r7                                    |     r0 = r7;
    0x00037480 bl 0x917c                                     |     close (r0);
    0x00037484 ldr r3, [sp, 8]                               |     r3 = fd;
    0x00037488 cmn sb, 0x10                                  |     
    0x0003748c mvn r3, r3                                    |     r3 = ~r3;
    0x00037490 lsr r3, r3, 0x1f                              |     r3 >>= 0x1f;
                                                             |     if (sb != 0x10) {
    0x00037494 moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00037498 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0003749c beq 0x374b0                                   |         
    0x000374a0 mov r2, 0                                     |         r2 = 0;
    0x000374a4 ldr r1, [pc, 0x1e8]                           |         r1 = *(0x37690);
    0x000374a8 ldr r0, [sp, 8]                               |         r0 = fd;
    0x000374ac bl 0x7f10                                     |         ioctl (r0, r1);
                                                             |     }
    0x000374b0 ldr r3, [pc, 0x1e0]                           |     
    0x000374b4 cmp r8, 0                                     |     
    0x000374b8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000374bc ldr r3, [r3]                                  |     r3 = *(0x37694);
                                                             |     if (r8 == 0) {
    0x000374c0 strne r8, [r6]                                |         *(r6) = r8;
                                                             |     }
    0x000374c4 tst r3, 0x10                                  |     
                                                             |     if ((r3 & 0x10) == 0) {
    0x000374c8 beq 0x36bb0                                   |         goto label_2;
                                                             |     }
    0x000374cc ldr r3, [pc, 0x50]                            |     r3 = *(0x37520);
    0x000374d0 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000374d4 ldr r5, [r3]                                  |     r5 = *(0x37520);
    0x000374d8 bl 0x8204                                     |     getpid ();
    0x000374dc ldr r3, [pc, 0x1b8]                           |     r3 = *(0x37698);
    0x000374e0 ldr r1, [pc, 0x1b8]                           |     r1 = *(0x3769c);
    0x000374e4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000374e8 str r3, [sp]                                  |     *(sp) = r3;
    0x000374ec ldr r3, [pc, 0x1b0]                           |     r3 = "_";
    0x000374f0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000374f4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000374f8 mov r2, r0                                    |     r2 = r0;
    0x000374fc mov r0, r5                                    |     r0 = r5;
    0x00037500 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00037504 ldr r1, [pc, 0x19c]                           |     r1 = *(0x376a4);
    0x00037508 mov r2, sb                                    |     r2 = sb;
    0x0003750c add r1, pc, r1                                |     r1 = pc + r1;
    0x00037510 mov r0, r4                                    |     r0 = r4;
    0x00037514 bl 0x34014                                    |     fcn_00034014 (r0);
    0x00037518 b 0x36bb0                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x3791c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0003791c ()                      | void fcn_0003791c (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x0003791c push {r0, r1, r2, r4, r5, lr}     |     
    0x00037920 ldr r4, [pc, 0xf8]                |     r4 = *(0x37a1c);
    0x00037924 mov r5, r0                        |     r5 = r0;
    0x00037928 bl 0x34b70                        |     fcn_00034b70 (r0);
    0x0003792c add r4, pc, r4                    |     r4 = pc + r4;
    0x00037930 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x00037934 mvnlt r3, 0x15                    |         r3 = ~0x15;
                                                 |     }
                                                 |     if (r0 < 0) {
    0x00037938 blt 0x379bc                       |         goto label_0;
                                                 |     }
    0x0003793c mov r2, 0                         |     r2 = 0;
    0x00037940 ldr r1, [pc, 0xdc]                |     r1 = *(0x37a20);
    0x00037944 bl 0x7f10                         |     ioctl (r0, r1);
    0x00037948 ldr r3, [pc, 0xd8]                |     
    0x0003794c add r3, pc, r3                    |     r3 = pc + r3;
    0x00037950 ldr r3, [r3]                      |     r3 = *(0x37a24);
    0x00037954 and r3, r3, 4                     |     r3 &= 4;
    0x00037958 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0003795c bge 0x379c8                       |         goto label_1;
                                                 |     }
    0x00037960 cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x00037964 beq 0x379b0                       |         
    0x00037968 ldr r3, [pc, 0xbc]                |         r3 = *(0x37a28);
    0x0003796c ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x00037970 ldr r4, [r3]                      |         r4 = *(0x37a28);
    0x00037974 bl 0x8204                         |         getpid ();
    0x00037978 ldr r3, [pc, 0xb0]                |         r3 = *(0x37a2c);
    0x0003797c ldr r1, [pc, 0xb0]                |         r1 = *(0x37a30);
    0x00037980 add r3, pc, r3                    |         r3 = pc + r3;
    0x00037984 str r3, [sp]                      |         *(sp) = r3;
    0x00037988 ldr r3, [pc, 0xa8]                |         r3 = *(0x37a34);
    0x0003798c add r1, pc, r1                    |         r1 = pc + r1;
    0x00037990 add r3, pc, r3                    |         r3 = pc + r3;
    0x00037994 mov r2, r0                        |         r2 = r0;
    0x00037998 mov r0, r4                        |         r0 = r4;
    0x0003799c bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x000379a0 ldr r1, [pc, 0x94]                |         r1 = *(0x37a38);
    0x000379a4 mov r0, r5                        |         r0 = r5;
    0x000379a8 add r1, pc, r1                    |         r1 = pc + r1;
    0x000379ac bl 0x34014                        |         r0 = fcn_00034014 (r0);
                                                 |     }
    0x000379b0 bl 0x8f6c                         |     r0 = errno_location ();
    0x000379b4 ldr r3, [r0]                      |     r3 = *(r0);
    0x000379b8 rsb r3, r3, 0                     |     r3 -= ;
                                                 |     do {
                                                 | label_0:
    0x000379bc mov r0, r3                        |         r0 = r3;
    0x000379c0 add sp, sp, 0xc                   |         
    0x000379c4 pop {r4, r5, pc}                  |         
                                                 | label_1:
    0x000379c8 cmp r3, 0                         |         
    0x000379cc beq 0x379bc                       |         
                                                 |     } while (r3 == 0);
    0x000379d0 ldr r3, [pc, 0x54]                |     r3 = *(0x37a28);
    0x000379d4 ldr r3, [r4, r3]                  |     r3 = *((r4 + r3));
    0x000379d8 ldr r4, [r3]                      |     r4 = *(0x37a28);
    0x000379dc bl 0x8204                         |     getpid ();
    0x000379e0 ldr r3, [pc, 0x58]                |     r3 = *(0x37a3c);
    0x000379e4 ldr r1, [pc, 0x58]                |     r1 = *(0x37a40);
    0x000379e8 add r3, pc, r3                    |     r3 = pc + r3;
    0x000379ec str r3, [sp]                      |     *(sp) = r3;
    0x000379f0 ldr r3, [pc, 0x50]                |     r3 = *(0x37a44);
    0x000379f4 add r1, pc, r1                    |     r1 = pc + r1;
    0x000379f8 add r3, pc, r3                    |     r3 = pc + r3;
    0x000379fc mov r2, r0                        |     r2 = r0;
    0x00037a00 mov r0, r4                        |     r0 = r4;
    0x00037a04 bl 0x8798                         |     fprintf (r0, r1, r2, r3)
    0x00037a08 ldr r1, [pc, 0x3c]                |     r1 = *(0x37a48);
    0x00037a0c mov r0, r5                        |     r0 = r5;
    0x00037a10 add r1, pc, r1                    |     r1 = pc + r1;
    0x00037a14 bl 0x34014                        |     fcn_00034014 (r0);
    0x00037a18 mov r3, 0                         |     r3 = 0;
    0x00037a1c b 0x379bc                         |     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/lib/libmount.so.1.1.0 @ 0x37c48 */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.00037c48 ()                  | void fcn_00037c48 (int32_t arg1) {
                                             |     int32_t var_0h;
                                             |     char * s;
                                             |     int32_t var_1ch;
                                             |     r0 = arg1;
    0x00037c48 ldr r3, [pc, 0x2c0]           |     
    0x00037c4c push {r4, r5, r6, r7, lr}     |     
    0x00037c50 ldr r6, [pc, 0x2bc]           |     r6 = *(0x37f10);
    0x00037c54 add r3, pc, r3                |     r3 = pc + r3;
    0x00037c58 ldr r3, [r3]                  |     r3 = *(0x37f0c);
    0x00037c5c add r6, pc, r6                |     r6 = pc + r6;
    0x00037c60 tst r3, 4                     |     
    0x00037c64 sub sp, sp, 0x1c              |     
    0x00037c68 mov r4, r0                    |     r4 = r0;
                                             |     if ((r3 & 4) != 0) {
    0x00037c6c beq 0x37cb8                   |         
    0x00037c70 ldr r3, [pc, 0x2a0]           |         r3 = *(0x37f14);
    0x00037c74 ldr r3, [r6, r3]              |         r3 = *((r6 + r3));
    0x00037c78 ldr r5, [r3]                  |         r5 = *(0x37f14);
    0x00037c7c bl 0x8204                     |         getpid ();
    0x00037c80 ldr r3, [pc, 0x294]           |         r3 = *(0x37f18);
    0x00037c84 ldr r1, [pc, 0x294]           |         r1 = *(0x37f1c);
    0x00037c88 add r3, pc, r3                |         r3 = pc + r3;
    0x00037c8c str r3, [sp]                  |         *(sp) = r3;
    0x00037c90 ldr r3, [pc, 0x28c]           |         r3 = "_";
    0x00037c94 add r1, pc, r1                |         r1 = pc + r1;
    0x00037c98 add r3, pc, r3                |         r3 = pc + r3;
    0x00037c9c mov r2, r0                    |         r2 = r0;
    0x00037ca0 mov r0, r5                    |         r0 = r5;
    0x00037ca4 bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x00037ca8 ldr r1, [pc, 0x278]           |         r1 = *(0x37f24);
    0x00037cac mov r0, r4                    |         r0 = r4;
    0x00037cb0 add r1, pc, r1                |         r1 = pc + r1;
    0x00037cb4 bl 0x34014                    |         fcn_00034014 (r0);
                                             |     }
    0x00037cb8 ldr r3, [r4, 0x8c]            |     r3 = *((r4 + 0x8c));
    0x00037cbc tst r3, 0x100                 |     
    0x00037cc0 bne 0x37dac                   |     
                                             |     while (r5 < 0) {
    0x00037cc4 ldr r3, [pc, 0x260]           |         
    0x00037cc8 add r3, pc, r3                |         r3 = pc + r3;
    0x00037ccc ldr r3, [r3]                  |         r3 = *(0x37f28);
    0x00037cd0 tst r3, 4                     |         
                                             |         if ((r3 & 4) != 0) {
    0x00037cd4 beq 0x37d20                   |             
    0x00037cd8 ldr r3, [pc, 0x238]           |             r3 = *(0x37f14);
    0x00037cdc ldr r3, [r6, r3]              |             r3 = *((r6 + r3));
    0x00037ce0 ldr r5, [r3]                  |             r5 = *(0x37f14);
    0x00037ce4 bl 0x8204                     |             getpid ();
    0x00037ce8 ldr r3, [pc, 0x240]           |             r3 = *(0x37f2c);
    0x00037cec ldr r1, [pc, 0x240]           |             r1 = *(0x37f30);
    0x00037cf0 add r3, pc, r3                |             r3 = pc + r3;
    0x00037cf4 str r3, [sp]                  |             *(sp) = r3;
    0x00037cf8 ldr r3, [pc, 0x238]           |             r3 = "_";
    0x00037cfc add r1, pc, r1                |             r1 = pc + r1;
    0x00037d00 add r3, pc, r3                |             r3 = pc + r3;
    0x00037d04 mov r2, r0                    |             r2 = r0;
    0x00037d08 mov r0, r5                    |             r0 = r5;
    0x00037d0c bl 0x8798                     |             fprintf (r0, r1, r2, r3)
    0x00037d10 ldr r1, [pc, 0x224]           |             r1 = *(0x37f38);
    0x00037d14 mov r0, r4                    |             r0 = r4;
    0x00037d18 add r1, pc, r1                |             r1 = pc + r1;
    0x00037d1c bl 0x34014                    |             fcn_00034014 (r0);
                                             |         }
                                             | label_0:
    0x00037d20 mov r1, 1                     |         r1 = 1;
    0x00037d24 mov r0, r4                    |         r0 = r4;
    0x00037d28 bl 0x34c84                    |         r0 = fcn_00034c84 (r0, r1);
    0x00037d2c subs r5, r0, 0                |         r5 = r0 - 0;
                                             |         if (r5 != r0) {
    0x00037d30 bne 0x37ef8                   |             goto label_1;
                                             |         }
    0x00037d34 mov r0, r4                    |         r0 = r4;
    0x00037d38 bl 0x3590c                    |         r0 = fcn_0003590c (r0);
    0x00037d3c mov r5, r0                    |         r5 = r0;
    0x00037d40 mov r0, r4                    |         r0 = r4;
    0x00037d44 bl 0x34dac                    |         fcn_00034dac (r0);
    0x00037d48 ldr r3, [pc, 0x1f0]           |         
    0x00037d4c add r3, pc, r3                |         r3 = pc + r3;
    0x00037d50 ldr r3, [r3]                  |         r3 = *(0x37f3c);
    0x00037d54 tst r3, 4                     |         
                                             |         if ((r3 & 4) == 0) {
    0x00037d58 beq 0x37ef8                   |             goto label_1;
                                             |         }
    0x00037d5c ldr r3, [pc, 0x1b4]           |         r3 = *(0x37f14);
    0x00037d60 ldr r3, [r6, r3]              |         r3 = *((r6 + r3));
    0x00037d64 ldr r6, [r3]                  |         r6 = *(0x37f14);
    0x00037d68 bl 0x8204                     |         getpid ();
    0x00037d6c ldr r3, [pc, 0x1d0]           |         r3 = *(0x37f40);
    0x00037d70 ldr r1, [pc, 0x1d0]           |         r1 = *(0x37f44);
    0x00037d74 add r3, pc, r3                |         r3 = pc + r3;
    0x00037d78 str r3, [sp]                  |         *(sp) = r3;
    0x00037d7c ldr r3, [pc, 0x1c8]           |         r3 = "_";
    0x00037d80 add r1, pc, r1                |         r1 = pc + r1;
    0x00037d84 add r3, pc, r3                |         r3 = pc + r3;
    0x00037d88 mov r2, r0                    |         r2 = r0;
    0x00037d8c mov r0, r6                    |         r0 = r6;
    0x00037d90 bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x00037d94 ldr r1, [pc, 0x1b4]           |         r1 = *(0x37f4c);
    0x00037d98 mov r2, r5                    |         r2 = r5;
    0x00037d9c add r1, pc, r1                |         r1 = pc + r1;
    0x00037da0 mov r0, r4                    |         r0 = r4;
    0x00037da4 bl 0x34014                    |         fcn_00034014 (r0);
    0x00037da8 b 0x37ef8                     |         goto label_1;
    0x00037dac ldr r3, [pc, 0x1a0]           |         
    0x00037db0 add r3, pc, r3                |         r3 = pc + r3;
    0x00037db4 ldr r3, [r3]                  |         r3 = *(0x37f50);
    0x00037db8 tst r3, 4                     |         
                                             |         if ((r3 & 4) != 0) {
    0x00037dbc beq 0x37e08                   |             
    0x00037dc0 ldr r3, [pc, 0x150]           |             r3 = *(0x37f14);
    0x00037dc4 ldr r3, [r6, r3]              |             r3 = *((r6 + r3));
    0x00037dc8 ldr r5, [r3]                  |             r5 = *(0x37f14);
    0x00037dcc bl 0x8204                     |             getpid ();
    0x00037dd0 ldr r3, [pc, 0x180]           |             r3 = *(0x37f54);
    0x00037dd4 ldr r1, [pc, 0x180]           |             r1 = *(0x37f58);
    0x00037dd8 add r3, pc, r3                |             r3 = pc + r3;
    0x00037ddc str r3, [sp]                  |             *(sp) = r3;
    0x00037de0 ldr r3, [pc, 0x178]           |             r3 = *(0x37f5c);
    0x00037de4 add r1, pc, r1                |             r1 = pc + r1;
    0x00037de8 add r3, pc, r3                |             r3 = pc + r3;
    0x00037dec mov r2, r0                    |             r2 = r0;
    0x00037df0 mov r0, r5                    |             r0 = r5;
    0x00037df4 bl 0x8798                     |             fprintf (r0, r1, r2, r3)
    0x00037df8 ldr r1, [pc, 0x164]           |             r1 = *(0x37f60);
    0x00037dfc mov r0, r4                    |             r0 = r4;
    0x00037e00 add r1, pc, r1                |             r1 = pc + r1;
    0x00037e04 bl 0x34014                    |             fcn_00034014 (r0);
                                             |         }
    0x00037e08 ldr r0, [pc, 0x158]           |         r0 = *(0x37f64);
    0x00037e0c ldr r1, [pc, 0x158]           |         r1 = *(0x37f68);
    0x00037e10 add r0, pc, r0                |         r0 = pc + r0;
    0x00037e14 bl 0x8ba0                     |         r0 = open64 ();
    0x00037e18 subs r7, r0, 0                |         r7 = r0 - 0;
                                             |         if (r7 >= r0) {
    0x00037e1c mvnlt r5, 0                   |             r5 = ~0;
                                             |         }
                                             |         if (r7 >= r0) {
    0x00037e20 blt 0x37e60                   |             
    0x00037e24 ldr r1, [pc, 0x144]           |             r1 = *(0x37f6c);
    0x00037e28 bl 0x7f10                     |             r0 = ioctl (r0, r1);
    0x00037e2c subs r5, r0, 0                |             r5 = r0 - 0;
                                             |             if (r5 < r0) {
    0x00037e30 blt 0x37e60                   |                 goto label_2;
                                             |             }
    0x00037e34 ldr r2, [pc, 0x138]           |             r2 = "date_is_ready";
    0x00037e38 mov r3, r5                    |             r3 = r5;
    0x00037e3c add r5, sp, 8                 |             r5 += s;
    0x00037e40 add r2, pc, r2                |             r2 = pc + r2;
    0x00037e44 mov r1, 0x10                  |             r1 = 0x10;
    0x00037e48 mov r0, r5                    |             r0 = r5;
    0x00037e4c bl 0x809c                     |             snprintf (r0, r1, r2, r3);
    0x00037e50 mov r1, r5                    |             r1 = r5;
    0x00037e54 mov r0, r4                    |             r0 = r4;
    0x00037e58 bl 0x35334                    |             r0 = fcn_00035334 (r0, r1);
    0x00037e5c mov r5, r0                    |             r5 = r0;
                                             |         }
                                             | label_2:
    0x00037e60 ldrb r3, [r4, 0x90]           |         r3 = *((r4 + 0x90));
    0x00037e64 cmp r7, 0                     |         
    0x00037e68 cmpge r5, 0                   |         __asm ("cmpge r5, 0");
                                             |         if (r7 != 0) {
    0x00037e6c moveq r2, 1                   |             r2 = 1;
                                             |         }
                                             |         if (r7 == 0) {
    0x00037e70 movne r2, 0                   |             r2 = 0;
                                             |         }
    0x00037e74 bic r3, r3, 8                 |         r3 = BIT_MASK (r3, 8);
    0x00037e78 orr r3, r3, r2, lsl 3         |         r3 |= (r2 << 3);
    0x00037e7c cmp r7, 0                     |         
    0x00037e80 strb r3, [r4, 0x90]           |         *((r4 + 0x90)) = r3;
                                             |         if (r7 >= 0) {
    0x00037e84 blt 0x37e90                   |             
    0x00037e88 mov r0, r7                    |             r0 = r7;
    0x00037e8c bl 0x917c                     |             close (r0);
                                             |         }
    0x00037e90 ldr r3, [pc, 0xe0]            |         
    0x00037e94 add r3, pc, r3                |         r3 = pc + r3;
    0x00037e98 ldr r3, [r3]                  |         r3 = *(0x37f74);
    0x00037e9c tst r3, 4                     |         
                                             |         if ((r3 & 4) == 0) {
    0x00037ea0 beq 0x37f04                   |             goto label_3;
                                             |         }
    0x00037ea4 ldr r3, [pc, 0x6c]            |         r3 = *(0x37f14);
    0x00037ea8 ldr r3, [r6, r3]              |         r3 = *((r6 + r3));
    0x00037eac ldr r7, [r3]                  |         r7 = *(0x37f14);
    0x00037eb0 bl 0x8204                     |         getpid ();
    0x00037eb4 ldr r3, [pc, 0xc0]            |         r3 = *(0x37f78);
    0x00037eb8 ldr r1, [pc, 0xc0]            |         r1 = *(0x37f7c);
    0x00037ebc add r3, pc, r3                |         r3 = pc + r3;
    0x00037ec0 str r3, [sp]                  |         *(sp) = r3;
    0x00037ec4 ldr r3, [pc, 0xb8]            |         r3 = *(0x37f80);
    0x00037ec8 add r1, pc, r1                |         r1 = pc + r1;
    0x00037ecc add r3, pc, r3                |         r3 = pc + r3;
    0x00037ed0 mov r2, r0                    |         r2 = r0;
    0x00037ed4 mov r0, r7                    |         r0 = r7;
    0x00037ed8 bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x00037edc ldr r1, [pc, 0xa4]            |         r1 = *(0x37f84);
    0x00037ee0 mov r2, r5                    |         r2 = r5;
    0x00037ee4 add r1, pc, r1                |         r1 = pc + r1;
    0x00037ee8 mov r0, r4                    |         r0 = r4;
    0x00037eec bl 0x34014                    |         fcn_00034014 (r0);
    0x00037ef0 cmp r5, 0                     |         
    0x00037ef4 blt 0x37cc4                   |         
                                             |     }
                                             |     do {
                                             | label_1:
    0x00037ef8 mov r0, r5                    |         r0 = r5;
    0x00037efc add sp, sp, 0x1c              |         
    0x00037f00 pop {r4, r5, r6, r7, pc}      |         
                                             | label_3:
    0x00037f04 cmp r5, 0                     |         
    0x00037f08 bge 0x37ef8                   |         
                                             |     } while (r5 >= 0);
    0x00037f0c b 0x37d20                     |     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/lib/libmount.so.1.1.0 @ 0x38204 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00038204 ()                                  | void fcn_00038204 (int32_t arg_c8h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_18h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_20h_2;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_28h_2;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_30h_2;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_a4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00038204 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00038208 ldr r5, [pc, 0x434]                           |     r5 = *(0x38640);
    0x0003820c subs r8, r1, 0                                |     r8 = r1 - 0;
    0x00038210 add r5, pc, r5                                |     r5 = pc + r5;
    0x00038214 sub sp, sp, 0xa4                              |     
                                                             |     if (r8 != r1) {
    0x00038218 mvneq r6, 0x15                                |         r6 = ~0x15;
                                                             |     }
                                                             |     if (r8 == r1) {
    0x0003821c beq 0x38574                                   |         goto label_5;
                                                             |     }
    0x00038220 strd r2, r3, [sp, 0x18]                       |     __asm ("strd r2, r3, [var_18h]");
    0x00038224 ldr r3, [pc, 0x41c]                           |     
    0x00038228 mov r4, r0                                    |     r4 = r0;
    0x0003822c add r3, pc, r3                                |     r3 = pc + r3;
    0x00038230 ldr r3, [r3]                                  |     r3 = *(0x38644);
    0x00038234 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00038238 beq 0x38284                                   |         
    0x0003823c ldr r3, [pc, 0x408]                           |         r3 = *(0x38648);
    0x00038240 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00038244 ldr r6, [r3]                                  |         r6 = *(0x38648);
    0x00038248 bl 0x8204                                     |         getpid ();
    0x0003824c ldr r3, [pc, 0x3fc]                           |         r3 = *(0x3864c);
    0x00038250 ldr r1, [pc, 0x3fc]                           |         r1 = *(0x38650);
    0x00038254 add r3, pc, r3                                |         r3 = pc + r3;
    0x00038258 str r3, [sp]                                  |         *(sp) = r3;
    0x0003825c ldr r3, [pc, 0x3f4]                           |         r3 = "trtok";
    0x00038260 add r1, pc, r1                                |         r1 = pc + r1;
    0x00038264 add r3, pc, r3                                |         r3 = pc + r3;
    0x00038268 mov r2, r0                                    |         r2 = r0;
    0x0003826c mov r0, r6                                    |         r0 = r6;
    0x00038270 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00038274 ldr r1, [pc, 0x3e0]                           |         r1 = *(0x38658);
    0x00038278 mov r0, r4                                    |         r0 = r4;
    0x0003827c add r1, pc, r1                                |         r1 = pc + r1;
    0x00038280 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00038284 add fp, sp, 0x38                              |     
    0x00038288 mov r1, fp                                    |     r1 = fp;
    0x0003828c mov r0, r8                                    |     r0 = r8;
    0x00038290 bl 0x8060                                     |     stat64 ();
    0x00038294 mov r1, 2                                     |     r1 = 2;
    0x00038298 mov r7, r0                                    |     r7 = r0;
    0x0003829c mov r0, r4                                    |     r0 = r4;
    0x000382a0 bl 0x34c84                                    |     r0 = fcn_00034c84 (r0, r1);
    0x000382a4 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x000382a8 bne 0x38574                                   |         goto label_5;
                                                             |     }
    0x000382ac ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x000382b0 ldr sb, [pc, 0x3a8]                           |     sb = *(0x3865c);
    0x000382b4 ldrd r0, r1, [sp, 0xc8]                       |     __asm ("ldrd r0, r1, [arg_c8h]");
    0x000382b8 ldr sl, [pc, 0x3a4]                           |     sl = *(0x38660);
    0x000382bc cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x000382c0 movne fp, 0                                   |         
                                                             |     }
    0x000382c4 adds r2, r2, r0                               |     r2 += r0;
    0x000382c8 adc r3, r3, r1                                |     __asm ("adc r3, r3, r1");
    0x000382cc add sb, pc, sb                                |     sb = pc + sb;
    0x000382d0 add sl, pc, sl                                |     sl = pc + sl;
    0x000382d4 strd r2, r3, [sp, 0x20]                       |     __asm ("strd r2, r3, [var_20h]");
                                                             |     do {
                                                             | label_1:
    0x000382d8 mov r0, r4                                    |         r0 = r4;
    0x000382dc bl 0x3590c                                    |         r0 = fcn_0003590c (r0);
    0x000382e0 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 != r0) {
    0x000382e4 bne 0x383f4                                   |             goto label_6;
                                                             |         }
    0x000382e8 ldrd r2, r3, [sp, 0xc8]                       |         __asm ("ldrd r2, r3, [arg_c8h]");
    0x000382ec str r6, [sp, 0x10]                            |         var_10h = r6;
    0x000382f0 strd r2, r3, [sp, 8]                          |         __asm ("strd r2, r3, [var_8h]");
    0x000382f4 ldrd r2, r3, [sp, 0x18]                       |         __asm ("ldrd r2, r3, [var_18h]");
    0x000382f8 mov r1, fp                                    |         r1 = fp;
    0x000382fc strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x00038300 mov r0, r4                                    |         r0 = r4;
    0x00038304 mov r2, r8                                    |         r2 = r8;
    0x00038308 bl 0x362fc                                    |         r0 = fcn_000362fc (r0, r1, r2, r3, r4);
    0x0003830c subs r6, r0, 0                                |         r6 = r0 - 0;
    0x00038310 beq 0x382d8                                   |         
                                                             |     } while (r6 == r0);
                                                             |     if (r6 < r0) {
    0x00038314 blt 0x383f4                                   |         goto label_6;
                                                             |     }
    0x00038318 ldr r3, [sb]                                  |     r3 = *(sb);
    0x0003831c tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00038320 beq 0x38378                                   |         
    0x00038324 ldr r3, [pc, 0x320]                           |         r3 = *(0x38648);
    0x00038328 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0003832c ldr r6, [r3]                                  |         r6 = *(0x38648);
    0x00038330 bl 0x8204                                     |         getpid ();
    0x00038334 ldr r3, [pc, 0x32c]                           |         r3 = *(0x38664);
    0x00038338 ldr r1, [pc, 0x32c]                           |         r1 = *(0x38668);
    0x0003833c add r3, pc, r3                                |         r3 = pc + r3;
    0x00038340 add r1, pc, r1                                |         r1 = pc + r1;
    0x00038344 str r3, [sp]                                  |         *(sp) = r3;
    0x00038348 mov r3, sl                                    |         r3 = sl;
    0x0003834c mov r2, r0                                    |         r2 = r0;
    0x00038350 mov r0, r6                                    |         r0 = r6;
    0x00038354 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00038358 mov r0, r4                                    |         r0 = r4;
    0x0003835c bl 0x34b58                                    |         fcn_00034b58 (r0);
    0x00038360 ldr r1, [pc, 0x308]                           |         r1 = "cs";
    0x00038364 mov r3, r8                                    |         r3 = r8;
    0x00038368 add r1, pc, r1                                |         r1 = pc + r1;
    0x0003836c mov r2, r0                                    |         r2 = r0;
    0x00038370 mov r0, r4                                    |         r0 = r4;
    0x00038374 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x00038378 add r1, sp, 0x30                              |     r1 += var_30h;
    0x0003837c mov r0, r4                                    |     r0 = r4;
    0x00038380 bl 0x3522c                                    |     r0 = fcn_0003522c (r0, r1);
    0x00038384 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00038388 beq 0x38400                                   |         goto label_7;
                                                             |     }
    0x0003838c ldr r3, [pc, 0x2e0]                           |     
    0x00038390 add r3, pc, r3                                |     r3 = pc + r3;
    0x00038394 ldr r3, [r3]                                  |     r3 = *(0x38670);
    0x00038398 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x0003839c beq 0x383f4                                   |         goto label_6;
                                                             |     }
    0x000383a0 ldr r3, [pc, 0x2a4]                           |     r3 = *(0x38648);
    0x000383a4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000383a8 ldr r7, [r3]                                  |     r7 = *(0x38648);
    0x000383ac bl 0x8204                                     |     getpid ();
    0x000383b0 ldr r3, [pc, 0x2c0]                           |     r3 = *(0x38674);
    0x000383b4 ldr r1, [pc, 0x2c0]                           |     r1 = *(0x38678);
    0x000383b8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000383bc str r3, [sp]                                  |     *(sp) = r3;
    0x000383c0 ldr r3, [pc, 0x2b8]                           |     r3 = "it";
    0x000383c4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000383c8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000383cc mov r2, r0                                    |     r2 = r0;
    0x000383d0 mov r0, r7                                    |     r0 = r7;
    0x000383d4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000383d8 mov r0, r4                                    |     r0 = r4;
    0x000383dc bl 0x34b58                                    |     fcn_00034b58 (r0);
    0x000383e0 ldr r1, [pc, 0x29c]                           |     r1 = *(0x38680);
    0x000383e4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000383e8 mov r2, r0                                    |     r2 = r0;
                                                             | label_0:
    0x000383ec mov r0, r4                                    |     r0 = r4;
    0x000383f0 bl 0x34014                                    |     fcn_00034014 (r0);
                                                             |     do {
                                                             | label_6:
    0x000383f4 cmp r6, 1                                     |         
                                                             |         if (r6 != 1) {
    0x000383f8 moveq r6, 0                                   |             r6 = 0;
                                                             |         }
    0x000383fc b 0x3850c                                     |         goto label_2;
                                                             | label_7:
    0x00038400 add r1, sp, 0x28                              |         r1 += var_28h;
    0x00038404 mov r0, r4                                    |         r0 = r4;
    0x00038408 bl 0x35d04                                    |         r0 = fcn_00035d04 (r0, r1);
    0x0003840c subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x00038410 beq 0x38478                                   |             goto label_8;
                                                             |         }
    0x00038414 ldr r3, [pc, 0x26c]                           |         
    0x00038418 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003841c ldr r3, [r3]                                  |         r3 = *(0x38684);
    0x00038420 tst r3, 4                                     |         
    0x00038424 beq 0x383f4                                   |         
                                                             |     } while ((r3 & 4) == 0);
    0x00038428 ldr r3, [pc, 0x21c]                           |     r3 = *(0x38648);
    0x0003842c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00038430 ldr r7, [r3]                                  |     r7 = *(0x38648);
    0x00038434 bl 0x8204                                     |     getpid ();
    0x00038438 ldr r3, [pc, 0x24c]                           |     r3 = *(0x38688);
    0x0003843c ldr r1, [pc, 0x24c]                           |     r1 = "_";
    0x00038440 add r3, pc, r3                                |     r3 = pc + r3;
    0x00038444 str r3, [sp]                                  |     *(sp) = r3;
    0x00038448 ldr r3, [pc, 0x244]                           |     r3 = "onitor_enable_userspace";
    0x0003844c add r1, pc, r1                                |     r1 = pc + r1;
    0x00038450 add r3, pc, r3                                |     r3 = pc + r3;
    0x00038454 mov r2, r0                                    |     r2 = r0;
    0x00038458 mov r0, r7                                    |     r0 = r7;
    0x0003845c bl 0x8798                                     |     fprintf (r0, "_", r2, r3)
    0x00038460 mov r0, r4                                    |     r0 = r4;
    0x00038464 bl 0x34b58                                    |     fcn_00034b58 (r0);
    0x00038468 ldr r1, [pc, 0x228]                           |     r1 = *(0x38694);
    0x0003846c add r1, pc, r1                                |     r1 = pc + r1;
    0x00038470 mov r2, r0                                    |     r2 = r0;
    0x00038474 b 0x383ec                                     |     goto label_0;
                                                             | label_8:
    0x00038478 ldrd r6, r7, [sp, 0x28]                       |     __asm ("ldrd r6, r7, [var_28h]");
    0x0003847c ldrd r2, r3, [sp, 0xc8]                       |     __asm ("ldrd r2, r3, [arg_c8h]");
    0x00038480 cmp r7, r3                                    |     
    0x00038484 cmpeq r6, r2                                  |     __asm ("cmpeq r6, r2");
                                                             |     if (r7 == r3) {
    0x00038488 bne 0x38580                                   |         
    0x0003848c ldrd r0, r1, [sp, 0x30]                       |         __asm ("ldrd r0, r1, [var_30h]");
    0x00038490 ldrd r2, r3, [sp, 0x18]                       |         __asm ("ldrd r2, r3, [var_18h]");
    0x00038494 cmp r1, r3                                    |         
    0x00038498 cmpeq r0, r2                                  |         __asm ("cmpeq r0, r2");
                                                             |         if (r1 != r3) {
    0x0003849c bne 0x38634                                   |             goto label_9;
                                                             |         }
    0x000384a0 ldr r3, [pc, 0x1f4]                           |         
    0x000384a4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000384a8 ldr r3, [r3]                                  |         r3 = mnt_fs_get_parent_id;
    0x000384ac tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x000384b0 beq 0x38508                                   |             
    0x000384b4 ldr r3, [pc, 0x190]                           |             r3 = *(0x38648);
    0x000384b8 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x000384bc ldr r6, [r3]                                  |             r6 = *(0x38648);
    0x000384c0 bl 0x8204                                     |             getpid ();
    0x000384c4 ldr r3, [pc, 0x1d4]                           |             r3 = *(0x3869c);
    0x000384c8 ldr r1, [pc, 0x1d4]                           |             r1 = "_";
    0x000384cc add r3, pc, r3                                |             r3 = pc + r3;
    0x000384d0 str r3, [sp]                                  |             *(sp) = r3;
    0x000384d4 ldr r3, [pc, 0x1cc]                           |             r3 = "unt";
    0x000384d8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000384dc add r3, pc, r3                                |             r3 = pc + r3;
    0x000384e0 mov r2, r0                                    |             r2 = r0;
    0x000384e4 mov r0, r6                                    |             r0 = r6;
    0x000384e8 bl 0x8798                                     |             fprintf (r0, "_", r2, r3)
    0x000384ec mov r0, r4                                    |             r0 = r4;
    0x000384f0 bl 0x34b58                                    |             fcn_00034b58 (r0);
    0x000384f4 ldr r1, [pc, 0x1b0]                           |             r1 = *(0x386a8);
    0x000384f8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000384fc mov r2, r0                                    |             r2 = r0;
    0x00038500 mov r0, r4                                    |             r0 = r4;
    0x00038504 bl 0x34014                                    |             fcn_00034014 (r0);
                                                             |         }
    0x00038508 mov r6, 2                                     |         r6 = 2;
                                                             | label_2:
    0x0003850c mov r0, r4                                    |         r0 = r4;
    0x00038510 bl 0x34dac                                    |         fcn_00034dac (r0);
    0x00038514 ldr r3, [pc, 0x194]                           |         
    0x00038518 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003851c ldr r3, [r3]                                  |         r3 = *(0x386ac);
    0x00038520 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x00038524 beq 0x38574                                   |             
    0x00038528 ldr r3, [pc, 0x11c]                           |             r3 = *(0x38648);
    0x0003852c ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00038530 ldr r5, [r3]                                  |             r5 = *(0x38648);
    0x00038534 bl 0x8204                                     |             getpid ();
    0x00038538 ldr r3, [pc, 0x174]                           |             r3 = *(0x386b0);
    0x0003853c ldr r1, [pc, 0x174]                           |             r1 = "_";
    0x00038540 add r3, pc, r3                                |             r3 = pc + r3;
    0x00038544 str r3, [sp]                                  |             *(sp) = r3;
    0x00038548 ldr r3, [pc, 0x16c]                           |             r3 = "unt_fs";
    0x0003854c add r1, pc, r1                                |             r1 = pc + r1;
    0x00038550 add r3, pc, r3                                |             r3 = pc + r3;
    0x00038554 mov r2, r0                                    |             r2 = r0;
    0x00038558 mov r0, r5                                    |             r0 = r5;
    0x0003855c bl 0x8798                                     |             fprintf (r0, "_", r2, r3)
    0x00038560 ldr r1, [pc, 0x158]                           |             r1 = *(0x386bc);
    0x00038564 mov r2, r6                                    |             r2 = r6;
    0x00038568 add r1, pc, r1                                |             r1 = pc + r1;
    0x0003856c mov r0, r4                                    |             r0 = r4;
    0x00038570 bl 0x34014                                    |             fcn_00034014 (r0);
                                                             |         }
                                                             | label_5:
    0x00038574 mov r0, r6                                    |         r0 = r6;
    0x00038578 add sp, sp, 0xa4                              |         
    0x0003857c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00038580 orrs r3, r6, r7                               |     r3 = r6 | r7;
                                                             |     if (r3 == r6) {
    0x00038584 beq 0x385a4                                   |         goto label_10;
                                                             |     }
                                                             | label_3:
    0x00038588 ldrd r2, r3, [sp, 0x30]                       |     __asm ("ldrd r2, r3, [var_30h]");
    0x0003858c adds r0, r2, r6                               |     r0 = r2 + r6;
    0x00038590 adc r1, r3, r7                                |     __asm ("adc r1, r3, r7");
    0x00038594 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x00038598 cmp r1, r3                                    |     
    0x0003859c cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 < r3) {
    0x000385a0 bls 0x382d8                                   |         goto label_1;
                                                             |     }
                                                             | label_10:
    0x000385a4 ldrd r2, r3, [sp, 0xc8]                       |     __asm ("ldrd r2, r3, [arg_c8h]");
    0x000385a8 orrs r3, r2, r3                               |     r3 = r2 | r3;
                                                             |     if (r3 == r2) {
    0x000385ac beq 0x385c4                                   |         goto label_4;
                                                             |     }
    0x000385b0 ldrd r2, r3, [sp, 0x30]                       |     __asm ("ldrd r2, r3, [var_30h]");
    0x000385b4 ldrd r0, r1, [sp, 0x20]                       |     __asm ("ldrd r0, r1, [var_20h]");
    0x000385b8 cmp r1, r3                                    |     
    0x000385bc cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 < r3) {
    0x000385c0 bls 0x382d8                                   |         goto label_1;
                                                             |     }
                                                             | label_4:
    0x000385c4 ldr r3, [pc, 0xf8]                            |     
    0x000385c8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000385cc ldr r3, [r3]                                  |     r3 = *(0x386c0);
    0x000385d0 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x000385d4 beq 0x3862c                                   |         
    0x000385d8 ldr r3, [pc, 0x6c]                            |         r3 = *(0x38648);
    0x000385dc ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000385e0 ldr r6, [r3]                                  |         r6 = *(0x38648);
    0x000385e4 bl 0x8204                                     |         getpid ();
    0x000385e8 ldr r3, [pc, 0xd8]                            |         r3 = *(0x386c4);
    0x000385ec ldr r1, [pc, 0xd8]                            |         r1 = "_";
    0x000385f0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000385f4 str r3, [sp]                                  |         *(sp) = r3;
    0x000385f8 ldr r3, [pc, 0xd0]                            |         r3 = "d_known_fstype";
    0x000385fc add r1, pc, r1                                |         r1 = pc + r1;
    0x00038600 add r3, pc, r3                                |         r3 = pc + r3;
    0x00038604 mov r2, r0                                    |         r2 = r0;
    0x00038608 mov r0, r6                                    |         r0 = r6;
    0x0003860c bl 0x8798                                     |         fprintf (r0, "_", r2, r3)
    0x00038610 mov r0, r4                                    |         r0 = r4;
    0x00038614 bl 0x34b58                                    |         fcn_00034b58 (r0);
    0x00038618 ldr r1, [pc, 0xb4]                            |         r1 = *(0x386d0);
    0x0003861c add r1, pc, r1                                |         r1 = pc + r1;
    0x00038620 mov r2, r0                                    |         r2 = r0;
    0x00038624 mov r0, r4                                    |         r0 = r4;
    0x00038628 bl 0x34014                                    |         fcn_00034014 (r0);
                                                             |     }
    0x0003862c mov r6, 1                                     |     r6 = 1;
    0x00038630 b 0x3850c                                     |     goto label_2;
                                                             | label_9:
    0x00038634 ldrd r2, r3, [sp, 0xc8]                       |     __asm ("ldrd r2, r3, [arg_c8h]");
    0x00038638 orrs r3, r2, r3                               |     r3 = r2 | r3;
                                                             |     if (r3 != r2) {
    0x0003863c bne 0x38588                                   |         goto label_3;
                                                             |     }
    0x00038640 b 0x385c4                                     |     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/lib/libmount.so.1.1.0 @ 0x391c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000391c4 ()                  | void fcn_000391c4 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x000391c4 push {r1, r2, r3}             |     
    0x000391c8 ldr r3, [pc, 0xa4]            |     r3 = *(0x39270);
    0x000391cc push {r0, r1, r2, r4, lr}     |     
    0x000391d0 ldr r1, [pc, 0xa0]            |     r1 = *(0x39274);
    0x000391d4 add r3, pc, r3                |     r3 = pc + r3;
    0x000391d8 subs r2, r0, 0                |     r2 = r0 - 0;
    0x000391dc ldr r4, [r3, r1]              |     r4 = *(0x39270);
                                             |     if (r2 != r0) {
    0x000391e0 beq 0x39208                   |         
    0x000391e4 ldr r3, [pc, 0x90]            |         
    0x000391e8 add r3, pc, r3                |         r3 = pc + r3;
    0x000391ec ldr r3, [r3]                  |         r3 = *(0x39278);
    0x000391f0 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x000391f4 bne 0x39208                   |             goto label_1;
                                             |         }
    0x000391f8 ldr r1, [pc, 0x80]            |         r1 = *(0x3927c);
    0x000391fc ldr r0, [r4]                  |         r0 = *(r4);
    0x00039200 add r1, pc, r1                |         r1 = pc + r1;
    0x00039204 bl 0x8798                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x00039208 add r2, sp, 0x18              |     r2 += var_18h;
    0x0003920c ldr r1, [sp, 0x14]            |     r1 = format;
    0x00039210 ldr r0, [r4]                  |     r0 = *(r4);
    0x00039214 str r2, [sp, 4]               |     var_4h = r2;
    0x00039218 bl 0x91a0                     |     vfprintf (r0, r1, r2)
    0x0003921c ldr r1, [r4]                  |     r1 = *(r4);
    0x00039220 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00039224 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00039228 beq 0x39268                   |         goto label_2;
                                             |     }
    0x0003922c ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x00039230 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00039234 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00039238 bhs 0x3925c                   |         goto label_3;
                                             |     }
    0x0003923c add r2, r3, 1                 |     r2 = r3 + 1;
    0x00039240 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00039244 mov r2, 0xa                   |     r2 = 0xa;
    0x00039248 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x0003924c add sp, sp, 0xc               |         
    0x00039250 pop {r4, lr}                  |         
    0x00039254 add sp, sp, 0xc               |         
    0x00039258 bx lr                         |         return;
                                             | label_3:
    0x0003925c mov r0, 0xa                   |         r0 = 0xa;
    0x00039260 bl 0x91dc                     |         fputc_unlocked ();
    0x00039264 b 0x3924c                     |         
                                             |     } while (1);
                                             | label_2:
    0x00039268 mov r0, 0xa                   |     r0 = 0xa;
    0x0003926c bl 0x8ea0                     |     fputc (r0, r1);
    0x00039270 b 0x3924c                     |     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/lib/libmount.so.1.1.0 @ 0x395c8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000395c8 ()                      | void fcn_000395c8 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x000395c8 push {r0, r1, r2, r4, r5, lr}     |     
    0x000395cc ldr r2, [pc, 0xcc]                |     r2 = *(0x3969c);
    0x000395d0 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x000395d4 add r2, pc, r2                    |     r2 = pc + r2;
                                                 |     if (r4 != r0) {
    0x000395d8 beq 0x39698                       |         
    0x000395dc ldr r3, [r4, 8]                   |         r3 = *((r4 + 8));
    0x000395e0 sub r3, r3, 1                     |         r3--;
    0x000395e4 cmp r3, 0                         |         
    0x000395e8 str r3, [r4, 8]                   |         *((r4 + 8)) = r3;
                                                 |         if (r3 > 0) {
    0x000395ec bgt 0x39698                       |             goto label_0;
                                                 |         }
    0x000395f0 ldr r3, [pc, 0xac]                |         
    0x000395f4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000395f8 ldr r3, [r3]                      |         r3 = *(0x396a0);
    0x000395fc tst r3, 4                         |         
                                                 |         if ((r3 & 4) != 0) {
    0x00039600 beq 0x3964c                       |             
    0x00039604 ldr r3, [pc, 0x9c]                |             r3 = *(0x396a4);
    0x00039608 ldr r3, [r2, r3]                  |             r3 = *((r2 + r3));
    0x0003960c ldr r5, [r3]                      |             r5 = *(0x396a4);
    0x00039610 bl 0x8204                         |             getpid ();
    0x00039614 ldr r3, [pc, 0x90]                |             r3 = *(0x396a8);
    0x00039618 ldr r1, [pc, 0x90]                |             r1 = "ld";
    0x0003961c add r3, pc, r3                    |             r3 = pc + r3;
    0x00039620 str r3, [sp]                      |             *(sp) = r3;
    0x00039624 ldr r3, [pc, 0x88]                |             r3 = "igdelset";
    0x00039628 add r1, pc, r1                    |             r1 = pc + r1;
    0x0003962c add r3, pc, r3                    |             r3 = pc + r3;
    0x00039630 mov r2, r0                        |             r2 = r0;
    0x00039634 mov r0, r5                        |             r0 = r5;
    0x00039638 bl 0x8798                         |             fprintf (r0, "ld", r2, r3)
    0x0003963c ldr r1, [pc, 0x74]                |             r1 = *(0x396b4);
    0x00039640 mov r0, r4                        |             r0 = r4;
    0x00039644 add r1, pc, r1                    |             r1 = pc + r1;
    0x00039648 bl 0x391c4                        |             fcn_000391c4 (r0);
                                                 |         }
    0x0003964c add r3, r4, 0x1000                |         r3 = r4 + 0x1000;
    0x00039650 ldr r2, [r3, 0x10]                |         r2 = *((r3 + 0x10));
    0x00039654 cmp r2, 0                         |         
                                                 |         if (r2 != 0) {
    0x00039658 beq 0x39668                       |             
    0x0003965c ldr r3, [r3, 0x14]                |             r3 = *((r3 + 0x14));
    0x00039660 mov r0, r4                        |             r0 = r4;
    0x00039664 blx r3                            |             uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
                                                 |         }
    0x00039668 ldr r0, [r4]                      |         r0 = *(r4);
    0x0003966c cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x00039670 blt 0x39678                       |             
    0x00039674 bl 0x917c                         |             close (r0);
                                                 |         }
    0x00039678 ldr r0, [r4, 4]                   |         r0 = *((r4 + 4));
    0x0003967c bl 0x91c4                         |         free (r0);
    0x00039680 ldr r0, [r4, 0xc]                 |         r0 = *((r4 + 0xc));
    0x00039684 bl 0x91c4                         |         free (r0);
    0x00039688 mov r0, r4                        |         r0 = r4;
    0x0003968c add sp, sp, 0xc                   |         
    0x00039690 pop {r4, r5, lr}                  |         
    0x00039694 b 0x91c4                          |         void (*0x91c4)() ();
                                                 |     }
                                                 | label_0:
    0x00039698 add sp, sp, 0xc                   |     
    0x0003969c pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x396bc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000396bc ()                              | void fcn_000396bc () {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_20h;
                                                         |     int32_t var_24h;
    0x000396bc push {r0, r1, r2, r3}                     |     
    0x000396c0 push {r0, r1, r2, r3, r4, r5, r6, lr}     |     
    0x000396c4 ldr r1, [pc, 0xd4]                        |     r1 = *(0x3979c);
    0x000396c8 mov r0, 1                                 |     r0 = 1;
    0x000396cc ldr r5, [sp, 0x20]                        |     r5 = var_20h;
    0x000396d0 bl 0x86e4                                 |     calloc (r0, r1);
    0x000396d4 ldr r6, [pc, 0xc8]                        |     r6 = *(0x397a0);
    0x000396d8 add r6, pc, r6                            |     r6 = pc + r6;
    0x000396dc subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 != r0) {
    0x000396e0 beq 0x3978c                               |         
    0x000396e4 ldr r3, [pc, 0xbc]                        |         
    0x000396e8 add r3, pc, r3                            |         r3 = pc + r3;
    0x000396ec ldr r3, [r3]                              |         r3 = *(0x397a4);
    0x000396f0 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x000396f4 beq 0x39740                               |             
    0x000396f8 ldr r3, [pc, 0xac]                        |             r3 = *(0x397a8);
    0x000396fc ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x00039700 ldr r6, [r3]                              |             r6 = *(0x397a8);
    0x00039704 bl 0x8204                                 |             getpid ();
    0x00039708 ldr r3, [pc, 0xa0]                        |             r3 = *(0x397ac);
    0x0003970c ldr r1, [pc, 0xa0]                        |             r1 = "ed";
    0x00039710 add r3, pc, r3                            |             r3 = pc + r3;
    0x00039714 str r3, [sp]                              |             *(sp) = r3;
    0x00039718 ldr r3, [pc, 0x98]                        |             r3 = "ry_version";
    0x0003971c add r1, pc, r1                            |             r1 = pc + r1;
    0x00039720 add r3, pc, r3                            |             r3 = pc + r3;
    0x00039724 mov r2, r0                                |             r2 = r0;
    0x00039728 mov r0, r6                                |             r0 = r6;
    0x0003972c bl 0x8798                                 |             fprintf (r0, "ed", r2, r3)
    0x00039730 ldr r1, [pc, 0x84]                        |             r1 = *(0x397b8);
    0x00039734 mov r0, r4                                |             r0 = r4;
    0x00039738 add r1, pc, r1                            |             r1 = pc + r1;
    0x0003973c bl 0x391c4                                |             fcn_000391c4 (r0);
                                                         |         }
    0x00039740 mov r3, 1                                 |         r3 = 1;
    0x00039744 str r3, [r4, 8]                           |         *((r4 + 8)) = r3;
    0x00039748 cmp r5, 0                                 |         
    0x0003974c mvn r3, 0                                 |         r3 = ~0;
    0x00039750 str r3, [r4]                              |         *(r4) = r3;
                                                         |         if (r5 == 0) {
    0x00039754 beq 0x3978c                               |             goto label_0;
                                                         |         }
    0x00039758 add r2, sp, 0x24                          |         r2 += var_24h;
    0x0003975c mov r1, r5                                |         r1 = r5;
    0x00039760 add r0, r4, 4                             |         r0 = r4 + 4;
    0x00039764 str r2, [sp, 0xc]                         |         var_ch = r2;
    0x00039768 bl 0x9110                                 |         r0 = vasprintf ();
    0x0003976c cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00039770 blt 0x39780                               |             
    0x00039774 ldr r3, [r4, 4]                           |             r3 = *((r4 + 4));
    0x00039778 cmp r3, 0                                 |             
                                                         |             if (r3 != 0) {
    0x0003977c bne 0x3978c                               |                 goto label_0;
                                                         |             }
                                                         |         }
    0x00039780 mov r0, r4                                |         r0 = r4;
    0x00039784 bl 0x395c8                                |         fcn_000395c8 (r0);
    0x00039788 mov r4, 0                                 |         r4 = 0;
                                                         |     }
                                                         | label_0:
    0x0003978c mov r0, r4                                |     r0 = r4;
    0x00039790 add sp, sp, 0x10                          |     
    0x00039794 pop {r4, r5, r6, lr}                      |     
    0x00039798 add sp, sp, 0x10                          |     
    0x0003979c bx lr                                     |     return;
                                                         | }
    ; 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/lib/libmount.so.1.1.0 @ 0x397c0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000397c0 ()                      | void fcn_000397c0 (int32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000397c0 ldr r3, [r0]                      |     r3 = *(r0);
    0x000397c4 push {r0, r1, r4, r5, r6, lr}     |     
    0x000397c8 ldr r6, [pc, 0xc4]                |     r6 = *(0x39890);
    0x000397cc cmp r3, 0                         |     
    0x000397d0 add r6, pc, r6                    |     r6 = pc + r6;
                                                 |     if (r3 >= 0) {
    0x000397d4 blt 0x397f8                       |         
    0x000397d8 ldr r3, [pc, 0xb8]                |         r3 = *(0x39894);
    0x000397dc ldr r1, [pc, 0xb8]                |         r1 = *(0x39898);
    0x000397e0 ldr r0, [pc, 0xb8]                |         r0 = *(0x3989c);
    0x000397e4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000397e8 mov r2, 0x6d                      |         r2 = 0x6d;
    0x000397ec add r1, pc, r1                    |         r1 = pc + r1;
    0x000397f0 add r0, pc, r0                    |         r0 = pc + r0;
    0x000397f4 bl 0x908c                         |         assert ();
                                                 |     }
    0x000397f8 cmp r1, 0                         |     
    0x000397fc mov r5, r0                        |     r5 = r0;
                                                 |     if (r1 != 0) {
    0x00039800 beq 0x3981c                       |         
    0x00039804 mov r0, r1                        |         r0 = r1;
    0x00039808 bl 0x8ae0                         |         r0 = strdup (r0);
    0x0003980c subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x00039810 bne 0x39820                       |             
    0x00039814 mvn r0, 0xb                       |             r0 = ~0xb;
    0x00039818 b 0x3988c                         |             
                                                 |         } else {
    0x0003981c mov r4, r1                        |             r4 = r1;
                                                 |         }
    0x00039820 ldr r0, [r5, 0xc]                 |         r0 = *((r5 + 0xc));
    0x00039824 bl 0x91c4                         |         free (r0);
    0x00039828 ldr r3, [pc, 0x74]                |         r3 = *(0x398a0);
    0x0003982c str r4, [r5, 0xc]                 |         *((r5 + 0xc)) = r4;
    0x00039830 ldr r0, [pc, r3]                  |         r0 = *(0x00039838);
    0x00039834 ands r0, r0, 4                    |         r0 &= 4;
                                                 |         if (r0 == r0) {
    0x00039838 beq 0x3988c                       |             goto label_0;
                                                 |         }
    0x0003983c ldr r3, [pc, 0x64]                |         r3 = *(0x398a4);
    0x00039840 ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x00039844 ldr r6, [r3]                      |         r6 = *(0x398a4);
    0x00039848 bl 0x8204                         |         getpid ();
    0x0003984c ldr r3, [pc, 0x58]                |         r3 = *(0x398a8);
    0x00039850 ldr r1, [pc, 0x58]                |         r1 = "ation_short_name";
    0x00039854 add r3, pc, r3                    |         r3 = pc + r3;
    0x00039858 str r3, [sp]                      |         *(sp) = r3;
    0x0003985c ldr r3, [pc, 0x50]                |         r3 = *(0x398b0);
    0x00039860 add r1, pc, r1                    |         r1 = pc + r1;
    0x00039864 add r3, pc, r3                    |         r3 = pc + r3;
    0x00039868 mov r2, r0                        |         r2 = r0;
    0x0003986c mov r0, r6                        |         r0 = r6;
    0x00039870 bl 0x8798                         |         fprintf (r0, "ation_short_name", r2, r3)
    0x00039874 ldr r1, [pc, 0x3c]                |         r1 = *(0x398b4);
    0x00039878 mov r0, r5                        |         r0 = r5;
    0x0003987c mov r2, r4                        |         r2 = r4;
    0x00039880 add r1, pc, r1                    |         r1 = pc + r1;
    0x00039884 bl 0x391c4                        |         fcn_000391c4 (r0);
    0x00039888 mov r0, 0                         |         r0 = 0;
                                                 |     }
                                                 | label_0:
    0x0003988c add sp, sp, 8                     |     
    0x00039890 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/lib/libmount.so.1.1.0 @ 0x398c8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000398c8 ()                      | void fcn_000398c8 (int32_t arg1, char * arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000398c8 push {r0, r1, r4, r5, r6, lr}     |     
    0x000398cc ldr r5, [pc, 0xb4]                |     r5 = *(0x39984);
    0x000398d0 mov r6, r0                        |     r6 = r0;
    0x000398d4 subs r0, r1, 0                    |     r0 = r1 - 0;
    0x000398d8 add r5, pc, r5                    |     r5 = pc + r5;
                                                 |     if (r0 != r1) {
    0x000398dc beq 0x398f4                       |         
    0x000398e0 bl 0x8ae0                         |         r0 = strdup (r0);
    0x000398e4 subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x000398e8 bne 0x398f8                       |             
    0x000398ec mvn r0, 0xb                       |             r0 = ~0xb;
    0x000398f0 b 0x39980                         |             
                                                 |         } else {
    0x000398f4 mov r4, r0                        |             r4 = r0;
                                                 |         }
    0x000398f8 ldr r0, [r6]                      |         r0 = *(r6);
    0x000398fc cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x00039900 blt 0x39910                       |             
    0x00039904 bl 0x917c                         |             close (r0);
    0x00039908 mvn r3, 0                         |             r3 = ~0;
    0x0003990c str r3, [r6]                      |             *(r6) = r3;
                                                 |         }
    0x00039910 ldr r0, [r6, 4]                   |         r0 = *((r6 + 4));
    0x00039914 bl 0x91c4                         |         free (r0);
    0x00039918 ldr r3, [pc, 0x6c]                |         
    0x0003991c str r4, [r6, 4]                   |         *((r6 + 4)) = r4;
    0x00039920 add r3, pc, r3                    |         r3 = pc + r3;
    0x00039924 ldr r3, [r3]                      |         r3 = *(0x39988);
    0x00039928 ands r0, r3, 4                    |         r0 = r3 & 4;
                                                 |         if (r0 == r3) {
    0x0003992c beq 0x39980                       |             goto label_0;
                                                 |         }
    0x00039930 ldr r3, [pc, 0x58]                |         r3 = *(0x3998c);
    0x00039934 ldr r3, [r5, r3]                  |         r3 = *((r5 + r3));
    0x00039938 ldr r5, [r3]                      |         r5 = *(0x3998c);
    0x0003993c bl 0x8204                         |         getpid ();
    0x00039940 ldr r3, [pc, 0x4c]                |         r3 = *(0x39990);
    0x00039944 ldr r1, [pc, 0x4c]                |         r1 = "name";
    0x00039948 add r3, pc, r3                    |         r3 = pc + r3;
    0x0003994c str r3, [sp]                      |         *(sp) = r3;
    0x00039950 ldr r3, [pc, 0x44]                |         r3 = "ype";
    0x00039954 add r1, pc, r1                    |         r1 = pc + r1;
    0x00039958 add r3, pc, r3                    |         r3 = pc + r3;
    0x0003995c mov r2, r0                        |         r2 = r0;
    0x00039960 mov r0, r5                        |         r0 = r5;
    0x00039964 bl 0x8798                         |         fprintf (r0, "name", r2, r3)
    0x00039968 ldr r1, [pc, 0x30]                |         r1 = *(0x3999c);
    0x0003996c mov r0, r6                        |         r0 = r6;
    0x00039970 mov r2, r4                        |         r2 = r4;
    0x00039974 add r1, pc, r1                    |         r1 = pc + r1;
    0x00039978 bl 0x391c4                        |         fcn_000391c4 (r0);
    0x0003997c mov r0, 0                         |         r0 = 0;
                                                 |     }
                                                 | label_0:
    0x00039980 add sp, sp, 8                     |     
    0x00039984 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/lib/libmount.so.1.1.0 @ 0x399b0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000399b0 ()                      | void fcn_000399b0 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000399b0 add ip, r0, 0x1000                |     
    0x000399b4 push {r0, r1, r2, r4, r5, lr}     |     
    0x000399b8 ldr r3, [pc, 0x74]                |     r3 = *(0x39a30);
    0x000399bc str r2, [ip, 0x14]                |     *((ip + 0x14)) = r2;
    0x000399c0 ldr r2, [pc, 0x70]                |     
    0x000399c4 add r3, pc, r3                    |     r3 = pc + r3;
    0x000399c8 add r2, pc, r2                    |     r2 = pc + r2;
    0x000399cc ldr r2, [r2]                      |     r2 = *(0x39a34);
    0x000399d0 str r1, [ip, 0x10]                |     *((ip + 0x10)) = r1;
    0x000399d4 tst r2, 4                         |     
                                                 |     if ((r2 & 4) != 0) {
    0x000399d8 beq 0x39a28                       |         
    0x000399dc ldr r2, [pc, 0x58]                |         r2 = *(0x39a38);
    0x000399e0 mov r4, r0                        |         r4 = r0;
    0x000399e4 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x000399e8 ldr r5, [r3]                      |         r5 = *(r3);
    0x000399ec bl 0x8204                         |         getpid ();
    0x000399f0 ldr r3, [pc, 0x48]                |         r3 = *(0x39a3c);
    0x000399f4 ldr r1, [pc, 0x48]                |         r1 = "m_file";
    0x000399f8 add r3, pc, r3                    |         r3 = pc + r3;
    0x000399fc str r3, [sp]                      |         *(sp) = r3;
    0x00039a00 ldr r3, [pc, 0x40]                |         r3 = "tributes";
    0x00039a04 add r1, pc, r1                    |         r1 = pc + r1;
    0x00039a08 add r3, pc, r3                    |         r3 = pc + r3;
    0x00039a0c mov r2, r0                        |         r2 = r0;
    0x00039a10 mov r0, r5                        |         r0 = r5;
    0x00039a14 bl 0x8798                         |         fprintf (r0, "m_file", r2, r3)
    0x00039a18 ldr r1, [pc, 0x2c]                |         r1 = *(0x39a48);
    0x00039a1c mov r0, r4                        |         r0 = r4;
    0x00039a20 add r1, pc, r1                    |         r1 = pc + r1;
    0x00039a24 bl 0x391c4                        |         fcn_000391c4 (r0);
                                                 |     }
    0x00039a28 mov r0, 0                         |     r0 = 0;
    0x00039a2c add sp, sp, 0xc                   |     
    0x00039a30 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x39a70 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00039a70 ()                          | void fcn_00039a70 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
    0x00039a70 push {r0, r1, r4, r5, r6, lr}         |     
    0x00039a74 ldr r6, [pc, 0x100]                   |     r6 = *(0x39b78);
    0x00039a78 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x00039a7c add r6, pc, r6                        |     r6 = pc + r6;
                                                     |     if (r4 != r0) {
    0x00039a80 bne 0x39aa8                           |         goto label_0;
                                                     |     }
    0x00039a84 ldr r3, [pc, 0xf4]                    |     
    0x00039a88 ldr r1, [pc, 0xf4]                    |     r1 = *(0x39b80);
    0x00039a8c ldr r0, [pc, 0xf4]                    |     r0 = *(0x39b84);
    0x00039a90 add r3, pc, r3                        |     r3 = pc + r3;
    0x00039a94 add r3, r3, 0x13                      |     r3 = 0x39b8f;
    0x00039a98 mov r2, 0xc8                          |     r2 = 0xc8;
    0x00039a9c add r1, pc, r1                        |     r1 = pc + r1;
    0x00039aa0 add r0, pc, r0                        |     r0 = pc + r0;
                                                     |     do {
    0x00039aa4 bl 0x908c                             |         assert ();
                                                     | label_0:
    0x00039aa8 ldr r3, [r4, 4]                       |         r3 = *((r4 + 4));
    0x00039aac cmp r3, 0                             |         
                                                     |         if (r3 != 0) {
    0x00039ab0 bne 0x39ad8                           |             goto label_1;
                                                     |         }
    0x00039ab4 ldr r3, [pc, 0xd0]                    |         
    0x00039ab8 ldr r1, [pc, 0xd0]                    |         r1 = *(0x39b8c);
    0x00039abc ldr r0, [pc, 0xd0]                    |         r0 = *(0x39b90);
    0x00039ac0 add r3, pc, r3                        |         r3 = pc + r3;
    0x00039ac4 add r3, r3, 0x13                      |         r3 = 0x39b9b;
    0x00039ac8 mov r2, 0xc9                          |         r2 = 0xc9;
    0x00039acc add r1, pc, r1                        |         r1 = pc + r1;
    0x00039ad0 add r0, pc, r0                        |         r0 = pc + r0;
    0x00039ad4 b 0x39aa4                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x00039ad8 ldr r3, [r4]                          |     r3 = *(r4);
    0x00039adc cmp r3, 0                             |     
                                                     |     if (r3 >= 0) {
    0x00039ae0 bge 0x39b74                           |         goto label_2;
                                                     |     }
    0x00039ae4 bl 0x39310                            |     r0 = fcn_00039310 (r0);
    0x00039ae8 subs r5, r0, 0                        |     r5 = r0 - 0;
                                                     |     if (r5 != r0) {
    0x00039aec bne 0x39b04                           |         goto label_3;
                                                     |     }
    0x00039af0 bl 0x8f6c                             |     r0 = errno_location ();
    0x00039af4 ldr r0, [r0]                          |     r0 = *(r0);
    0x00039af8 rsb r0, r0, 0                         |     r0 -= ;
                                                     |     do {
    0x00039afc add sp, sp, 8                         |         
    0x00039b00 pop {r4, r5, r6, pc}                  |         
                                                     | label_3:
    0x00039b04 ldr r3, [pc, 0x8c]                    |         
    0x00039b08 add r3, pc, r3                        |         r3 = pc + r3;
    0x00039b0c ldr r3, [r3]                          |         r3 = *(0x39b94);
    0x00039b10 tst r3, 4                             |         
                                                     |         if ((r3 & 4) != 0) {
    0x00039b14 beq 0x39b64                           |             
    0x00039b18 ldr r3, [pc, 0x7c]                    |             r3 = *(0x39b98);
    0x00039b1c ldr r3, [r6, r3]                      |             r3 = *((r6 + r3));
    0x00039b20 ldr r6, [r3]                          |             r6 = *(0x39b98);
    0x00039b24 bl 0x8204                             |             getpid ();
    0x00039b28 ldr r3, [pc, 0x70]                    |             r3 = *(0x39b9c);
    0x00039b2c ldr r1, [pc, 0x70]                    |             r1 = "no";
    0x00039b30 add r3, pc, r3                        |             r3 = pc + r3;
    0x00039b34 str r3, [sp]                          |             *(sp) = r3;
    0x00039b38 ldr r3, [pc, 0x68]                    |             r3 = "d_option";
    0x00039b3c add r1, pc, r1                        |             r1 = pc + r1;
    0x00039b40 add r3, pc, r3                        |             r3 = pc + r3;
    0x00039b44 mov r2, r0                            |             r2 = r0;
    0x00039b48 mov r0, r6                            |             r0 = r6;
    0x00039b4c bl 0x8798                             |             fprintf (r0, "no", r2, r3)
    0x00039b50 ldr r1, [pc, 0x54]                    |             r1 = *(0x39ba8);
    0x00039b54 mov r2, r5                            |             r2 = r5;
    0x00039b58 add r1, pc, r1                        |             r1 = pc + r1;
    0x00039b5c mov r0, r4                            |             r0 = r4;
    0x00039b60 bl 0x391c4                            |             fcn_000391c4 (r0);
                                                     |         }
    0x00039b64 mov r1, 0x80000                       |         r1 = 0x80000;
    0x00039b68 mov r0, r5                            |         r0 = r5;
    0x00039b6c bl 0x8ba0                             |         open64 ();
    0x00039b70 str r0, [r4]                          |         *(r4) = r0;
                                                     | label_2:
    0x00039b74 ldr r0, [r4]                          |         r0 = *(r4);
    0x00039b78 b 0x39afc                             |         
                                                     |     } 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/lib/libmount.so.1.1.0 @ 0x39cb8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.00039cb8 ()                                          | void fcn_00039cb8 (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_10h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x00039cb8 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}         |     
    0x00039cbc ldr r8, [pc, 0xf4]                                    |     r8 = *(0x39db4);
    0x00039cc0 mov r6, r0                                            |     r6 = r0;
    0x00039cc4 mov r7, r1                                            |     r7 = r1;
    0x00039cc8 mov r5, r2                                            |     r5 = r2;
    0x00039ccc bl 0x39a70                                            |     fcn_00039a70 (r0);
    0x00039cd0 add r8, pc, r8                                        |     r8 = pc + r8;
    0x00039cd4 cmp r0, 0                                             |     
    0x00039cd8 mov r4, r0                                            |     r4 = r0;
    0x00039cdc str r0, [sp, 0xc]                                     |     var_ch = r0;
                                                                     |     if (r0 >= 0) {
    0x00039ce0 blt 0x39dac                                           |         
    0x00039ce4 ldr r3, [pc, 0xd0]                                    |         
    0x00039ce8 add r3, pc, r3                                        |         r3 = pc + r3;
    0x00039cec ldr r3, [r3]                                          |         r3 = *(0x39db8);
    0x00039cf0 tst r3, 4                                             |         
                                                                     |         if ((r3 & 4) != 0) {
    0x00039cf4 beq 0x39d44                                           |             
    0x00039cf8 ldr r3, [pc, 0xc0]                                    |             r3 = *(0x39dbc);
    0x00039cfc ldr r3, [r8, r3]                                      |             r3 = *((r8 + r3));
    0x00039d00 ldr r4, [r3]                                          |             r4 = *(0x39dbc);
    0x00039d04 bl 0x8204                                             |             getpid ();
    0x00039d08 ldr r3, [pc, 0xb4]                                    |             r3 = *(0x39dc0);
    0x00039d0c ldr r1, [pc, 0xb4]                                    |             r1 = "ng_comment";
    0x00039d10 add r3, pc, r3                                        |             r3 = pc + r3;
    0x00039d14 str r3, [sp]                                          |             *(sp) = r3;
    0x00039d18 ldr r3, [pc, 0xac]                                    |             r3 = "pec";
    0x00039d1c add r1, pc, r1                                        |             r1 = pc + r1;
    0x00039d20 add r3, pc, r3                                        |             r3 = pc + r3;
    0x00039d24 mov r2, r0                                            |             r2 = r0;
    0x00039d28 mov r0, r4                                            |             r0 = r4;
    0x00039d2c bl 0x8798                                             |             fprintf (r0, "ng_comment", r2, r3)
    0x00039d30 ldr r1, [pc, 0x98]                                    |             r1 = *(0x39dcc);
    0x00039d34 mov r2, r5                                            |             r2 = r5;
    0x00039d38 add r1, pc, r1                                        |             r1 = pc + r1;
    0x00039d3c mov r0, r6                                            |             r0 = r6;
    0x00039d40 bl 0x391c4                                            |             fcn_000391c4 (r0);
                                                                     |         }
    0x00039d44 mov r3, 0                                             |         r3 = 0;
    0x00039d48 mov r2, r7                                            |         r2 = r7;
    0x00039d4c mov r1, r5                                            |         r1 = r5;
    0x00039d50 ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
    0x00039d54 bl 0x80b4                                             |         r0 = faccessat ();
    0x00039d58 subs r4, r0, 0                                        |         r4 = r0 - 0;
                                                                     |         if (r4 == r0) {
    0x00039d5c beq 0x39dac                                           |             goto label_0;
                                                                     |         }
    0x00039d60 bl 0x8f6c                                             |         r0 = errno_location ();
    0x00039d64 ldr r3, [r0]                                          |         r3 = *(r0);
    0x00039d68 cmp r3, 2                                             |         
                                                                     |         if (r3 != 2) {
    0x00039d6c bne 0x39dac                                           |             goto label_0;
                                                                     |         }
    0x00039d70 add r3, r6, 0x1000                                    |         r3 = r6 + 0x1000;
    0x00039d74 ldr r3, [r3, 0x18]                                    |         r3 = *((r3 + 0x18));
    0x00039d78 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x00039d7c beq 0x39dac                                           |             goto label_0;
                                                                     |         }
    0x00039d80 add r2, sp, 0xc                                       |         r2 += var_ch;
    0x00039d84 mov r1, r5                                            |         r1 = r5;
    0x00039d88 mov r0, r6                                            |         r0 = r6;
    0x00039d8c blx r3                                                |         r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00039d90 subs r3, r0, 0                                        |         r3 = r0 - 0;
                                                                     |         if (r3 != r0) {
    0x00039d94 bne 0x39dac                                           |             goto label_0;
                                                                     |         }
    0x00039d98 mov r2, r7                                            |         r2 = r7;
    0x00039d9c mov r1, r5                                            |         r1 = r5;
    0x00039da0 ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
    0x00039da4 bl 0x80b4                                             |         r0 = faccessat ();
    0x00039da8 mov r4, r0                                            |         r4 = r0;
                                                                     |     }
                                                                     | label_0:
    0x00039dac mov r0, r4                                            |     r0 = r4;
    0x00039db0 add sp, sp, 0x10                                      |     
    0x00039db4 pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x39e14 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00039e14 ()                          | void fcn_00039e14 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     int32_t var_14h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00039e14 push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00039e18 ldr r8, [pc, 0x184]                   |     r8 = *(0x39fa0);
    0x00039e1c subs r7, r0, 0                        |     r7 = r0 - 0;
    0x00039e20 add r8, pc, r8                        |     r8 = pc + r8;
    0x00039e24 sub sp, sp, 0x14                      |     
    0x00039e28 mov r5, r2                            |     r5 = r2;
                                                     |     if (r7 != r0) {
    0x00039e2c bne 0x39ea4                           |         goto label_2;
                                                     |     }
    0x00039e30 mov r0, r2                            |     r0 = r2;
    0x00039e34 bl 0x8ba0                             |     open64 ();
    0x00039e38 ldr r3, [pc, 0x168]                   |     
    0x00039e3c add r3, pc, r3                        |     r3 = pc + r3;
    0x00039e40 ldr r3, [r3]                          |     r3 = *(0x39fa4);
    0x00039e44 tst r3, 4                             |     
    0x00039e48 mov r4, r0                            |     r4 = r0;
                                                     |     if ((r3 & 4) == 0) {
    0x00039e4c beq 0x39e98                           |         goto label_0;
                                                     |     }
    0x00039e50 ldr r3, [pc, 0x154]                   |     r3 = *(0x39fa8);
    0x00039e54 ldr r3, [r8, r3]                      |     r3 = *((r8 + r3));
    0x00039e58 ldr r6, [r3]                          |     r6 = *(0x39fa8);
    0x00039e5c bl 0x8204                             |     getpid ();
    0x00039e60 ldr r3, [pc, 0x148]                   |     r3 = *(0x39fac);
    0x00039e64 ldr r1, [pc, 0x148]                   |     r1 = "t_flags";
    0x00039e68 add r3, pc, r3                        |     r3 = pc + r3;
    0x00039e6c str r3, [sp]                          |     *(sp) = r3;
    0x00039e70 ldr r3, [pc, 0x140]                   |     r3 = "set_partitions_flags";
    0x00039e74 add r1, pc, r1                        |     r1 = pc + r1;
    0x00039e78 add r3, pc, r3                        |     r3 = pc + r3;
    0x00039e7c mov r2, r0                            |     r2 = r0;
    0x00039e80 mov r0, r6                            |     r0 = r6;
    0x00039e84 bl 0x8798                             |     fprintf (r0, "t_flags", r2, r3)
    0x00039e88 ldr r0, [pc, 0x12c]                   |     r0 = *(0x39fb8);
    0x00039e8c mov r1, r5                            |     r1 = r5;
    0x00039e90 add r0, pc, r0                        |     r0 = pc + r0;
    0x00039e94 bl 0x39284                            |     fcn_00039284 ();
                                                     |     do {
                                                     | label_0:
    0x00039e98 mov r0, r4                            |         r0 = r4;
    0x00039e9c add sp, sp, 0x14                      |         
    0x00039ea0 pop {r4, r5, r6, r7, r8, sb, pc}      |         
                                                     | label_2:
    0x00039ea4 mov sb, r1                            |         sb = r1;
    0x00039ea8 bl 0x39a70                            |         r0 = fcn_00039a70 (r0);
    0x00039eac cmp r0, 0                             |         
    0x00039eb0 mov r4, r0                            |         r4 = r0;
    0x00039eb4 str r0, [sp, 0xc]                     |         var_ch = r0;
    0x00039eb8 blt 0x39e98                           |         
                                                     |     } while (r0 < 0);
    0x00039ebc mov r2, sb                            |     r2 = sb;
    0x00039ec0 mov r1, r5                            |     r1 = r5;
    0x00039ec4 bl 0x83f0                             |     r0 = openat64 ();
    0x00039ec8 subs r6, r0, 0                        |     r6 = r0 - 0;
                                                     |     if (r6 >= r0) {
    0x00039ecc bge 0x39f90                           |         goto label_3;
                                                     |     }
    0x00039ed0 bl 0x8f6c                             |     r0 = errno_location ();
    0x00039ed4 ldr r3, [r0]                          |     r3 = *(r0);
    0x00039ed8 cmp r3, 2                             |     
                                                     |     if (r3 != 2) {
    0x00039edc bne 0x39f90                           |         goto label_3;
                                                     |     }
    0x00039ee0 add r3, r7, 0x1000                    |     r3 = r7 + 0x1000;
    0x00039ee4 ldr r3, [r3, 0x18]                    |     r3 = *((r3 + 0x18));
    0x00039ee8 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00039eec beq 0x39f90                           |         goto label_3;
                                                     |     }
    0x00039ef0 add r2, sp, 0xc                       |     r2 += var_ch;
    0x00039ef4 mov r1, r5                            |     r1 = r5;
    0x00039ef8 mov r0, r7                            |     r0 = r7;
    0x00039efc blx r3                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00039f00 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00039f04 bne 0x39f90                           |         goto label_3;
                                                     |     }
    0x00039f08 mov r2, sb                            |     r2 = sb;
    0x00039f0c mov r1, r5                            |     r1 = r5;
    0x00039f10 ldr r0, [sp, 0xc]                     |     r0 = var_ch;
    0x00039f14 bl 0x83f0                             |     r0 = openat64 ();
    0x00039f18 mov r4, r0                            |     r4 = r0;
                                                     | label_1:
    0x00039f1c ldr r3, [pc, 0x9c]                    |     
    0x00039f20 add r3, pc, r3                        |     r3 = pc + r3;
    0x00039f24 ldr r3, [r3]                          |     r3 = *(0x39fbc);
    0x00039f28 tst r3, 4                             |     
                                                     |     if ((r3 & 4) == 0) {
    0x00039f2c beq 0x39e98                           |         goto label_0;
                                                     |     }
    0x00039f30 ldr r3, [pc, 0x74]                    |     r3 = *(0x39fa8);
    0x00039f34 ldr r3, [r8, r3]                      |     r3 = *((r8 + r3));
    0x00039f38 ldr r8, [r3]                          |     r8 = *(0x39fa8);
    0x00039f3c bl 0x8204                             |     getpid ();
    0x00039f40 ldr r3, [pc, 0x7c]                    |     r3 = *(0x39fc0);
    0x00039f44 ldr r1, [pc, 0x7c]                    |     r1 = "ck_file";
    0x00039f48 add r3, pc, r3                        |     r3 = pc + r3;
    0x00039f4c str r3, [sp]                          |     *(sp) = r3;
    0x00039f50 ldr r3, [pc, 0x74]                    |     r3 = "nt_unref_cache";
    0x00039f54 add r1, pc, r1                        |     r1 = pc + r1;
    0x00039f58 add r3, pc, r3                        |     r3 = pc + r3;
    0x00039f5c mov r2, r0                            |     r2 = r0;
    0x00039f60 mov r0, r8                            |     r0 = r8;
    0x00039f64 bl 0x8798                             |     fprintf (r0, "ck_file", r2, r3)
    0x00039f68 cmp r4, r6                            |     
                                                     |     if (r4 != r6) {
    0x00039f6c bne 0x39f98                           |         goto label_4;
                                                     |     }
    0x00039f70 ldr r3, [pc, 0x58]                    |     r3 = *(0x39fcc);
    0x00039f74 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     do {
    0x00039f78 ldr r1, [pc, 0x54]                    |         r1 = "mnt_get_mtab_path";
    0x00039f7c mov r2, r5                            |         r2 = r5;
    0x00039f80 add r1, pc, r1                        |         r1 = pc + r1;
    0x00039f84 mov r0, r7                            |         r0 = r7;
    0x00039f88 bl 0x391c4                            |         fcn_000391c4 (r0);
    0x00039f8c b 0x39e98                             |         goto label_0;
                                                     | label_3:
    0x00039f90 mov r4, r6                            |         r4 = r6;
    0x00039f94 b 0x39f1c                             |         goto label_1;
                                                     | label_4:
    0x00039f98 ldr r3, [pc, 0x38]                    |         r3 = *(0x39fd4);
    0x00039f9c add r3, pc, r3                        |         r3 = pc + r3;
    0x00039fa0 b 0x39f78                             |         
                                                     |     } 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/lib/libmount.so.1.1.0 @ 0x3a254 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0003a254 ()                          | void fcn_0003a254 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0003a254 ldr r3, [pc, 0xdc]                    |     r3 = *(0x3a334);
    0x0003a258 push {r0, r1, r4, r5, r6, lr}         |     
    0x0003a25c subs r6, r1, 0                        |     r6 = r1 - 0;
    0x0003a260 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r6 == r1) {
    0x0003a264 beq 0x3a298                           |         goto label_1;
                                                     |     }
    0x0003a268 mov r2, r6                            |     r2 = r6;
    0x0003a26c mov r1, 0x80000                       |     r1 = 0x80000;
    0x0003a270 bl 0x39e14                            |     r0 = fcn_00039e14 (r0, r1);
                                                     |     do {
    0x0003a274 cmp r0, 0                             |         
    0x0003a278 mov r4, r0                            |         r4 = r0;
                                                     |         if (r0 >= 0) {
    0x0003a27c blt 0x3a2a8                           |             
    0x0003a280 bl 0x7fb8                             |             r0 = fdopendir ();
    0x0003a284 subs r5, r0, 0                        |             r5 = r0 - 0;
                                                     |             if (r5 != r0) {
    0x0003a288 bne 0x3a328                           |                 goto label_2;
                                                     |             }
    0x0003a28c mov r0, r4                            |             r0 = r4;
    0x0003a290 bl 0x917c                             |             close (r0);
    0x0003a294 b 0x3a2ac                             |             goto label_0;
                                                     | label_1:
    0x0003a298 ldr r2, [r0, 4]                       |             r2 = *((r0 + 4));
    0x0003a29c mov r4, r0                            |             r4 = r0;
    0x0003a2a0 cmp r2, 0                             |             
                                                     |             if (r2 != 0) {
    0x0003a2a4 bne 0x3a2b8                           |                 goto label_3;
                                                     |             }
                                                     |         }
    0x0003a2a8 mov r5, 0                             |         r5 = 0;
                                                     | label_0:
    0x0003a2ac mov r0, r5                            |         r0 = r5;
    0x0003a2b0 add sp, sp, 8                         |         
    0x0003a2b4 pop {r4, r5, r6, pc}                  |         
                                                     | label_3:
    0x0003a2b8 ldr r2, [pc, 0x7c]                    |         
    0x0003a2bc add r2, pc, r2                        |         r2 = pc + r2;
    0x0003a2c0 ldr r2, [r2]                          |         r2 = *(0x3a338);
    0x0003a2c4 tst r2, 4                             |         
                                                     |         if ((r2 & 4) != 0) {
    0x0003a2c8 beq 0x3a314                           |             
    0x0003a2cc ldr r2, [pc, 0x6c]                    |             r2 = *(0x3a33c);
    0x0003a2d0 ldr r3, [r3, r2]                      |             r3 = *((r3 + r2));
    0x0003a2d4 ldr r5, [r3]                          |             r5 = *(r3);
    0x0003a2d8 bl 0x8204                             |             getpid ();
    0x0003a2dc ldr r3, [pc, 0x60]                    |             r3 = *(0x3a340);
    0x0003a2e0 ldr r1, [pc, 0x60]                    |             r1 = *(0x3a344);
    0x0003a2e4 add r3, pc, r3                        |             r3 = pc + r3;
    0x0003a2e8 str r3, [sp]                          |             *(sp) = r3;
    0x0003a2ec ldr r3, [pc, 0x58]                    |             r3 = *(0x3a348);
    0x0003a2f0 add r1, pc, r1                        |             r1 = pc + r1;
    0x0003a2f4 add r3, pc, r3                        |             r3 = pc + r3;
    0x0003a2f8 mov r2, r0                            |             r2 = r0;
    0x0003a2fc mov r0, r5                            |             r0 = r5;
    0x0003a300 bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x0003a304 ldr r1, [pc, 0x44]                    |             r1 = *(0x3a34c);
    0x0003a308 mov r0, r4                            |             r0 = r4;
    0x0003a30c add r1, pc, r1                        |             r1 = pc + r1;
    0x0003a310 bl 0x391c4                            |             fcn_000391c4 (r0);
                                                     |         }
    0x0003a314 mov r0, r4                            |         r0 = r4;
    0x0003a318 bl 0x39a70                            |         fcn_00039a70 (r0);
    0x0003a31c mov r1, 3                             |         r1 = 3;
    0x0003a320 bl 0x29fd8                            |         fcn_00029fd8 (r0, r1);
    0x0003a324 b 0x3a274                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0003a328 cmp r6, 0                             |     
                                                     |     if (r6 != 0) {
    0x0003a32c bne 0x3a2ac                           |         goto label_0;
                                                     |     }
    0x0003a330 bl 0x839c                             |     rewinddir ();
    0x0003a334 b 0x3a2ac                             |     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/lib/libmount.so.1.1.0 @ 0x3a450 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0003a450 ()                                      | void fcn_0003a450 (int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     r1 = arg2;
    0x0003a450 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0003a454 ldr r7, [pc, 0x148]                               |     r7 = *(0x3a5a0);
    0x0003a458 sub sp, sp, 0x14                                  |     
    0x0003a45c mov r6, r1                                        |     r6 = r1;
    0x0003a460 mov r5, r2                                        |     r5 = r2;
    0x0003a464 mov r1, 0x80000                                   |     r1 = 0x80000;
    0x0003a468 mov r2, r3                                        |     r2 = r3;
    0x0003a46c mov r4, r3                                        |     r4 = r3;
    0x0003a470 bl 0x39e14                                        |     fcn_00039e14 (r0, r1);
    0x0003a474 add r7, pc, r7                                    |     r7 = pc + r7;
    0x0003a478 subs r8, r0, 0                                    |     r8 = r0 - 0;
                                                                 |     if (r8 < r0) {
    0x0003a47c bge 0x3a494                                       |         
    0x0003a480 bl 0x3938c                                        |         r0 = fcn_0003938c ();
    0x0003a484 mov r4, r0                                        |         r4 = r0;
                                                                 | label_0:
    0x0003a488 mov r0, r4                                        |         r0 = r4;
    0x0003a48c add sp, sp, 0x14                                  |         
    0x0003a490 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 |     }
    0x0003a494 ldr r3, [pc, 0x10c]                               |     
    0x0003a498 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0003a49c ldr r3, [r3]                                      |     r3 = *(0x3a5a4);
    0x0003a4a0 tst r3, 4                                         |     
                                                                 |     if ((r3 & 4) != 0) {
    0x0003a4a4 beq 0x3a4f0                                       |         
    0x0003a4a8 ldr r3, [pc, 0xfc]                                |         r3 = *(0x3a5a8);
    0x0003a4ac ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x0003a4b0 ldr r7, [r3]                                      |         r7 = *(0x3a5a8);
    0x0003a4b4 bl 0x8204                                         |         getpid ();
    0x0003a4b8 ldr r3, [pc, 0xf0]                                |         r3 = *(0x3a5ac);
    0x0003a4bc ldr r1, [pc, 0xf0]                                |         r1 = "nt_fs_streq_srcpath";
    0x0003a4c0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0003a4c4 str r3, [sp]                                      |         *(sp) = r3;
    0x0003a4c8 ldr r3, [pc, 0xe8]                                |         r3 = *(0x3a5b4);
    0x0003a4cc add r1, pc, r1                                    |         r1 = pc + r1;
    0x0003a4d0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0003a4d4 mov r2, r0                                        |         r2 = r0;
    0x0003a4d8 mov r0, r7                                        |         r0 = r7;
    0x0003a4dc bl 0x8798                                         |         fprintf (r0, "nt_fs_streq_srcpath", r2, r3)
    0x0003a4e0 ldr r0, [pc, 0xd4]                                |         r0 = *(0x3a5b8);
    0x0003a4e4 mov r1, r4                                        |         r1 = r4;
    0x0003a4e8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0003a4ec bl 0x39284                                        |         fcn_00039284 ();
                                                                 |     }
    0x0003a4f0 mov r2, r5                                        |     r2 = r5;
    0x0003a4f4 mov r1, 0                                         |     r1 = 0;
    0x0003a4f8 mov r0, r6                                        |     r0 = r6;
    0x0003a4fc bl 0x8b4c                                         |     r0 = memset (r0, r1, r2);
    0x0003a500 bl 0x8f6c                                         |     errno_location ();
    0x0003a504 ldr sl, [pc, 0xb4]                                |     sl = *(0x0003a5c0);
    0x0003a508 mov sb, 0                                         |     sb = 0;
    0x0003a50c mov r4, sb                                        |     r4 = sb;
    0x0003a510 add fp, sp, 8                                     |     
    0x0003a514 mov r7, r0                                        |     r7 = r0;
                                                                 |     do {
                                                                 | label_1:
    0x0003a518 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0003a51c beq 0x3a57c                                       |             goto label_2;
                                                                 |         }
    0x0003a520 mov r2, r5                                        |         r2 = r5;
    0x0003a524 mov r1, r6                                        |         r1 = r6;
    0x0003a528 mov r0, r8                                        |         r0 = r8;
    0x0003a52c bl 0x88e8                                         |         r0 = read (r0, r1, r2);
    0x0003a530 cmp r0, 0                                         |         
                                                                 |         if (r0 > 0) {
    0x0003a534 bgt 0x3a590                                       |             goto label_3;
                                                                 |         }
    0x0003a538 ldr r2, [r7]                                      |         r2 = *(r7);
                                                                 |         if (r0 == 0) {
    0x0003a53c beq 0x3a574                                       |             goto label_4;
                                                                 |         }
    0x0003a540 cmp r2, 4                                         |         
    0x0003a544 cmpne r2, 0xb                                     |         __asm ("cmpne r2, 0xb");
                                                                 |         if (r2 != 4) {
    0x0003a548 bne 0x3a574                                       |             goto label_4;
                                                                 |         }
    0x0003a54c cmp sb, 4                                         |         
                                                                 |         if (sb > 4) {
    0x0003a550 bgt 0x3a574                                       |             goto label_4;
                                                                 |         }
    0x0003a554 mov r3, 0                                         |         r3 = 0;
    0x0003a558 mov r1, r3                                        |         r1 = r3;
    0x0003a55c mov r0, fp                                        |         r0 = fp;
    0x0003a560 add sb, sb, 1                                     |         sb++;
    0x0003a564 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0003a568 str sl, [sp, 0xc]                                 |         var_ch = sl;
    0x0003a56c bl 0x86cc                                         |         nanosleep ();
    0x0003a570 b 0x3a518                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x0003a574 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0003a578 mvneq r4, 0                                       |         r4 = ~0;
                                                                 |     }
                                                                 | label_2:
    0x0003a57c ldr r5, [r7]                                      |     r5 = *(r7);
    0x0003a580 mov r0, r8                                        |     r0 = r8;
    0x0003a584 bl 0x917c                                         |     close (r0);
    0x0003a588 str r5, [r7]                                      |     *(r7) = r5;
    0x0003a58c b 0x3a488                                         |     goto label_0;
                                                                 | label_3:
    0x0003a590 sub r5, r5, r0                                    |     r5 -= r0;
    0x0003a594 add r6, r6, r0                                    |     r6 += r0;
    0x0003a598 add r4, r4, r0                                    |     r4 += r0;
    0x0003a59c mov sb, 0                                         |     sb = 0;
    0x0003a5a0 b 0x3a518                                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x3a770 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0003a770 ()                                  | void fcn_0003a770 (int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * format;
                                                             |     int32_t var_24h;
                                                             |     r1 = arg2;
    0x0003a770 push {r2, r3}                                 |     
    0x0003a774 push {r0, r1, r2, r3, r4, r5, r6, lr}         |     
    0x0003a778 ldr r6, [pc, 0xb4]                            |     r6 = *(0x3a830);
    0x0003a77c mov r4, r1                                    |     r4 = r1;
    0x0003a780 mov r2, r1                                    |     r2 = r1;
    0x0003a784 ldr r1, [pc, 0xac]                            |     r1 = *(0x3a834);
    0x0003a788 add r6, pc, r6                                |     r6 = pc + r6;
    0x0003a78c add r1, pc, r1                                |     r1 = pc + r1;
    0x0003a790 bl 0x3a03c                                    |     r0 = fcn_0003a03c (r0, r1);
    0x0003a794 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x0003a798 mvneq r4, 0x15                                |         r4 = ~0x15;
                                                             |     }
                                                             |     if (r5 != r0) {
    0x0003a79c beq 0x3a820                                   |         
    0x0003a7a0 ldr r3, [pc, 0x94]                            |         
    0x0003a7a4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003a7a8 ldr r3, [r3]                                  |         r3 = *(0x3a838);
    0x0003a7ac tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x0003a7b0 beq 0x3a800                                   |             
    0x0003a7b4 ldr r3, [pc, 0x84]                            |             r3 = *(0x3a83c);
    0x0003a7b8 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0003a7bc ldr r6, [r3]                                  |             r6 = *(0x3a83c);
    0x0003a7c0 bl 0x8204                                     |             getpid ();
    0x0003a7c4 ldr r3, [pc, 0x78]                            |             r3 = *(0x3a840);
    0x0003a7c8 ldr r1, [pc, 0x78]                            |             r1 = "id_new_probe_from_filename";
    0x0003a7cc add r3, pc, r3                                |             r3 = pc + r3;
    0x0003a7d0 str r3, [sp]                                  |             *(sp) = r3;
    0x0003a7d4 ldr r3, [pc, 0x70]                            |             r3 = *(0x3a848);
    0x0003a7d8 add r1, pc, r1                                |             r1 = pc + r1;
    0x0003a7dc add r3, pc, r3                                |             r3 = pc + r3;
    0x0003a7e0 mov r2, r0                                    |             r2 = r0;
    0x0003a7e4 mov r0, r6                                    |             r0 = r6;
    0x0003a7e8 bl 0x8798                                     |             fprintf (r0, "id_new_probe_from_filename", r2, r3)
    0x0003a7ec ldr r0, [pc, 0x5c]                            |             r0 = *(0x3a84c);
    0x0003a7f0 mov r2, r4                                    |             r2 = r4;
    0x0003a7f4 ldr r1, [sp, 0x20]                            |             r1 = format;
    0x0003a7f8 add r0, pc, r0                                |             r0 = pc + r0;
    0x0003a7fc bl 0x39284                                    |             fcn_00039284 ();
                                                             |         }
    0x0003a800 add r2, sp, 0x24                              |         r2 += var_24h;
    0x0003a804 ldr r1, [sp, 0x20]                            |         r1 = format;
    0x0003a808 mov r0, r5                                    |         r0 = r5;
    0x0003a80c str r2, [sp, 0xc]                             |         var_ch = r2;
    0x0003a810 bl 0x8f30                                     |         r0 = vfscanf (r0, r1, r2);
    0x0003a814 mov r4, r0                                    |         r4 = r0;
    0x0003a818 mov r0, r5                                    |         r0 = r5;
    0x0003a81c bl 0x8b94                                     |         fclose (r0);
                                                             |     }
    0x0003a820 mov r0, r4                                    |     r0 = r4;
    0x0003a824 add sp, sp, 0x10                              |     
    0x0003a828 pop {r4, r5, r6, lr}                          |     
    0x0003a82c add sp, sp, 8                                 |     
    0x0003a830 bx lr                                         |     return;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x3b464 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0003b464 ()                      | void fcn_0003b464 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0003b464 push {r1, r2, r3}                 |     
    0x0003b468 ldr r3, [pc, 0xa4]                |     r3 = *(0x3b510);
    0x0003b46c push {r0, r1, r2, r4, lr}         |     
    0x0003b470 ldr r1, [pc, 0xa0]                |     r1 = *(0x3b514);
    0x0003b474 add r3, pc, r3                    |     r3 = pc + r3;
    0x0003b478 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0003b47c ldr r4, [r3, r1]                  |     r4 = *(0x3b510);
                                                 |     if (r2 != r0) {
    0x0003b480 beq 0x3b4a8                       |         
    0x0003b484 ldr r3, [pc, 0x90]                |         
    0x0003b488 add r3, pc, r3                    |         r3 = pc + r3;
    0x0003b48c ldr r3, [r3]                      |         r3 = *(0x3b518);
    0x0003b490 tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0003b494 bne 0x3b4a8                       |             goto label_1;
                                                 |         }
    0x0003b498 ldr r1, [pc, 0x80]                |         r1 = *(0x3b51c);
    0x0003b49c ldr r0, [r4]                      |         r0 = *(r4);
    0x0003b4a0 add r1, pc, r1                    |         r1 = pc + r1;
    0x0003b4a4 bl 0x8798                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0003b4a8 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0003b4ac ldr r1, [sp, 0x14]                |     r1 = format;
    0x0003b4b0 ldr r0, [r4]                      |     r0 = *(r4);
    0x0003b4b4 str r2, [sp, 4]                   |     var_4h = r2;
    0x0003b4b8 bl 0x91a0                         |     vfprintf (r0, r1, r2)
    0x0003b4bc ldr r1, [r4]                      |     r1 = *(r4);
    0x0003b4c0 ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0003b4c4 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0003b4c8 beq 0x3b508                       |         goto label_2;
                                                 |     }
    0x0003b4cc ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0003b4d0 ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0003b4d4 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0003b4d8 bhs 0x3b4fc                       |         goto label_3;
                                                 |     }
    0x0003b4dc add r2, r3, 1                     |     r2 = r3 + 1;
    0x0003b4e0 str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0003b4e4 mov r2, 0xa                       |     r2 = 0xa;
    0x0003b4e8 strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0003b4ec add sp, sp, 0xc                   |         
    0x0003b4f0 pop {r4, lr}                      |         
    0x0003b4f4 add sp, sp, 0xc                   |         
    0x0003b4f8 bx lr                             |         return;
                                                 | label_3:
    0x0003b4fc mov r0, 0xa                       |         r0 = 0xa;
    0x0003b500 bl 0x91dc                         |         fputc_unlocked ();
    0x0003b504 b 0x3b4ec                         |         
                                                 |     } while (1);
                                                 | label_2:
    0x0003b508 mov r0, 0xa                       |     r0 = 0xa;
    0x0003b50c bl 0x8ea0                         |     fputc (r0, r1);
    0x0003b510 b 0x3b4ec                         |     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/lib/libmount.so.1.1.0 @ 0x3b958 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0003b958 ()                                  | void fcn_0003b958 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0003b958 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0003b95c ldr r8, [pc, 0xbc]                            |     r8 = *(0x3ba1c);
    0x0003b960 mov r7, r0                                    |     r7 = r0;
    0x0003b964 mov r6, r1                                    |     r6 = r1;
    0x0003b968 bl 0x39a50                                    |     fcn_00039a50 (r0);
    0x0003b96c cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x0003b970 moveq r4, 1                                   |         r4 = 1;
                                                             |     }
    0x0003b974 add r8, pc, r8                                |     r8 = pc + r8;
    0x0003b978 mov r5, r0                                    |     r5 = r0;
    0x0003b97c clz r0, r0                                    |     r0 &= r0;
    0x0003b980 lsr r0, r0, 5                                 |     r0 >>= 5;
                                                             |     if (r7 == 0) {
    0x0003b984 movne r4, r0                                  |         r4 = r0;
                                                             |     }
    0x0003b988 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0003b98c mvnne r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r4 == 0) {
    0x0003b990 bne 0x3ba18                                   |         
    0x0003b994 ldr r0, [r5, 8]                               |         r0 = *((r5 + 8));
    0x0003b998 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0003b99c beq 0x3b9a8                                   |             
    0x0003b9a0 bl 0x395c8                                    |             fcn_000395c8 (r0);
    0x0003b9a4 str r4, [r5, 8]                               |             *((r5 + 8)) = r4;
                                                             |         }
    0x0003b9a8 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x0003b9ac beq 0x3b9b8                                   |             
    0x0003b9b0 mov r0, r6                                    |             r0 = r6;
    0x0003b9b4 bl 0x395b4                                    |             fcn_000395b4 (r0);
                                                             |         }
    0x0003b9b8 ldr r3, [pc, 0x64]                            |         r3 = *(0x3ba20);
    0x0003b9bc str r6, [r5, 8]                               |         *((r5 + 8)) = r6;
    0x0003b9c0 ldr r0, [pc, r3]                              |         r0 = *(0x0003b9c8);
    0x0003b9c4 ands r0, r0, 4                                |         r0 &= 4;
                                                             |         if (r0 == r0) {
    0x0003b9c8 beq 0x3ba18                                   |             goto label_0;
                                                             |         }
    0x0003b9cc ldr r3, [pc, 0x54]                            |         r3 = mnt_context_enable_verbose;
    0x0003b9d0 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x0003b9d4 ldr r4, [r3]                                  |         r4 = mnt_context_enable_verbose;
    0x0003b9d8 bl 0x8204                                     |         getpid ();
    0x0003b9dc ldr r3, [pc, 0x48]                            |         r3 = *(0x3ba28);
    0x0003b9e0 ldr r1, [pc, 0x48]                            |         r1 = *(0x3ba2c);
    0x0003b9e4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003b9e8 str r3, [sp]                                  |         *(sp) = r3;
    0x0003b9ec ldr r3, [pc, 0x40]                            |         r3 = *(0x3ba30);
    0x0003b9f0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0003b9f4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0003b9f8 mov r2, r0                                    |         r2 = r0;
    0x0003b9fc mov r0, r4                                    |         r0 = r4;
    0x0003ba00 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0003ba04 ldr r1, [pc, 0x2c]                            |         r1 = *(0x3ba34);
    0x0003ba08 mov r0, r7                                    |         r0 = r7;
    0x0003ba0c add r1, pc, r1                                |         r1 = pc + r1;
    0x0003ba10 bl 0x3b464                                    |         fcn_0003b464 (r0);
    0x0003ba14 mov r0, 0                                     |         r0 = 0;
                                                             |     }
                                                             | label_0:
    0x0003ba18 add sp, sp, 8                                 |     
    0x0003ba1c pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x3ba3c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003ba3c ()                              | void fcn_0003ba3c (int32_t arg_58h, int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     char * s;
                                                         |     int32_t var_3ch;
                                                         |     r0 = arg1;
    0x0003ba3c push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x0003ba40 ldr sb, [pc, 0x194]                       |     sb = *(0x3bbd8);
    0x0003ba44 sub sp, sp, 0x3c                          |     
    0x0003ba48 mov r1, r3                                |     r1 = r3;
    0x0003ba4c mov r4, r0                                |     r4 = r0;
    0x0003ba50 mov r0, r2                                |     r0 = r2;
    0x0003ba54 mov r6, r2                                |     r6 = r2;
    0x0003ba58 mov r7, r3                                |     r7 = r3;
    0x0003ba5c bl 0x8294                                 |     gnu_dev_major ();
    0x0003ba60 mov r1, r7                                |     r1 = r7;
    0x0003ba64 add sb, pc, sb                            |     sb = pc + sb;
    0x0003ba68 mov r5, r0                                |     r5 = r0;
    0x0003ba6c mov r0, r6                                |     r0 = r6;
    0x0003ba70 bl 0x8570                                 |     gnu_dev_minor ();
    0x0003ba74 ldr r2, [pc, 0x164]                       |     r2 = *(0x3bbdc);
    0x0003ba78 mov r3, r5                                |     r3 = r5;
    0x0003ba7c add r5, sp, 8                             |     r5 += s;
    0x0003ba80 add r2, pc, r2                            |     r2 = pc + r2;
    0x0003ba84 mov r1, 0x2e                              |     r1 = 0x2e;
    0x0003ba88 str r0, [sp]                              |     *(sp) = r0;
    0x0003ba8c mov r0, r5                                |     r0 = r5;
    0x0003ba90 bl 0x809c                                 |     snprintf (r0, r1, r2, r3);
    0x0003ba94 mov r1, r5                                |     r1 = r5;
    0x0003ba98 mov r0, r4                                |     r0 = r4;
    0x0003ba9c bl 0x398c8                                |     r0 = fcn_000398c8 (r0, r1);
    0x0003baa0 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 == r0) {
    0x0003baa4 bne 0x3bbd0                               |         
    0x0003baa8 mov r0, r4                                |         r0 = r4;
    0x0003baac bl 0x39a70                                |         r0 = fcn_00039a70 (r0);
    0x0003bab0 cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x0003bab4 movlt r5, r0                              |             r5 = r0;
                                                         |         }
                                                         |         if (r0 < 0) {
    0x0003bab8 blt 0x3bbd0                               |             goto label_0;
                                                         |         }
    0x0003babc mov r0, r4                                |         r0 = r4;
    0x0003bac0 bl 0x39a50                                |         r0 = fcn_00039a50 (r0);
    0x0003bac4 subs r8, r0, 0                            |         r8 = r0 - 0;
                                                         |         if (r8 == r0) {
    0x0003bac8 bne 0x3bb64                               |             
    0x0003bacc ldr r3, [pc, 0x110]                       |             
    0x0003bad0 add r3, pc, r3                            |             r3 = pc + r3;
    0x0003bad4 ldr r3, [r3]                              |             r3 = *(0x3bbe0);
    0x0003bad8 tst r3, 4                                 |             
                                                         |             if ((r3 & 4) != 0) {
    0x0003badc beq 0x3bb28                               |                 
    0x0003bae0 ldr r3, [pc, 0x100]                       |                 r3 = *(0x3bbe4);
    0x0003bae4 ldr r3, [sb, r3]                          |                 r3 = *((sb + r3));
    0x0003bae8 ldr r8, [r3]                              |                 r8 = *(0x3bbe4);
    0x0003baec bl 0x8204                                 |                 getpid ();
    0x0003baf0 ldr r3, [pc, 0xf4]                        |                 r3 = *(0x3bbe8);
    0x0003baf4 ldr r1, [pc, 0xf4]                        |                 r1 = *(0x3bbec);
    0x0003baf8 add r3, pc, r3                            |                 r3 = pc + r3;
    0x0003bafc str r3, [sp]                              |                 *(sp) = r3;
    0x0003bb00 ldr r3, [pc, 0xec]                        |                 r3 = *(0x3bbf0);
    0x0003bb04 add r1, pc, r1                            |                 r1 = pc + r1;
    0x0003bb08 add r3, pc, r3                            |                 r3 = pc + r3;
    0x0003bb0c mov r2, r0                                |                 r2 = r0;
    0x0003bb10 mov r0, r8                                |                 r0 = r8;
    0x0003bb14 bl 0x8798                                 |                 fprintf (r0, r1, r2, r3)
    0x0003bb18 ldr r1, [pc, 0xd8]                        |                 r1 = *(0x3bbf4);
    0x0003bb1c mov r0, r4                                |                 r0 = r4;
    0x0003bb20 add r1, pc, r1                            |                 r1 = pc + r1;
    0x0003bb24 bl 0x3b464                                |                 fcn_0003b464 (r0);
                                                         |             }
    0x0003bb28 mov r1, 0x20                              |             r1 = 0x20;
    0x0003bb2c mov r0, 1                                 |             r0 = 1;
    0x0003bb30 bl 0x86e4                                 |             r0 = calloc (r0, r1);
    0x0003bb34 subs r8, r0, 0                            |             r8 = r0 - 0;
                                                         |             if (r8 != r0) {
    0x0003bb38 mvneq r5, 0xb                             |                 r5 = ~0xb;
                                                         |             }
                                                         |             if (r8 == r0) {
    0x0003bb3c beq 0x3bbd0                               |                 goto label_0;
                                                         |             }
    0x0003bb40 ldr r2, [pc, 0xb4]                        |             r2 = *(0x3bbf8);
    0x0003bb44 mov r1, r8                                |             r1 = r8;
    0x0003bb48 add r2, pc, r2                            |             r2 = pc + r2;
    0x0003bb4c mov r0, r4                                |             r0 = r4;
    0x0003bb50 bl 0x399b0                                |             fcn_000399b0 (r0, r1);
    0x0003bb54 ldr r1, [pc, 0xa4]                        |             r1 = *(0x3bbfc);
    0x0003bb58 mov r0, r4                                |             r0 = r4;
    0x0003bb5c add r1, pc, r1                            |             r1 = pc + r1;
    0x0003bb60 bl 0x39a60                                |             fcn_00039a60 (r0, r1);
                                                         |         }
    0x0003bb64 ldr r3, [pc, 0x98]                        |         
    0x0003bb68 add r3, pc, r3                            |         r3 = pc + r3;
    0x0003bb6c ldr r3, [r3]                              |         r3 = *(0x3bc00);
    0x0003bb70 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x0003bb74 beq 0x3bbc0                               |             
    0x0003bb78 ldr r3, [pc, 0x68]                        |             r3 = *(0x3bbe4);
    0x0003bb7c ldr r3, [sb, r3]                          |             r3 = *((sb + r3));
    0x0003bb80 ldr sb, [r3]                              |             sb = *(0x3bbe4);
    0x0003bb84 bl 0x8204                                 |             getpid ();
    0x0003bb88 ldr r3, [pc, 0x78]                        |             r3 = *(0x3bc04);
    0x0003bb8c ldr r1, [pc, 0x78]                        |             r1 = *(0x3bc08);
    0x0003bb90 add r3, pc, r3                            |             r3 = pc + r3;
    0x0003bb94 str r3, [sp]                              |             *(sp) = r3;
    0x0003bb98 ldr r3, [pc, 0x70]                        |             r3 = *(0x3bc0c);
    0x0003bb9c add r1, pc, r1                            |             r1 = pc + r1;
    0x0003bba0 add r3, pc, r3                            |             r3 = pc + r3;
    0x0003bba4 mov r2, r0                                |             r2 = r0;
    0x0003bba8 mov r0, sb                                |             r0 = sb;
    0x0003bbac bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x0003bbb0 ldr r1, [pc, 0x5c]                        |             r1 = *(0x3bc10);
    0x0003bbb4 mov r0, r4                                |             r0 = r4;
    0x0003bbb8 add r1, pc, r1                            |             r1 = pc + r1;
    0x0003bbbc bl 0x3b464                                |             fcn_0003b464 (r0);
                                                         |         }
    0x0003bbc0 strd r6, r7, [r8]                         |         __asm ("strd r6, r7, [r8]");
    0x0003bbc4 ldr r1, [sp, 0x58]                        |         r1 = *(arg_58h);
    0x0003bbc8 mov r0, r4                                |         r0 = r4;
    0x0003bbcc bl 0x3b958                                |         fcn_0003b958 (r0, r1);
                                                         |     }
                                                         | label_0:
    0x0003bbd0 mov r0, r5                                |     r0 = r5;
    0x0003bbd4 add sp, sp, 0x3c                          |     
    0x0003bbd8 pop {r4, r5, r6, r7, r8, sb, 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/lib/libmount.so.1.1.0 @ 0x3bc18 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0003bc18 ()                                          | void fcn_0003bc18 (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0003bc18 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}         |     
    0x0003bc1c ldr r5, [pc, 0xc4]                                    |     r5 = *(0x3bce4);
    0x0003bc20 mov r8, r0                                            |     r8 = r0;
    0x0003bc24 mov r0, 0                                             |     r0 = 0;
    0x0003bc28 mov sb, r1                                            |     sb = r1;
    0x0003bc2c mov r7, r2                                            |     r7 = r2;
    0x0003bc30 mov r6, r3                                            |     r6 = r3;
    0x0003bc34 bl 0x396bc                                            |     fcn_000396bc ();
    0x0003bc38 add r5, pc, r5                                        |     r5 = pc + r5;
    0x0003bc3c subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 == r0) {
    0x0003bc40 beq 0x3bc7c                                           |         goto label_0;
                                                                     |     }
    0x0003bc44 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0003bc48 beq 0x3bc54                                           |         
    0x0003bc4c mov r1, r6                                            |         r1 = r6;
    0x0003bc50 bl 0x397c0                                            |         fcn_000397c0 (r0, r1);
                                                                     |     }
    0x0003bc54 str r7, [sp]                                          |     *(sp) = r7;
    0x0003bc58 mov r2, r8                                            |     r2 = r8;
    0x0003bc5c mov r3, sb                                            |     r3 = sb;
    0x0003bc60 mov r0, r4                                            |     r0 = r4;
    0x0003bc64 bl 0x3ba3c                                            |     r0 = fcn_0003ba3c (r0, r1);
    0x0003bc68 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003bc6c beq 0x3bc88                                           |         goto label_1;
                                                                     |     }
    0x0003bc70 mov r0, r4                                            |     r0 = r4;
    0x0003bc74 bl 0x395c8                                            |     fcn_000395c8 (r0);
    0x0003bc78 mov r4, 0                                             |     r4 = 0;
                                                                     |     do {
                                                                     | label_0:
    0x0003bc7c mov r0, r4                                            |         r0 = r4;
    0x0003bc80 add sp, sp, 0xc                                       |         
    0x0003bc84 pop {r4, r5, r6, r7, r8, sb, pc}                      |         
                                                                     | label_1:
    0x0003bc88 ldr r3, [pc, 0x5c]                                    |         
    0x0003bc8c add r3, pc, r3                                        |         r3 = pc + r3;
    0x0003bc90 ldr r3, [r3]                                          |         r3 = *(0x3bce8);
    0x0003bc94 tst r3, 4                                             |         
    0x0003bc98 beq 0x3bc7c                                           |         
                                                                     |     } while ((r3 & 4) == 0);
    0x0003bc9c ldr r3, [pc, 0x4c]                                    |     r3 = *(0x3bcec);
    0x0003bca0 ldr r3, [r5, r3]                                      |     r3 = *((r5 + r3));
    0x0003bca4 ldr r5, [r3]                                          |     r5 = *(0x3bcec);
    0x0003bca8 bl 0x8204                                             |     getpid ();
    0x0003bcac ldr r3, [pc, 0x40]                                    |     r3 = *(0x3bcf0);
    0x0003bcb0 ldr r1, [pc, 0x40]                                    |     r1 = *(0x3bcf4);
    0x0003bcb4 add r3, pc, r3                                        |     r3 = pc + r3;
    0x0003bcb8 str r3, [sp]                                          |     *(sp) = r3;
    0x0003bcbc ldr r3, [pc, 0x38]                                    |     r3 = *(0x3bcf8);
    0x0003bcc0 add r1, pc, r1                                        |     r1 = pc + r1;
    0x0003bcc4 add r3, pc, r3                                        |     r3 = pc + r3;
    0x0003bcc8 mov r2, r0                                            |     r2 = r0;
    0x0003bccc mov r0, r5                                            |     r0 = r5;
    0x0003bcd0 bl 0x8798                                             |     fprintf (r0, r1, r2, r3)
    0x0003bcd4 ldr r1, [pc, 0x24]                                    |     r1 = *(0x3bcfc);
    0x0003bcd8 mov r0, r4                                            |     r0 = r4;
    0x0003bcdc add r1, pc, r1                                        |     r1 = pc + r1;
    0x0003bce0 bl 0x3b464                                            |     fcn_0003b464 (r0);
    0x0003bce4 b 0x3bc7c                                             |     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/lib/libmount.so.1.1.0 @ 0x9e54 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_cache_read_tags ()                       | void mnt_cache_read_tags (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;
                                                             |     char * format;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_54h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00009e54 ldr ip, [pc, 0x344]                           |     ip = *(0x0000a1a0);
    0x00009e58 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00009e5c ldr r7, [pc, 0x340]                           |     r7 = *(0xa1a0);
    0x00009e60 add ip, pc, ip                                |     
    0x00009e64 mov r6, ip                                    |     r6 = ip;
    0x00009e68 mov r4, r0                                    |     r4 = r0;
    0x00009e6c mov r5, r1                                    |     r5 = r1;
    0x00009e70 ldm r6!, {r0, r1, r2, r3}                     |     r0 = *(r6!);
                                                             |     r1 = *((r6! + 4));
                                                             |     r2 = *((r6! + 8));
                                                             |     r3 = *((r6! + 12));
    0x00009e74 sub sp, sp, 0x54                              |     
    0x00009e78 add lr, sp, 0x28                              |     lr += var_28h;
    0x00009e7c stm lr!, {r0, r1, r2, r3}                     |     *(lr!) = r0;
                                                             |     *((lr! + 4)) = r1;
                                                             |     *((lr! + 8)) = r2;
                                                             |     *((lr! + 12)) = r3;
    0x00009e80 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00009e84 add ip, ip, 0x14                              |     
    0x00009e88 str r3, [lr]                                  |     *(lr) = r3;
    0x00009e8c ldm ip!, {r0, r1, r2, r3}                     |     r0 = *(ip!);
                                                             |     r1 = *((ip! + 4));
                                                             |     r2 = *((ip! + 8));
                                                             |     r3 = *((ip! + 12));
    0x00009e90 add lr, sp, 0x3c                              |     lr += var_3ch;
    0x00009e94 stm lr!, {r0, r1, r2, r3}                     |     *(lr!) = r0;
                                                             |     *((lr! + 4)) = r1;
                                                             |     *((lr! + 8)) = r2;
                                                             |     *((lr! + 12)) = r3;
    0x00009e98 ldr r3, [ip]                                  |     r3 = *(ip);
    0x00009e9c cmp r5, 0                                     |     
    0x00009ea0 cmpne r4, 0                                   |     __asm ("cmpne r4, 0");
    0x00009ea4 str r3, [lr]                                  |     *(lr) = r3;
    0x00009ea8 add r3, sp, 0x28                              |     r3 += var_28h;
    0x00009eac add r7, pc, r7                                |     r7 = pc + r7;
    0x00009eb0 str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             |     if (r5 != 0) {
    0x00009eb4 mvneq r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r5 == 0) {
    0x00009eb8 beq 0xa0ec                                    |         goto label_2;
                                                             |     }
    0x00009ebc ldr r3, [pc, 0x2e4]                           |     r3 = *(0xa1a4);
    0x00009ec0 ldr sl, [r7, r3]                              |     sl = *((r7 + r3));
    0x00009ec4 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00009ec8 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00009ecc beq 0x9f1c                                    |         
    0x00009ed0 ldr r3, [pc, 0x2d4]                           |         r3 = *(0xa1a8);
    0x00009ed4 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00009ed8 ldr r6, [r3]                                  |         r6 = *(0xa1a8);
    0x00009edc bl 0x8204                                     |         getpid ();
    0x00009ee0 ldr r3, [pc, 0x2c8]                           |         r3 = *(0xa1ac);
    0x00009ee4 ldr r1, [pc, 0x2c8]                           |         r1 = *(0xa1b0);
    0x00009ee8 add r3, pc, r3                                |         r3 = pc + r3;
    0x00009eec str r3, [sp]                                  |         *(sp) = r3;
    0x00009ef0 ldr r3, [pc, 0x2c0]                           |         r3 = *(0xa1b4);
    0x00009ef4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00009ef8 add r3, pc, r3                                |         r3 = pc + r3;
    0x00009efc mov r2, r0                                    |         r2 = r0;
    0x00009f00 mov r0, r6                                    |         r0 = r6;
    0x00009f04 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00009f08 ldr r1, [pc, 0x2ac]                           |         r1 = *(0xa1b8);
    0x00009f0c mov r2, r5                                    |         r2 = r5;
    0x00009f10 add r1, pc, r1                                |         r1 = pc + r1;
    0x00009f14 mov r0, r4                                    |         r0 = r4;
    0x00009f18 bl 0x94bc                                     |         fcn_000094bc (r0);
                                                             |     }
    0x00009f1c ldr r8, [r4, 4]                               |     r8 = *((r4 + 4));
    0x00009f20 mov r6, 0                                     |     r6 = 0;
    0x00009f24 mov sb, 0xc                                   |     sb = 0xc;
                                                             | label_0:
    0x00009f28 cmp r8, r6                                    |     
                                                             |     if (r8 != r6) {
    0x00009f2c bne 0xa0f4                                    |         goto label_3;
                                                             |     }
    0x00009f30 mov r0, r5                                    |     r0 = r5;
    0x00009f34 bl 0x8150                                     |     r0 = blkid_new_probe_from_filename ();
    0x00009f38 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00009f3c mvneq r0, 0                                   |         r0 = ~0;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x00009f40 beq 0xa0ec                                    |         goto label_2;
                                                             |     }
    0x00009f44 mov r1, 1                                     |     r1 = 1;
    0x00009f48 bl 0x8b70                                     |     blkid_probe_enable_superblocks ();
    0x00009f4c mov r1, 0x2a                                  |     r1 = 0x2a;
    0x00009f50 mov r0, r6                                    |     r0 = r6;
    0x00009f54 bl 0x8dec                                     |     blkid_probe_set_superblocks_flags ();
    0x00009f58 mov r1, 1                                     |     r1 = 1;
    0x00009f5c mov r0, r6                                    |     r0 = r6;
    0x00009f60 bl 0x8d44                                     |     blkid_probe_enable_partitions ();
    0x00009f64 mov r1, 4                                     |     r1 = 4;
    0x00009f68 mov r0, r6                                    |     r0 = r6;
    0x00009f6c bl 0x7ebc                                     |     blkid_probe_set_partitions_flags ();
    0x00009f70 mov r0, r6                                    |     r0 = r6;
    0x00009f74 bl 0x8234                                     |     r0 = blkid_do_safeprobe ();
    0x00009f78 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00009f7c str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (r3 != r0) {
    0x00009f80 bne 0xa17c                                    |         goto label_4;
                                                             |     }
    0x00009f84 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00009f88 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00009f8c beq 0x9fdc                                    |         
    0x00009f90 ldr r3, [pc, 0x214]                           |         r3 = *(0xa1a8);
    0x00009f94 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00009f98 ldr r8, [r3]                                  |         r8 = *(0xa1a8);
    0x00009f9c bl 0x8204                                     |         getpid ();
    0x00009fa0 ldr r3, [pc, 0x218]                           |         r3 = *(0xa1bc);
    0x00009fa4 ldr r1, [pc, 0x218]                           |         r1 = *(0xa1c0);
    0x00009fa8 add r3, pc, r3                                |         r3 = pc + r3;
    0x00009fac str r3, [sp]                                  |         *(sp) = r3;
    0x00009fb0 ldr r3, [pc, 0x210]                           |         r3 = *(0xa1c4);
    0x00009fb4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00009fb8 add r3, pc, r3                                |         r3 = pc + r3;
    0x00009fbc mov r2, r0                                    |         r2 = r0;
    0x00009fc0 mov r0, r8                                    |         r0 = r8;
    0x00009fc4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00009fc8 ldr r1, [pc, 0x1fc]                           |         r1 = *(0xa1c8);
    0x00009fcc mov r2, r5                                    |         r2 = r5;
    0x00009fd0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00009fd4 mov r0, r4                                    |         r0 = r4;
    0x00009fd8 bl 0x94bc                                     |         fcn_000094bc (r0);
                                                             |     }
    0x00009fdc ldr r3, [pc, 0x1ec]                           |     r3 = *(0xa1cc);
    0x00009fe0 mov r8, 0                                     |     r8 = 0;
    0x00009fe4 add r3, pc, r3                                |     r3 = pc + r3;
    0x00009fe8 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00009fec ldr r3, [pc, 0x1e0]                           |     r3 = *(0xa1d0);
    0x00009ff0 mov sb, r8                                    |     sb = r8;
    0x00009ff4 add r3, pc, r3                                |     r3 = pc + r3;
    0x00009ff8 str r3, [sp, 0x18]                            |     format = r3;
    0x00009ffc ldr r3, [pc, 0x1d4]                           |     r3 = *(0xa1d4);
    0x0000a000 add r3, pc, r3                                |     r3 = pc + r3;
    0x0000a004 str r3, [sp, 0x1c]                            |     var_1ch = r3;
                                                             |     do {
    0x0000a008 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x0000a00c mov r1, r5                                    |         r1 = r5;
    0x0000a010 ldr r3, [r3, sb, lsl 2]                       |         offset_0 = sb << 2;
                                                             |         r3 = *((r3 + offset_0));
    0x0000a014 mov r0, r4                                    |         r0 = r4;
    0x0000a018 mov r2, r3                                    |         r2 = r3;
    0x0000a01c str r3, [sp, 8]                               |         var_8h = r3;
    0x0000a020 bl 0x9a78                                     |         r0 = fcn_00009a78 (r0, r1, r2);
    0x0000a024 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 == r0) {
    0x0000a028 beq 0xa124                                    |             goto label_5;
                                                             |         }
    0x0000a02c ldr r3, [sl]                                  |         r3 = *(sl);
    0x0000a030 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x0000a034 beq 0xa078                                    |             
    0x0000a038 ldr r3, [pc, 0x16c]                           |             r3 = *(0xa1a8);
    0x0000a03c ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0000a040 ldr fp, [r3]                                  |             fp = *(0xa1a8);
    0x0000a044 bl 0x8204                                     |             getpid ();
    0x0000a048 ldr r3, [sp, 0x1c]                            |             r3 = var_1ch;
    0x0000a04c ldr r1, [sp, 0x18]                            |             r1 = format;
    0x0000a050 str r3, [sp]                                  |             *(sp) = r3;
    0x0000a054 ldr r3, [sp, 0x14]                            |             r3 = var_14h;
    0x0000a058 mov r2, r0                                    |             r2 = r0;
    0x0000a05c mov r0, fp                                    |             r0 = fp;
    0x0000a060 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0000a064 ldr r1, [pc, 0x170]                           |             r1 = *(0xa1d8);
    0x0000a068 ldr r2, [sp, 8]                               |             r2 = var_8h;
    0x0000a06c add r1, pc, r1                                |             r1 = pc + r1;
    0x0000a070 mov r0, r4                                    |             r0 = r4;
    0x0000a074 bl 0x94bc                                     |             fcn_000094bc (r0);
                                                             |         }
                                                             | label_1:
    0x0000a078 add sb, sb, 1                                 |         sb++;
    0x0000a07c cmp sb, 5                                     |         
    0x0000a080 bne 0xa008                                    |         
                                                             |     } while (sb != 5);
    0x0000a084 ldr r3, [sl]                                  |     r3 = *(sl);
    0x0000a088 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x0000a08c beq 0xa0dc                                    |         
    0x0000a090 ldr r3, [pc, 0x114]                           |         r3 = *(0xa1a8);
    0x0000a094 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0000a098 ldr r5, [r3]                                  |         r5 = *(0xa1a8);
    0x0000a09c bl 0x8204                                     |         getpid ();
    0x0000a0a0 ldr r3, [pc, 0x138]                           |         r3 = *(0xa1dc);
    0x0000a0a4 ldr r1, [pc, 0x138]                           |         r1 = *(0xa1e0);
    0x0000a0a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000a0ac str r3, [sp]                                  |         *(sp) = r3;
    0x0000a0b0 ldr r3, [pc, 0x130]                           |         r3 = *(0xa1e4);
    0x0000a0b4 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000a0b8 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000a0bc mov r2, r0                                    |         r2 = r0;
    0x0000a0c0 mov r0, r5                                    |         r0 = r5;
    0x0000a0c4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0000a0c8 ldr r1, [pc, 0x11c]                           |         r1 = *(0xa1e8);
    0x0000a0cc mov r2, r8                                    |         r2 = r8;
    0x0000a0d0 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000a0d4 mov r0, r4                                    |         r0 = r4;
    0x0000a0d8 bl 0x94bc                                     |         fcn_000094bc (r0);
                                                             |     }
    0x0000a0dc mov r0, r6                                    |     r0 = r6;
    0x0000a0e0 bl 0x8a5c                                     |     r0 = blkid_free_probe ();
    0x0000a0e4 clz r0, r8                                    |     r0 &= r8;
    0x0000a0e8 lsr r0, r0, 5                                 |     r0 >>= 5;
                                                             |     do {
                                                             | label_2:
    0x0000a0ec add sp, sp, 0x54                              |         
    0x0000a0f0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_3:
    0x0000a0f4 ldr r3, [r4]                                  |         r3 = *(r4);
    0x0000a0f8 mla r0, sb, r6, r3                            |         __asm ("mla r0, sb, r6, r3");
    0x0000a0fc ldr r2, [r0, 8]                               |         r2 = *((r0 + 8));
    0x0000a100 tst r2, 8                                     |         
                                                             |         if ((r2 & 8) == 0) {
    0x0000a104 beq 0xa11c                                    |             goto label_6;
                                                             |         }
    0x0000a108 mov r1, r5                                    |         r1 = r5;
    0x0000a10c ldr r0, [r0, 4]                               |         r0 = *((r0 + 4));
    0x0000a110 bl 0x8cb4                                     |         r0 = strcmp (r0, r1);
    0x0000a114 cmp r0, 0                                     |         
    0x0000a118 beq 0xa0ec                                    |         
                                                             |     } while (r0 == 0);
                                                             | label_6:
    0x0000a11c add r6, r6, 1                                 |     r6++;
    0x0000a120 b 0x9f28                                      |     goto label_0;
                                                             | label_5:
    0x0000a124 add r1, sp, 0x3c                              |     r1 += var_3ch;
    0x0000a128 add r2, sp, 0x24                              |     r2 += var_24h;
    0x0000a12c ldr r1, [r1, sb, lsl 2]                       |     offset_1 = sb << 2;
                                                             |     r1 = *((r1 + offset_1));
    0x0000a130 mov r0, r6                                    |     r0 = r6;
    0x0000a134 bl 0x83d8                                     |     r0 = blkid_probe_lookup_value ();
    0x0000a138 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0000a13c bne 0xa078                                    |         goto label_1;
                                                             |     }
    0x0000a140 mov r0, r5                                    |     r0 = r5;
    0x0000a144 bl 0x8ae0                                     |     r0 = strdup (r0);
    0x0000a148 subs fp, r0, 0                                |     
                                                             |     if (fp != r0) {
    0x0000a14c beq 0xa17c                                    |         
    0x0000a150 mov r3, 8                                     |         r3 = 8;
    0x0000a154 str r3, [sp]                                  |         *(sp) = r3;
    0x0000a158 ldr r2, [sp, 0x24]                            |         r2 = var_24h;
    0x0000a15c mov r3, fp                                    |         r3 = fp;
    0x0000a160 ldr r1, [sp, 8]                               |         r1 = var_8h;
    0x0000a164 mov r0, r4                                    |         r0 = r4;
    0x0000a168 bl 0x97f4                                     |         r0 = fcn_000097f4 (r0, r1, r2);
    0x0000a16c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000a170 beq 0xa198                                    |             goto label_7;
                                                             |         }
    0x0000a174 mov r0, fp                                    |         r0 = fp;
    0x0000a178 bl 0x91c4                                     |         free (r0);
                                                             |     }
                                                             | label_4:
    0x0000a17c mov r0, r6                                    |     r0 = r6;
    0x0000a180 bl 0x8a5c                                     |     blkid_free_probe ();
    0x0000a184 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x0000a188 mvn r0, 0                                     |     r0 = ~0;
    0x0000a18c cmp r3, r0                                    |     
                                                             |     if (r3 >= r0) {
    0x0000a190 movlt r0, r3                                  |         r0 = r3;
                                                             |     }
    0x0000a194 b 0xa0ec                                      |     goto label_2;
                                                             | label_7:
    0x0000a198 add r8, r8, 1                                 |     r8++;
    0x0000a19c b 0xa078                                      |     goto label_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/lib/libmount.so.1.1.0 @ 0x1e8a0 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.mnt_context_apply_fstab ()                   | void mnt_context_apply_fstab (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_0h_2;
                                                             |     r0 = arg1;
    0x0001e8a0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0001e8a4 ldr r5, [pc, 0x608]                           |     r5 = *(0x1eeb0);
    0x0001e8a8 sub sp, sp, 0x34                              |     
    0x0001e8ac mov r6, 0                                     |     r6 = 0;
    0x0001e8b0 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001e8b4 add r5, pc, r5                                |     r5 = pc + r5;
    0x0001e8b8 str r6, [sp, 0x28]                            |     var_28h = r6;
    0x0001e8bc str r6, [sp, 0x2c]                            |     var_2ch = r6;
                                                             |     if (r4 == r0) {
    0x0001e8c0 beq 0x1eeac                                   |         goto label_8;
                                                             |     }
    0x0001e8c4 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x0001e8c8 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x0001e8cc beq 0x1eeac                                   |         goto label_8;
                                                             |     }
    0x0001e8d0 bl 0x8f48                                     |     fcn_00008f48 ();
    0x0001e8d4 ldr r3, [pc, 0x5dc]                           |     r3 = *(0x1eeb4);
    0x0001e8d8 ldr sb, [r5, r3]                              |     sb = *((r5 + r3));
    0x0001e8dc subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x0001e8e0 beq 0x1e94c                                   |         goto label_9;
                                                             |     }
    0x0001e8e4 ldr r3, [sb]                                  |     r3 = *(sb);
    0x0001e8e8 tst r3, 0x200                                 |     
    0x0001e8ec bne 0x1e900                                   |     
                                                             |     while (1) {
                                                             | label_0:
    0x0001e8f0 mov r8, 0                                     |         r8 = 0;
                                                             | label_4:
    0x0001e8f4 mov r0, r8                                    |         r0 = r8;
    0x0001e8f8 add sp, sp, 0x34                              |         
    0x0001e8fc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x0001e900 ldr r3, [pc, 0x5b4]                           |         r3 = *(0x1eeb8);
    0x0001e904 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001e908 ldr r5, [r3]                                  |         r5 = *(0x1eeb8);
    0x0001e90c bl 0x8204                                     |         getpid ();
    0x0001e910 ldr r3, [pc, 0x5a8]                           |         r3 = *(0x1eebc);
    0x0001e914 ldr r1, [pc, 0x5a8]                           |         r1 = *(0x1eec0);
    0x0001e918 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001e91c str r3, [sp]                                  |         *(sp) = r3;
    0x0001e920 ldr r3, [pc, 0x5a0]                           |         r3 = *(0x1eec4);
    0x0001e924 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001e928 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001e92c mov r2, r0                                    |         r2 = r0;
    0x0001e930 mov r0, r5                                    |         r0 = r5;
    0x0001e934 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001e938 ldr r1, [pc, 0x58c]                           |         r1 = *(0x1eec8);
    0x0001e93c add r1, pc, r1                                |         r1 = pc + r1;
                                                             | label_1:
    0x0001e940 mov r0, r4                                    |         r0 = r4;
    0x0001e944 bl 0x1a538                                    |         fcn_0001a538 (r0);
    0x0001e948 b 0x1e8f0                                     |         
                                                             |     }
                                                             | label_9:
    0x0001e94c mov r0, r4                                    |     r0 = r4;
    0x0001e950 bl 0x8f84                                     |     r0 = fcn_00008f84 ();
    0x0001e954 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001e958 beq 0x1eb28                                   |         goto label_10;
                                                             |     }
    0x0001e95c ldr r3, [sb]                                  |     r3 = *(sb);
    0x0001e960 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001e964 beq 0x1e9b0                                   |         
    0x0001e968 ldr r3, [pc, 0x54c]                           |         r3 = *(0x1eeb8);
    0x0001e96c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001e970 ldr r6, [r3]                                  |         r6 = *(0x1eeb8);
    0x0001e974 bl 0x8204                                     |         getpid ();
    0x0001e978 ldr r3, [pc, 0x550]                           |         r3 = *(0x1eecc);
    0x0001e97c ldr r1, [pc, 0x550]                           |         r1 = *(0x1eed0);
    0x0001e980 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001e984 str r3, [sp]                                  |         *(sp) = r3;
    0x0001e988 ldr r3, [pc, 0x548]                           |         r3 = *(0x1eed4);
    0x0001e98c add r1, pc, r1                                |         r1 = pc + r1;
    0x0001e990 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001e994 mov r2, r0                                    |         r2 = r0;
    0x0001e998 mov r0, r6                                    |         r0 = r6;
    0x0001e99c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001e9a0 ldr r1, [pc, 0x534]                           |         r1 = *(0x1eed8);
    0x0001e9a4 mov r0, r4                                    |         r0 = r4;
    0x0001e9a8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001e9ac bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001e9b0 mov r3, 0x430                                 |     r3 = 0x430;
                                                             | label_2:
    0x0001e9b4 str r3, [r4, 0x34]                            |     *((r4 + 0x34)) = r3;
                                                             | label_3:
    0x0001e9b8 add r1, sp, 0x2c                              |     r1 += var_2ch;
    0x0001e9bc mov r0, r4                                    |     r0 = r4;
    0x0001e9c0 bl 0x8768                                     |     r0 = fcn_00008768 ();
    0x0001e9c4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001e9c8 ldreq r3, [sp, 0x2c]                          |         r3 = var_2ch;
                                                             |     }
    0x0001e9cc ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
                                                             |     if (r0 != 0) {
    0x0001e9d0 lsreq sl, r3, 5                               |         sl = r3 >> 5;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001e9d4 lsreq r3, r3, 0xc                             |         r3 >>= 0xc;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x0001e9d8 movne r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001e9dc andeq r3, r3, 1                               |         r3 &= 1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001e9e0 andeq sl, sl, 1                               |         sl &= 1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001e9e4 streq r3, [sp, 0x20]                          |         var_20h = r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x0001e9e8 strne r3, [sp, 0x20]                          |         var_20h = r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x0001e9ec movne sl, r3                                  |         sl = r3;
                                                             |     }
    0x0001e9f0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001e9f4 moveq r6, r0                                  |         r6 = r0;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001e9f8 moveq fp, r6                                  |         
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001e9fc beq 0x1ea14                                   |         
    0x0001ea00 bl 0x8c90                                     |         r0 = fcn_00008c90 ();
    0x0001ea04 mov fp, r0                                    |         
    0x0001ea08 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x0001ea0c bl 0x81d4                                     |         r0 = fcn_000081d4 ();
    0x0001ea10 mov r6, r0                                    |         r6 = r0;
                                                             |     }
    0x0001ea14 ldr r3, [sb]                                  |     r3 = *(sb);
    0x0001ea18 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001ea1c beq 0x1eab8                                   |         
    0x0001ea20 ldr r3, [pc, 0x494]                           |         r3 = *(0x1eeb8);
    0x0001ea24 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001ea28 ldr r7, [r3]                                  |         r7 = *(0x1eeb8);
    0x0001ea2c bl 0x8204                                     |         getpid ();
    0x0001ea30 ldr r3, [pc, 0x4a8]                           |         r3 = *(0x1eedc);
    0x0001ea34 ldr r1, [pc, 0x4a8]                           |         r1 = *(0x1eee0);
    0x0001ea38 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ea3c str r3, [sp]                                  |         *(sp) = r3;
    0x0001ea40 ldr r3, [pc, 0x4a0]                           |         r3 = *(0x1eee4);
    0x0001ea44 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ea48 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ea4c mov r2, r0                                    |         r2 = r0;
    0x0001ea50 mov r0, r7                                    |         r0 = r7;
    0x0001ea54 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001ea58 ldr r1, [r4, 0x34]                            |         r1 = *((r4 + 0x34));
    0x0001ea5c asr r0, r1, 0xb                               |         r0 = r1 >> 0xb;
    0x0001ea60 and r0, r0, 1                                 |         r0 &= 1;
    0x0001ea64 str r0, [sp, 0x10]                            |         var_10h = r0;
    0x0001ea68 asr r0, r1, 0xa                               |         r0 = r1 >> 0xa;
    0x0001ea6c and r0, r0, 1                                 |         r0 &= 1;
    0x0001ea70 str r0, [sp, 0xc]                             |         var_ch = r0;
    0x0001ea74 asr r0, r1, 5                                 |         r0 = r1 >> 5;
    0x0001ea78 and r0, r0, 1                                 |         r0 &= 1;
    0x0001ea7c asr r3, r1, 2                                 |         r3 = r1 >> 2;
    0x0001ea80 asr r2, r1, 1                                 |         r2 = r1 >> 1;
    0x0001ea84 str r0, [sp, 8]                               |         var_8h = r0;
    0x0001ea88 asr r0, r1, 4                                 |         r0 = r1 >> 4;
    0x0001ea8c asr r1, r1, 3                                 |         r1 >>= 3;
    0x0001ea90 and r1, r1, 1                                 |         r1 &= 1;
    0x0001ea94 str r1, [sp]                                  |         *(sp) = r1;
    0x0001ea98 ldr r1, [pc, 0x44c]                           |         r1 = *(0x1eee8);
    0x0001ea9c and r0, r0, 1                                 |         r0 &= 1;
    0x0001eaa0 str r0, [sp, 4]                               |         var_4h = r0;
    0x0001eaa4 and r3, r3, 1                                 |         r3 &= 1;
    0x0001eaa8 and r2, r2, 1                                 |         r2 &= 1;
    0x0001eaac add r1, pc, r1                                |         r1 = pc + r1;
    0x0001eab0 mov r0, r4                                    |         r0 = r4;
    0x0001eab4 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001eab8 adds r0, r6, 0                                |     r0 = r6 + 0;
                                                             |     if (r0 == r6) {
    0x0001eabc movne r0, 1                                   |         r0 = 1;
                                                             |     }
    0x0001eac0 cmp fp, 0                                     |     
    0x0001eac4 cmpne r6, 0                                   |     __asm ("cmpne r6, 0");
                                                             |     if (fp == 0) {
    0x0001eac8 beq 0x1eba0                                   |         goto label_11;
                                                             |     }
    0x0001eacc ldr r7, [r4, 0x34]                            |     r7 = *((r4 + 0x34));
    0x0001ead0 ands r7, r7, 0x20                             |     r7 &= 0x20;
                                                             |     if (r7 != r7) {
    0x0001ead4 bne 0x1eba0                                   |         goto label_11;
                                                             |     }
    0x0001ead8 ldr r3, [sb]                                  |     r3 = *(sb);
    0x0001eadc tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001eae0 beq 0x1e8f0                                   |         goto label_0;
                                                             |     }
    0x0001eae4 ldr r3, [pc, 0x3d0]                           |     r3 = *(0x1eeb8);
    0x0001eae8 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0001eaec ldr r5, [r3]                                  |     r5 = *(0x1eeb8);
    0x0001eaf0 bl 0x8204                                     |     getpid ();
    0x0001eaf4 ldr r3, [pc, 0x3f4]                           |     r3 = *(0x1eeec);
    0x0001eaf8 ldr r1, [pc, 0x3f4]                           |     r1 = *(0x1eef0);
    0x0001eafc add r3, pc, r3                                |     r3 = pc + r3;
    0x0001eb00 str r3, [sp]                                  |     *(sp) = r3;
    0x0001eb04 ldr r3, [pc, 0x3ec]                           |     r3 = *(0x1eef4);
    0x0001eb08 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001eb0c add r3, pc, r3                                |     r3 = pc + r3;
    0x0001eb10 mov r2, r0                                    |     r2 = r0;
    0x0001eb14 mov r0, r5                                    |     r0 = r5;
    0x0001eb18 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001eb1c ldr r1, [pc, 0x3d8]                           |     r1 = *(0x1eef8);
    0x0001eb20 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001eb24 b 0x1e940                                     |     goto label_1;
                                                             | label_10:
    0x0001eb28 ldr r3, [r4, 0x34]                            |     r3 = *((r4 + 0x34));
    0x0001eb2c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001eb30 bne 0x1eb90                                   |         
    0x0001eb34 ldr r3, [sb]                                  |         r3 = *(sb);
    0x0001eb38 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0001eb3c beq 0x1eb88                                   |             
    0x0001eb40 ldr r3, [pc, 0x374]                           |             r3 = *(0x1eeb8);
    0x0001eb44 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x0001eb48 ldr r6, [r3]                                  |             r6 = *(0x1eeb8);
    0x0001eb4c bl 0x8204                                     |             getpid ();
    0x0001eb50 ldr r3, [pc, 0x3a8]                           |             r3 = *(0x1eefc);
    0x0001eb54 ldr r1, [pc, 0x3a8]                           |             r1 = *(0x1ef00);
    0x0001eb58 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001eb5c str r3, [sp]                                  |             *(sp) = r3;
    0x0001eb60 ldr r3, [pc, 0x3a0]                           |             r3 = *(0x1ef04);
    0x0001eb64 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001eb68 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001eb6c mov r2, r0                                    |             r2 = r0;
    0x0001eb70 mov r0, r6                                    |             r0 = r6;
    0x0001eb74 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001eb78 ldr r1, [pc, 0x38c]                           |             r1 = *(0x1ef08);
    0x0001eb7c mov r0, r4                                    |             r0 = r4;
    0x0001eb80 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001eb84 bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001eb88 ldr r3, [pc, 0x380]                           |         r3 = *(0x1ef0c);
    0x0001eb8c b 0x1e9b4                                     |         goto label_2;
                                                             |     }
    0x0001eb90 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) == 0) {
    0x0001eb94 beq 0x1e9b8                                   |         goto label_3;
                                                             |     }
    0x0001eb98 bic r3, r3, 0xc20                             |     r3 = BIT_MASK (r3, 0xc20);
    0x0001eb9c b 0x1e9b4                                     |     goto label_2;
                                                             | label_11:
    0x0001eba0 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x0001eba4 movne r0, 0                                   |         r0 = 0;
                                                             |     }
    0x0001eba8 cmp r0, 0                                     |     
    0x0001ebac str r0, [sp, 0x1c]                            |     var_1ch = r0;
                                                             |     if (r0 == 0) {
    0x0001ebb0 beq 0x1ec18                                   |         goto label_12;
                                                             |     }
    0x0001ebb4 ldr r3, [r4, 0x34]                            |     r3 = *((r4 + 0x34));
    0x0001ebb8 tst r3, 0xc00                                 |     
                                                             |     if ((r3 & 0xc00) != 0) {
    0x0001ebbc bne 0x1ec18                                   |         goto label_12;
                                                             |     }
    0x0001ebc0 ldr r3, [sb]                                  |     r3 = *(sb);
    0x0001ebc4 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001ebc8 beq 0x1e8f0                                   |         goto label_0;
                                                             |     }
    0x0001ebcc ldr r3, [pc, 0x2e8]                           |     r3 = *(0x1eeb8);
    0x0001ebd0 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0001ebd4 ldr r5, [r3]                                  |     r5 = *(0x1eeb8);
    0x0001ebd8 bl 0x8204                                     |     getpid ();
    0x0001ebdc ldr r3, [pc, 0x330]                           |     r3 = *(0x1ef10);
    0x0001ebe0 ldr r1, [pc, 0x330]                           |     r1 = *(0x1ef14);
    0x0001ebe4 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001ebe8 str r3, [sp]                                  |     *(sp) = r3;
    0x0001ebec ldr r3, [pc, 0x328]                           |     r3 = *(0x1ef18);
    0x0001ebf0 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001ebf4 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001ebf8 mov r2, r0                                    |     r2 = r0;
    0x0001ebfc mov r0, r5                                    |     r0 = r5;
    0x0001ec00 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001ec04 ldr r1, [pc, 0x314]                           |     r1 = *(0x1ef1c);
    0x0001ec08 add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_5:
    0x0001ec0c mov r0, r4                                    |     r0 = r4;
    0x0001ec10 bl 0x1a538                                    |     fcn_0001a538 (r0);
    0x0001ec14 b 0x1e8f4                                     |     goto label_4;
                                                             | label_12:
    0x0001ec18 mov r0, r4                                    |     r0 = r4;
    0x0001ec1c bl 0x87c8                                     |     fcn_000087c8 ();
    0x0001ec20 mov r0, r4                                    |     r0 = r4;
    0x0001ec24 bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x0001ec28 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x0001ec2c str r3, [sp, 0x24]                            |     var_24h = r3;
    0x0001ec30 bne 0x1ec3c                                   |     
                                                             |     while (r0 == 0) {
    0x0001ec34 ldr r8, [pc, 0x2e8]                           |         r8 = *(0x1ef20);
    0x0001ec38 b 0x1e8f4                                     |         goto label_4;
    0x0001ec3c ldr r3, [r4, 0x34]                            |         r3 = *((r4 + 0x34));
    0x0001ec40 tst r3, 0x400                                 |         
                                                             |         if ((r3 & 0x400) == 0) {
    0x0001ec44 beq 0x1ee14                                   |             goto label_13;
                                                             |         }
    0x0001ec48 ldr r3, [sb]                                  |         r3 = *(sb);
    0x0001ec4c tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0001ec50 beq 0x1eca4                                   |             
    0x0001ec54 ldr r3, [pc, 0x260]                           |             r3 = *(0x1eeb8);
    0x0001ec58 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x0001ec5c ldr r7, [r3]                                  |             r7 = *(0x1eeb8);
    0x0001ec60 bl 0x8204                                     |             getpid ();
    0x0001ec64 ldr r3, [pc, 0x2bc]                           |             r3 = *(0x1ef24);
    0x0001ec68 ldr r1, [pc, 0x2bc]                           |             r1 = *(0x1ef28);
    0x0001ec6c add r3, pc, r3                                |             r3 = pc + r3;
    0x0001ec70 str r3, [sp]                                  |             *(sp) = r3;
    0x0001ec74 ldr r3, [pc, 0x2b4]                           |             r3 = *(0x1ef2c);
    0x0001ec78 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001ec7c add r3, pc, r3                                |             r3 = pc + r3;
    0x0001ec80 mov r2, r0                                    |             r2 = r0;
    0x0001ec84 mov r0, r7                                    |             r0 = r7;
    0x0001ec88 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001ec8c ldr r1, [pc, 0x2a0]                           |             r1 = *(0x1ef30);
    0x0001ec90 mov r3, r6                                    |             r3 = r6;
    0x0001ec94 mov r2, fp                                    |             r2 = fp;
    0x0001ec98 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001ec9c mov r0, r4                                    |             r0 = r4;
    0x0001eca0 bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001eca4 add r1, sp, 0x28                              |         r1 += var_28h;
    0x0001eca8 mov r0, r4                                    |         r0 = r4;
    0x0001ecac bl 0x8810                                     |         r0 = fcn_00008810 ();
    0x0001ecb0 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x0001ecb4 bne 0x1eccc                                   |             
    0x0001ecb8 mov r2, r7                                    |             r2 = r7;
    0x0001ecbc ldr r1, [sp, 0x28]                            |             r1 = var_28h;
    0x0001ecc0 mov r0, r4                                    |             r0 = r4;
    0x0001ecc4 bl 0x1ab14                                    |             r0 = fcn_0001ab14 (r0, r1);
    0x0001ecc8 mov r7, r0                                    |             r7 = r0;
                                                             |         }
    0x0001eccc cmp r7, 0                                     |         
                                                             |         if (r7 < 0) {
    0x0001ecd0 bge 0x1ed88                                   |             
                                                             | label_6:
    0x0001ecd4 ldr r3, [r4, 0x34]                            |             r3 = *((r4 + 0x34));
    0x0001ecd8 tst r3, 0x800                                 |             
                                                             |             if ((r3 & 0x800) == 0) {
    0x0001ecdc beq 0x1ed88                                   |                 goto label_14;
                                                             |             }
    0x0001ece0 cmp sl, 0                                     |             
                                                             |             if (sl == 0) {
    0x0001ece4 bne 0x1ecf4                                   |                 
    0x0001ece8 ldr r3, [r4]                                  |                 r3 = *(r4);
    0x0001ecec cmp r3, 2                                     |                 
                                                             |                 if (r3 != 2) {
    0x0001ecf0 bne 0x1ed88                                   |                     goto label_14;
                                                             |                 }
                                                             |             }
    0x0001ecf4 ldr r3, [sb]                                  |             r3 = *(sb);
    0x0001ecf8 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) != 0) {
    0x0001ecfc beq 0x1ed50                                   |                 
    0x0001ed00 ldr r3, [pc, 0x1b4]                           |                 r3 = *(0x1eeb8);
    0x0001ed04 ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x0001ed08 ldr r7, [r3]                                  |                 r7 = *(0x1eeb8);
    0x0001ed0c bl 0x8204                                     |                 getpid ();
    0x0001ed10 ldr r3, [pc, 0x220]                           |                 r3 = *(0x1ef34);
    0x0001ed14 ldr r1, [pc, 0x220]                           |                 r1 = *(0x1ef38);
    0x0001ed18 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0001ed1c str r3, [sp]                                  |                 *(sp) = r3;
    0x0001ed20 ldr r3, [pc, 0x218]                           |                 r3 = *(0x1ef3c);
    0x0001ed24 add r1, pc, r1                                |                 r1 = pc + r1;
    0x0001ed28 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0001ed2c mov r2, r0                                    |                 r2 = r0;
    0x0001ed30 mov r0, r7                                    |                 r0 = r7;
    0x0001ed34 bl 0x8798                                     |                 fprintf (r0, r1, r2, r3)
    0x0001ed38 ldr r1, [pc, 0x204]                           |                 r1 = *(0x1ef40);
    0x0001ed3c mov r3, r6                                    |                 r3 = r6;
    0x0001ed40 mov r2, fp                                    |                 r2 = fp;
    0x0001ed44 add r1, pc, r1                                |                 r1 = pc + r1;
    0x0001ed48 mov r0, r4                                    |                 r0 = r4;
    0x0001ed4c bl 0x1a538                                    |                 fcn_0001a538 (r0);
                                                             |             }
    0x0001ed50 cmp r6, 0                                     |             
    0x0001ed54 add r1, sp, 0x28                              |             r1 += var_28h;
                                                             |             if (r6 == 0) {
    0x0001ed58 beq 0x1ee1c                                   |                 goto label_15;
                                                             |             }
    0x0001ed5c mov r2, r6                                    |             r2 = r6;
    0x0001ed60 mov r0, r4                                    |             r0 = r4;
    0x0001ed64 bl 0x1d4c4                                    |             r0 = fcn_0001d4c4 (r0, r1);
                                                             | label_7:
    0x0001ed68 cmp r0, 0                                     |             
    0x0001ed6c mov r7, r0                                    |             r7 = r0;
                                                             |             if (r0 != 0) {
    0x0001ed70 bne 0x1ed88                                   |                 goto label_14;
                                                             |             }
    0x0001ed74 mov r2, 1                                     |             r2 = 1;
    0x0001ed78 ldr r1, [sp, 0x28]                            |             r1 = var_28h;
    0x0001ed7c mov r0, r4                                    |             r0 = r4;
    0x0001ed80 bl 0x1ab14                                    |             r0 = fcn_0001ab14 (r0, r1);
    0x0001ed84 mov r7, r0                                    |             r7 = r0;
                                                             |         }
                                                             | label_14:
    0x0001ed88 ldr r1, [sp, 0x24]                            |         r1 = var_24h;
    0x0001ed8c mov r0, r4                                    |         r0 = r4;
    0x0001ed90 bl 0x85e8                                     |         r0 = fcn_000085e8 ();
    0x0001ed94 cmp r0, 0                                     |         
    0x0001ed98 beq 0x1ec34                                   |         
                                                             |     }
    0x0001ed9c cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0001eda0 beq 0x1ee84                                   |         goto label_16;
                                                             |     }
    0x0001eda4 mov r0, r4                                    |     r0 = r4;
    0x0001eda8 bl 0x8f84                                     |     fcn_00008f84 ();
    0x0001edac ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x0001edb0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001edb4 andeq r0, r3, sl                              |         r0 = r3 & sl;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x0001edb8 movne r0, 0                                   |         r0 = 0;
                                                             |     }
    0x0001edbc cmp r0, 0                                     |     
    0x0001edc0 ldr r3, [sb]                                  |     r3 = *(sb);
                                                             |     if (r0 == 0) {
    0x0001edc4 beq 0x1ee28                                   |         goto label_17;
                                                             |     }
    0x0001edc8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001edcc beq 0x1e8f0                                   |         goto label_0;
                                                             |     }
    0x0001edd0 ldr r3, [pc, 0xe4]                            |     r3 = *(0x1eeb8);
    0x0001edd4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0001edd8 ldr r5, [r3]                                  |     r5 = *(0x1eeb8);
    0x0001eddc bl 0x8204                                     |     getpid ();
    0x0001ede0 ldr r3, [pc, 0x160]                           |     r3 = *(0x1ef44);
    0x0001ede4 ldr r1, [pc, 0x160]                           |     r1 = *(0x1ef48);
    0x0001ede8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001edec str r3, [sp]                                  |     *(sp) = r3;
    0x0001edf0 ldr r3, [pc, 0x158]                           |     r3 = *(0x1ef4c);
    0x0001edf4 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001edf8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001edfc mov r2, r0                                    |     r2 = r0;
    0x0001ee00 mov r0, r5                                    |     r0 = r5;
    0x0001ee04 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001ee08 ldr r1, [pc, 0x144]                           |     r1 = *(0x1ef50);
    0x0001ee0c add r1, pc, r1                                |     r1 = pc + r1;
    0x0001ee10 b 0x1ec0c                                     |     goto label_5;
                                                             | label_13:
    0x0001ee14 mvn r7, 0                                     |     r7 = ~0;
    0x0001ee18 b 0x1ecd4                                     |     goto label_6;
                                                             | label_15:
    0x0001ee1c mov r0, r4                                    |     r0 = r4;
    0x0001ee20 bl 0x84d4                                     |     fcn_000084d4 ();
    0x0001ee24 b 0x1ed68                                     |     goto label_7;
                                                             | label_17:
    0x0001ee28 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0001ee2c beq 0x1ee7c                                   |         
    0x0001ee30 ldr r3, [pc, 0x84]                            |         r3 = *(0x1eeb8);
    0x0001ee34 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0001ee38 ldr r5, [r3]                                  |         r5 = *(0x1eeb8);
    0x0001ee3c bl 0x8204                                     |         getpid ();
    0x0001ee40 ldr r3, [pc, 0x110]                           |         r3 = *(0x1ef54);
    0x0001ee44 ldr r1, [pc, 0x110]                           |         r1 = *(0x1ef58);
    0x0001ee48 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ee4c str r3, [sp]                                  |         *(sp) = r3;
    0x0001ee50 ldr r3, [pc, 0x108]                           |         r3 = *(0x1ef5c);
    0x0001ee54 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ee58 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001ee5c mov r2, r0                                    |         r2 = r0;
    0x0001ee60 mov r0, r5                                    |         r0 = r5;
    0x0001ee64 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001ee68 ldr r1, [pc, 0xf4]                            |         r1 = *(0x1ef60);
    0x0001ee6c mov r2, r7                                    |         r2 = r7;
    0x0001ee70 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001ee74 mov r0, r4                                    |         r0 = r4;
    0x0001ee78 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
    0x0001ee7c ldr r8, [pc, 0xe4]                            |     r8 = *(0x1ef64);
    0x0001ee80 b 0x1e8f4                                     |     goto label_4;
                                                             | label_16:
    0x0001ee84 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x0001ee88 eor r3, r3, 1                                 |     r3 ^= 1;
    0x0001ee8c tst r3, sl                                    |     
                                                             |     if ((r3 & sl) == 0) {
    0x0001ee90 beq 0x1e8f0                                   |         goto label_0;
                                                             |     }
    0x0001ee94 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0001ee98 ldr r1, [pc, 0xcc]                            |     r1 = *(0x1ef68);
    0x0001ee9c add r0, r0, 0x3c                              |     r0 += 0x3c;
    0x0001eea0 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001eea4 bl 0x8c18                                     |     fcn_00008c18 ();
    0x0001eea8 b 0x1e8f0                                     |     goto label_0;
                                                             | label_8:
    0x0001eeac mvn r8, 0x15                                  |     r8 = ~0x15;
    0x0001eeb0 b 0x1e8f4                                     |     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/lib/libmount.so.1.1.0 @ 0x2294c */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.mnt_context_do_mount ()                                  | void mnt_context_do_mount (int32_t arg1) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_ch;
                                                                         |     int32_t var_10h;
                                                                         |     r0 = arg1;
    0x0002294c push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00022950 ldr r7, [pc, 0x408]                                       |     r7 = *(0x22d5c);
    0x00022954 subs r4, r0, 0                                            |     r4 = r0 - 0;
    0x00022958 add r7, pc, r7                                            |     r7 = pc + r7;
                                                                         |     if (r4 != r0) {
    0x0002295c bne 0x22984                                               |         goto label_4;
                                                                         |     }
    0x00022960 ldr r3, [pc, 0x3fc]                                       |     
    0x00022964 ldr r1, [pc, 0x3fc]                                       |     r1 = *(0x22d64);
    0x00022968 ldr r0, [pc, 0x3fc]                                       |     r0 = *(0x22d68);
    0x0002296c ldr r2, [pc, 0x3fc]                                       |     r2 = *(0x22d6c);
    0x00022970 add r3, pc, r3                                            |     r3 = pc + r3;
    0x00022974 add r3, r3, 0xc9                                          |     r3 = 0x22e29;
    0x00022978 add r1, pc, r1                                            |     r1 = pc + r1;
    0x0002297c add r0, pc, r0                                            |     r0 = pc + r0;
                                                                         |     do {
                                                                         | label_0:
    0x00022980 bl 0x908c                                                 |         assert ();
                                                                         | label_4:
    0x00022984 ldr r3, [r4, 0x10]                                        |         r3 = *((r4 + 0x10));
    0x00022988 cmp r3, 0                                                 |         
                                                                         |         if (r3 != 0) {
    0x0002298c bne 0x229b4                                               |             goto label_5;
                                                                         |         }
    0x00022990 ldr r3, [pc, 0x3dc]                                       |         
    0x00022994 ldr r1, [pc, 0x3dc]                                       |         r1 = *(0x22d74);
    0x00022998 ldr r0, [pc, 0x3dc]                                       |         r0 = *(0x22d78);
    0x0002299c add r3, pc, r3                                            |         r3 = pc + r3;
    0x000229a0 add r3, r3, 0xc9                                          |         r3 = 0x22e39;
    0x000229a4 ldr r2, [pc, 0x3d4]                                       |         r2 = *(0x22d7c);
    0x000229a8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000229ac add r0, pc, r0                                            |         r0 = pc + r0;
    0x000229b0 b 0x22980                                                 |         
                                                                         |     } while (1);
                                                                         | label_5:
    0x000229b4 ldr r3, [r4, 0x78]                                        |     r3 = *((r4 + 0x78));
    0x000229b8 cmp r3, 1                                                 |     
                                                                         |     if (r3 != 1) {
    0x000229bc beq 0x229e4                                               |         
    0x000229c0 ldr r3, [pc, 0x3bc]                                       |         
    0x000229c4 ldr r1, [pc, 0x3bc]                                       |         r1 = *(0x22d84);
    0x000229c8 ldr r0, [pc, 0x3bc]                                       |         r0 = *(0x22d88);
    0x000229cc add r3, pc, r3                                            |         r3 = pc + r3;
    0x000229d0 add r3, r3, 0xc9                                          |         r3 = 0x22e49;
    0x000229d4 mov r2, 0x410                                             |         r2 = 0x410;
    0x000229d8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000229dc add r0, pc, r0                                            |         r0 = pc + r0;
    0x000229e0 b 0x22980                                                 |         goto label_0;
                                                                         |     }
    0x000229e4 ldr r3, [r4, 0x8c]                                        |     r3 = *((r4 + 0x8c));
    0x000229e8 cmp r3, 1                                                 |     
                                                                         |     if (r3 != 1) {
    0x000229ec beq 0x22a14                                               |         
    0x000229f0 ldr r3, [pc, 0x398]                                       |         
    0x000229f4 ldr r1, [pc, 0x398]                                       |         r1 = *(0x22d90);
    0x000229f8 ldr r0, [pc, 0x398]                                       |         r0 = *(0x22d94);
    0x000229fc add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022a00 add r3, r3, 0xc9                                          |         r3 = 0x22e55;
    0x00022a04 ldr r2, [pc, 0x390]                                       |         r2 = *(0x22d98);
    0x00022a08 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022a0c add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022a10 b 0x22980                                                 |         goto label_0;
                                                                         |     }
    0x00022a14 ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x00022a18 tst r3, 0x400000                                          |     
                                                                         |     if ((r3 & 0x400000) == 0) {
    0x00022a1c bne 0x22a44                                               |         
    0x00022a20 ldr r3, [pc, 0x378]                                       |         
    0x00022a24 ldr r1, [pc, 0x378]                                       |         r1 = *(0x22da0);
    0x00022a28 ldr r0, [pc, 0x378]                                       |         r0 = *(0x22da4);
    0x00022a2c add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022a30 add r3, r3, 0xc9                                          |         r3 = 0x22e65;
    0x00022a34 ldr r2, [pc, 0x370]                                       |         r2 = *(0x22da8);
    0x00022a38 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022a3c add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022a40 b 0x22980                                                 |         goto label_0;
                                                                         |     }
    0x00022a44 tst r3, 0x1000000                                         |     
                                                                         |     if ((r3 & 0x1000000) == 0) {
    0x00022a48 bne 0x22a70                                               |         
    0x00022a4c ldr r3, [pc, 0x35c]                                       |         
    0x00022a50 ldr r1, [pc, 0x35c]                                       |         r1 = *(0x22db0);
    0x00022a54 ldr r0, [pc, 0x35c]                                       |         r0 = *(0x22db4);
    0x00022a58 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022a5c add r3, r3, 0xc9                                          |         r3 = 0x22e75;
    0x00022a60 ldr r2, [pc, 0x354]                                       |         r2 = *(0x22db8);
    0x00022a64 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022a68 add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022a6c b 0x22980                                                 |         goto label_0;
                                                                         |     }
    0x00022a70 ldr r3, [r4]                                              |     r3 = *(r4);
    0x00022a74 cmp r3, 1                                                 |     
                                                                         |     if (r3 != 1) {
    0x00022a78 beq 0x22aa0                                               |         
    0x00022a7c ldr r3, [pc, 0x33c]                                       |         
    0x00022a80 ldr r1, [pc, 0x33c]                                       |         r1 = *(0x22dc0);
    0x00022a84 ldr r0, [pc, 0x33c]                                       |         r0 = *(0x22dc4);
    0x00022a88 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022a8c add r3, r3, 0xc9                                          |         r3 = 0x22e85;
    0x00022a90 ldr r2, [pc, 0x334]                                       |         r2 = *(0x22dc8);
    0x00022a94 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022a98 add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022a9c b 0x22980                                                 |         goto label_0;
                                                                         |     }
    0x00022aa0 ldr r3, [pc, 0x328]                                       |     r3 = *(0x22dcc);
    0x00022aa4 ldr sl, [r7, r3]                                          |     sl = *((r7 + r3));
    0x00022aa8 ldr r3, [sl]                                              |     r3 = *(sl);
    0x00022aac tst r3, 0x200                                             |     
                                                                         |     if ((r3 & 0x200) != 0) {
    0x00022ab0 beq 0x22afc                                               |         
    0x00022ab4 ldr r3, [pc, 0x318]                                       |         r3 = *(0x22dd0);
    0x00022ab8 ldr r3, [r7, r3]                                          |         r3 = *((r7 + r3));
    0x00022abc ldr r5, [r3]                                              |         r5 = *(0x22dd0);
    0x00022ac0 bl 0x8204                                                 |         getpid ();
    0x00022ac4 ldr r3, [pc, 0x30c]                                       |         r3 = *(0x22dd4);
    0x00022ac8 ldr r1, [pc, 0x30c]                                       |         r1 = *(0x22dd8);
    0x00022acc add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022ad0 str r3, [sp]                                              |         *(sp) = r3;
    0x00022ad4 ldr r3, [pc, 0x304]                                       |         r3 = *(0x22ddc);
    0x00022ad8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022adc add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022ae0 mov r2, r0                                                |         r2 = r0;
    0x00022ae4 mov r0, r5                                                |         r0 = r5;
    0x00022ae8 bl 0x8798                                                 |         fprintf (r0, r1, r2, r3)
    0x00022aec ldr r1, [pc, 0x2f0]                                       |         r1 = *(0x22de0);
    0x00022af0 mov r0, r4                                                |         r0 = r4;
    0x00022af4 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022af8 bl 0x2058c                                                |         fcn_0002058c (r0);
                                                                         |     }
    0x00022afc ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x00022b00 tst r3, 0x100000                                          |     
                                                                         |     if ((r3 & 0x100000) == 0) {
    0x00022b04 bne 0x22b14                                               |         
    0x00022b08 ldr r0, [r4, 0x10]                                        |         r0 = *((r4 + 0x10));
    0x00022b0c bl 0x7fe8                                                 |         fcn_00007fe8 ();
    0x00022b10 str r0, [r4, 0x40]                                        |         *((r4 + 0x40)) = r0;
                                                                         |     }
    0x00022b14 mov r0, r4                                                |     r0 = r4;
    0x00022b18 bl 0x872c                                                 |     r0 = fcn_0000872c ();
    0x00022b1c subs r8, r0, 0                                            |     r8 = r0 - 0;
                                                                         |     if (r8 != r0) {
    0x00022b20 bne 0x22b34                                               |         goto label_6;
                                                                         |     }
                                                                         | label_1:
    0x00022b24 ldr r5, [pc, 0x2bc]                                       |     r5 = *(0x22de4);
                                                                         |     do {
    0x00022b28 mov r0, r5                                                |         r0 = r5;
    0x00022b2c add sp, sp, 0x10                                          |         
    0x00022b30 pop {r4, r5, r6, r7, r8, sb, sl, pc}                      |         
                                                                         | label_6:
    0x00022b34 ldr r0, [r4, 0x10]                                        |         r0 = *((r4 + 0x10));
    0x00022b38 bl 0x8de0                                                 |         r0 = fcn_00008de0 ();
    0x00022b3c subs sb, r0, 0                                            |         sb = r0 - 0;
                                                                         |         if (sb == r0) {
    0x00022b40 beq 0x22b7c                                               |             goto label_7;
                                                                         |         }
    0x00022b44 mov r1, 0x2c                                              |         r1 = 0x2c;
    0x00022b48 bl 0x90a4                                                 |         r0 = strchr (r0, r1);
    0x00022b4c subs r1, r0, 0                                            |         r1 = r0 - 0;
                                                                         |         if (r1 == r0) {
    0x00022b50 movne r1, sb                                              |             r1 = sb;
                                                                         |         }
                                                                         |         if (r1 != r0) {
    0x00022b54 bne 0x22c48                                               |             goto label_8;
                                                                         |         }
    0x00022b58 mov r0, r4                                                |         r0 = r4;
    0x00022b5c bl 0x20878                                                |         r0 = fcn_00020878 (r0, r1);
                                                                         | label_2:
    0x00022b60 mov r5, r0                                                |         r5 = r0;
                                                                         | label_3:
    0x00022b64 mov r1, r8                                                |         r1 = r8;
    0x00022b68 mov r0, r4                                                |         r0 = r4;
    0x00022b6c bl 0x85e8                                                 |         r0 = fcn_000085e8 ();
    0x00022b70 cmp r0, 0                                                 |         
    0x00022b74 bne 0x22b28                                               |         
                                                                         |     } while (r0 != 0);
    0x00022b78 b 0x22b24                                                 |     goto label_1;
                                                                         | label_7:
    0x00022b7c ldr r5, [r4, 8]                                           |     r5 = *((r4 + 8));
    0x00022b80 cmp r5, 0                                                 |     
                                                                         |     if (r5 != 0) {
    0x00022b84 moveq r6, r5                                              |         r6 = r5;
                                                                         |     }
                                                                         |     if (r5 != 0) {
    0x00022b88 beq 0x22ba8                                               |         
    0x00022b8c ldr r1, [pc, 0x258]                                       |         r1 = *(0x22de8);
    0x00022b90 mov r2, 2                                                 |         r2 = 2;
    0x00022b94 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022b98 mov r0, r5                                                |         r0 = r5;
    0x00022b9c bl 0x8948                                                 |         r0 = strncmp (r0, r1, r2);
    0x00022ba0 clz r6, r0                                                |         r6 &= r0;
    0x00022ba4 lsr r6, r6, 5                                             |         r6 >>= 5;
                                                                         |     }
    0x00022ba8 ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x00022bac tst r3, 0x400000                                          |     
                                                                         |     if ((r3 & 0x400000) == 0) {
    0x00022bb0 bne 0x22bd8                                               |         
    0x00022bb4 ldr r3, [pc, 0x234]                                       |         
    0x00022bb8 ldr r1, [pc, 0x234]                                       |         r1 = *(0x22df0);
    0x00022bbc ldr r0, [pc, 0x234]                                       |         r0 = *(0x22df4);
    0x00022bc0 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022bc4 add r3, r3, 0xde                                          |         r3 = 0x22eca;
    0x00022bc8 ldr r2, [pc, 0x22c]                                       |         r2 = *(0x22df8);
    0x00022bcc add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022bd0 add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022bd4 b 0x22980                                                 |         goto label_0;
                                                                         |     }
    0x00022bd8 cmp r5, 0                                                 |     
    0x00022bdc ldr r3, [sl]                                              |     r3 = *(sl);
                                                                         |     if (r5 == 0) {
    0x00022be0 eorne r2, r6, 1                                           |         r2 = r6 ^ 1;
                                                                         |     }
                                                                         |     if (r5 != 0) {
    0x00022be4 moveq r2, 0                                               |         r2 = 0;
                                                                         |     }
    0x00022be8 cmp r2, 0                                                 |     
    0x00022bec and r3, r3, 0x200                                         |     r3 &= 0x200;
                                                                         |     if (r2 != 0) {
    0x00022bf0 beq 0x22c54                                               |         
    0x00022bf4 cmp r3, 0                                                 |         
                                                                         |         if (r3 != 0) {
    0x00022bf8 beq 0x22c44                                               |             
    0x00022bfc ldr r3, [pc, 0x1d0]                                       |             r3 = *(0x22dd0);
    0x00022c00 ldr r3, [r7, r3]                                          |             r3 = *((r7 + r3));
    0x00022c04 ldr r6, [r3]                                              |             r6 = *(0x22dd0);
    0x00022c08 bl 0x8204                                                 |             getpid ();
    0x00022c0c ldr r3, [pc, 0x1ec]                                       |             r3 = *(0x22dfc);
    0x00022c10 ldr r1, [pc, 0x1ec]                                       |             r1 = *(0x22e00);
    0x00022c14 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00022c18 str r3, [sp]                                              |             *(sp) = r3;
    0x00022c1c ldr r3, [pc, 0x1e4]                                       |             r3 = *(0x22e04);
    0x00022c20 add r1, pc, r1                                            |             r1 = pc + r1;
    0x00022c24 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00022c28 mov r2, r0                                                |             r2 = r0;
    0x00022c2c mov r0, r6                                                |             r0 = r6;
    0x00022c30 bl 0x8798                                                 |             fprintf (r0, r1, r2, r3)
    0x00022c34 ldr r1, [pc, 0x1d0]                                       |             r1 = *(0x22e08);
    0x00022c38 mov r0, r4                                                |             r0 = r4;
    0x00022c3c add r1, pc, r1                                            |             r1 = pc + r1;
    0x00022c40 bl 0x2058c                                                |             fcn_0002058c (r0);
                                                                         |         }
    0x00022c44 mov r1, r5                                                |         r1 = r5;
                                                                         | label_8:
    0x00022c48 mov r0, r4                                                |         r0 = r4;
    0x00022c4c bl 0x2155c                                                |         fcn_0002155c (r0, r1);
    0x00022c50 b 0x22b60                                                 |         goto label_2;
                                                                         |     }
    0x00022c54 cmp r3, 0                                                 |     
                                                                         |     if (r3 != 0) {
    0x00022c58 beq 0x22ca8                                               |         
    0x00022c5c ldr r3, [pc, 0x170]                                       |         r3 = *(0x22dd0);
    0x00022c60 ldr r3, [r7, r3]                                          |         r3 = *((r7 + r3));
    0x00022c64 ldr r7, [r3]                                              |         r7 = *(0x22dd0);
    0x00022c68 bl 0x8204                                                 |         getpid ();
    0x00022c6c ldr r3, [pc, 0x19c]                                       |         r3 = *(0x22e0c);
    0x00022c70 ldr r1, [pc, 0x19c]                                       |         r1 = *(0x22e10);
    0x00022c74 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022c78 str r3, [sp]                                              |         *(sp) = r3;
    0x00022c7c ldr r3, [pc, 0x194]                                       |         r3 = *(0x22e14);
    0x00022c80 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022c84 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022c88 mov r2, r0                                                |         r2 = r0;
    0x00022c8c mov r0, r7                                                |         r0 = r7;
    0x00022c90 bl 0x8798                                                 |         fprintf (r0, r1, r2, r3)
    0x00022c94 ldr r1, [pc, 0x180]                                       |         r1 = *(0x22e18);
    0x00022c98 mov r2, r5                                                |         r2 = r5;
    0x00022c9c add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022ca0 mov r0, r4                                                |         r0 = r4;
    0x00022ca4 bl 0x2058c                                                |         fcn_0002058c (r0);
                                                                         |     }
    0x00022ca8 mov r0, r4                                                |     r0 = r4;
    0x00022cac bl 0x8258                                                 |     r0 = fcn_00008258 ();
    0x00022cb0 subs r7, r0, 0                                            |     r7 = r0 - 0;
    0x00022cb4 bne 0x22cc0                                               |     
                                                                         |     while (r0 == 0) {
    0x00022cb8 ldr r5, [pc, 0x128]                                       |         r5 = *(0x22de4);
    0x00022cbc b 0x22b64                                                 |         goto label_3;
    0x00022cc0 cmp r6, 0                                                 |         
                                                                         |         if (r6 == 0) {
    0x00022cc4 movne r1, r5                                              |             r1 = r5;
                                                                         |         }
                                                                         |         if (r6 != 0) {
    0x00022cc8 moveq r1, sb                                              |             r1 = sb;
                                                                         |         }
    0x00022ccc add r0, sp, 0xc                                           |         r0 += var_ch;
    0x00022cd0 bl 0x19294                                                |         fcn_00019294 (r0, r1);
    0x00022cd4 mov r1, r7                                                |         r1 = r7;
    0x00022cd8 mov r5, r0                                                |         r5 = r0;
    0x00022cdc mov r0, r4                                                |         r0 = r4;
    0x00022ce0 bl 0x85e8                                                 |         r0 = fcn_000085e8 ();
    0x00022ce4 cmp r0, 0                                                 |         
    0x00022ce8 beq 0x22cb8                                               |         
                                                                         |     }
    0x00022cec cmp r5, 0                                                 |     
                                                                         |     if (r5 != 0) {
    0x00022cf0 bne 0x22b64                                               |         goto label_3;
                                                                         |     }
    0x00022cf4 ldr r6, [sp, 0xc]                                         |     r6 = var_ch;
    0x00022cf8 cmp r6, 0                                                 |     
                                                                         |     if (r6 == 0) {
    0x00022cfc subne r6, r6, 4                                           |         r6 -= 4;
                                                                         |     }
                                                                         |     if (r6 != 0) {
    0x00022d00 bne 0x22d48                                               |         goto label_9;
                                                                         |     }
    0x00022d04 ldr r5, [pc, 0x114]                                       |     r5 = *(0x22e1c);
    0x00022d08 b 0x22b64                                                 |     goto label_3;
                                                                         |     do {
    0x00022d0c mov r0, r4                                                |         r0 = r4;
    0x00022d10 bl 0x20878                                                |         r0 = fcn_00020878 (r0, r1);
    0x00022d14 mov r5, r0                                                |         r5 = r0;
    0x00022d18 mov r0, r4                                                |         r0 = r4;
    0x00022d1c bl 0x8198                                                 |         r0 = fcn_00008198 ();
    0x00022d20 cmp r0, 0                                                 |         
                                                                         |         if (r0 != 0) {
    0x00022d24 bne 0x22d54                                               |             goto label_10;
                                                                         |         }
    0x00022d28 mov r0, r4                                                |         r0 = r4;
    0x00022d2c bl 0x81b0                                                 |         r0 = fcn_000081b0 ();
    0x00022d30 cmp r0, 0x16                                              |         
                                                                         |         if (r0 != 0x16) {
    0x00022d34 beq 0x22d48                                               |             
    0x00022d38 mov r0, r4                                                |             r0 = r4;
    0x00022d3c bl 0x81b0                                                 |             r0 = fcn_000081b0 ();
    0x00022d40 cmp r0, 0x13                                              |             
                                                                         |             if (r0 != 0x13) {
    0x00022d44 bne 0x22d54                                               |                 goto label_10;
                                                                         |             }
                                                                         |         }
                                                                         | label_9:
    0x00022d48 ldr r1, [r6, 4]!                                          |         r1 = *((r6 += 4));
    0x00022d4c cmp r1, 0                                                 |         
    0x00022d50 bne 0x22d0c                                               |         
                                                                         |     } while (r1 != 0);
                                                                         | label_10:
    0x00022d54 ldr r0, [sp, 0xc]                                         |     r0 = var_ch;
    0x00022d58 bl 0x19008                                                |     fcn_00019008 (r0);
    0x00022d5c b 0x22b64                                                 |     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/lib/libmount.so.1.1.0 @ 0x2596c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_do_umount ()                     | void mnt_context_do_umount (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     void * ptr;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_30h_2;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_0h_3;
                                                             |     r0 = arg1;
    0x0002596c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00025970 ldr r6, [pc, 0xce4]                           |     r6 = *(0x26658);
    0x00025974 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00025978 add r6, pc, r6                                |     r6 = pc + r6;
    0x0002597c sub sp, sp, 0x4c                              |     
                                                             |     if (r4 != r0) {
    0x00025980 bne 0x259a8                                   |         goto label_14;
                                                             |     }
    0x00025984 ldr r3, [pc, 0xcd4]                           |     
    0x00025988 ldr r1, [pc, 0xcd4]                           |     r1 = *(0x26660);
    0x0002598c ldr r0, [pc, 0xcd4]                           |     r0 = *(0x26664);
    0x00025990 add r3, pc, r3                                |     r3 = pc + r3;
    0x00025994 add r3, r3, 0x5b                              |     r3 = 0x266b7;
    0x00025998 mov r2, 0x384                                 |     r2 = 0x384;
    0x0002599c add r1, pc, r1                                |     r1 = pc + r1;
    0x000259a0 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_0:
    0x000259a4 bl 0x908c                                     |         assert ();
                                                             | label_14:
    0x000259a8 ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x000259ac cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000259b0 bne 0x259d8                                   |             goto label_15;
                                                             |         }
    0x000259b4 ldr r3, [pc, 0xcb0]                           |         
    0x000259b8 ldr r1, [pc, 0xcb0]                           |         r1 = *(0x2666c);
    0x000259bc ldr r0, [pc, 0xcb0]                           |         r0 = *(0x26670);
    0x000259c0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000259c4 add r3, r3, 0x5b                              |         r3 = 0x266c3;
    0x000259c8 ldr r2, [pc, 0xca8]                           |         r2 = *(0x26674);
    0x000259cc add r1, pc, r1                                |         r1 = pc + r1;
    0x000259d0 add r0, pc, r0                                |         r0 = pc + r0;
    0x000259d4 b 0x259a4                                     |         
                                                             |     } while (1);
                                                             | label_15:
    0x000259d8 ldr r3, [r4, 0x78]                            |     r3 = *((r4 + 0x78));
    0x000259dc cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x000259e0 beq 0x25a08                                   |         
    0x000259e4 ldr r3, [pc, 0xc90]                           |         
    0x000259e8 ldr r1, [pc, 0xc90]                           |         r1 = *(0x2667c);
    0x000259ec ldr r0, [pc, 0xc90]                           |         r0 = *(0x26680);
    0x000259f0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000259f4 add r3, r3, 0x5b                              |         r3 = 0x266d3;
    0x000259f8 ldr r2, [pc, 0xc88]                           |         r2 = *(0x26684);
    0x000259fc add r1, pc, r1                                |         r1 = pc + r1;
    0x00025a00 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025a04 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025a08 ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x00025a0c cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x00025a10 beq 0x25a38                                   |         
    0x00025a14 ldr r3, [pc, 0xc70]                           |         
    0x00025a18 ldr r1, [pc, 0xc70]                           |         r1 = *(0x2668c);
    0x00025a1c ldr r0, [pc, 0xc70]                           |         r0 = *(0x26690);
    0x00025a20 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025a24 add r3, r3, 0x5b                              |         r3 = 0x266e3;
    0x00025a28 ldr r2, [pc, 0xc68]                           |         r2 = *(0x26694);
    0x00025a2c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025a30 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025a34 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025a38 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00025a3c tst r3, 0x1000000                             |     
                                                             |     if ((r3 & 0x1000000) == 0) {
    0x00025a40 bne 0x25a68                                   |         
    0x00025a44 ldr r3, [pc, 0xc50]                           |         
    0x00025a48 ldr r1, [pc, 0xc50]                           |         r1 = *(0x2669c);
    0x00025a4c ldr r0, [pc, 0xc50]                           |         r0 = *(0x266a0);
    0x00025a50 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025a54 add r3, r3, 0x5b                              |         r3 = 0x266f3;
    0x00025a58 mov r2, 0x388                                 |         r2 = 0x388;
    0x00025a5c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025a60 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025a64 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025a68 ldr sb, [r4]                                  |     sb = *(r4);
    0x00025a6c cmp sb, 2                                     |     
                                                             |     if (sb != 2) {
    0x00025a70 beq 0x25a98                                   |         
    0x00025a74 ldr r3, [pc, 0xc2c]                           |         
    0x00025a78 ldr r1, [pc, 0xc2c]                           |         r1 = *(0x266a8);
    0x00025a7c ldr r0, [pc, 0xc2c]                           |         r0 = *(0x266ac);
    0x00025a80 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025a84 add r3, r3, 0x5b                              |         r3 = 0x266ff;
    0x00025a88 ldr r2, [pc, 0xc24]                           |         r2 = *(0x266b0);
    0x00025a8c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025a90 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025a94 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025a98 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x00025a9c bne 0x25ac4                                   |         
    0x00025aa0 ldr r3, [pc, 0xc10]                           |         
    0x00025aa4 ldr r1, [pc, 0xc10]                           |         r1 = *(0x266b8);
    0x00025aa8 ldr r0, [pc, 0xc10]                           |         r0 = *(0x266bc);
    0x00025aac add r3, pc, r3                                |         r3 = pc + r3;
    0x00025ab0 add r3, r3, 0x5b                              |         r3 = 0x2670f;
    0x00025ab4 ldr r2, [pc, 0xc08]                           |         r2 = *(0x266c0);
    0x00025ab8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00025abc add r0, pc, r0                                |         r0 = pc + r0;
    0x00025ac0 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025ac4 bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x00025ac8 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl == r0) {
    0x00025acc bne 0x25ae0                                   |         
                                                             | label_7:
    0x00025ad0 ldr r5, [pc, 0xbf0]                           |         r5 = *(0x266c4);
                                                             | label_6:
    0x00025ad4 mov r0, r5                                    |         r0 = r5;
    0x00025ad8 add sp, sp, 0x4c                              |         
    0x00025adc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00025ae0 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00025ae4 mov r3, 0                                     |     r3 = 0;
    0x00025ae8 cmp r0, r3                                    |     
    0x00025aec str r3, [sp, 0x10]                            |     ptr = r3;
                                                             |     if (r0 == r3) {
    0x00025af0 bne 0x25b18                                   |         
    0x00025af4 ldr r3, [pc, 0xbd0]                           |         
    0x00025af8 ldr r1, [pc, 0xbd0]                           |         r1 = *(0x266cc);
    0x00025afc ldr r0, [pc, 0xbd0]                           |         r0 = *(0x266d0);
    0x00025b00 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025b04 add r3, r3, 0x71                              |         r3 = 0x26739;
    0x00025b08 ldr r2, [pc, 0xbc8]                           |         r2 = *(0x266d4);
    0x00025b0c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025b10 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025b14 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025b18 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00025b1c tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x00025b20 bne 0x25b48                                   |         
    0x00025b24 ldr r3, [pc, 0xbb0]                           |         
    0x00025b28 ldr r1, [pc, 0xbb0]                           |         r1 = *(0x266dc);
    0x00025b2c ldr r0, [pc, 0xbb0]                           |         r0 = *(0x266e0);
    0x00025b30 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025b34 add r3, r3, 0x71                              |         r3 = 0x26749;
    0x00025b38 mov r2, 0x2cc                                 |         r2 = 0x2cc;
    0x00025b3c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025b40 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025b44 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025b48 ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x00025b4c cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x00025b50 beq 0x25b78                                   |         
    0x00025b54 ldr r3, [pc, 0xb8c]                           |         
    0x00025b58 ldr r1, [pc, 0xb8c]                           |         r1 = *(0x266e8);
    0x00025b5c ldr r0, [pc, 0xb8c]                           |         r0 = *(0x266ec);
    0x00025b60 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025b64 add r3, r3, 0x71                              |         r3 = 0x26755;
    0x00025b68 ldr r2, [pc, 0xb84]                           |         r2 = *(0x266f0);
    0x00025b6c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025b70 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025b74 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025b78 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x00025b7c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00025b80 beq 0x26138                                   |         goto label_16;
                                                             |     }
    0x00025b84 mov r3, 0                                     |     r3 = 0;
    0x00025b88 mov r0, r4                                    |     r0 = r4;
    0x00025b8c str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00025b90 bl 0x84bc                                     |     fcn_000084bc ();
    0x00025b94 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00025b98 cmp r3, 0                                     |     
    0x00025b9c mov r7, r0                                    |     r7 = r0;
                                                             |     if (r3 == 0) {
    0x00025ba0 bne 0x25bc8                                   |         
    0x00025ba4 ldr r3, [pc, 0xb4c]                           |         
    0x00025ba8 ldr r1, [pc, 0xb4c]                           |         r1 = *(0x266f8);
    0x00025bac ldr r0, [pc, 0xb4c]                           |         r0 = *(0x266fc);
    0x00025bb0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025bb4 add r3, r3, 0x7b                              |         r3 = 0x2676f;
    0x00025bb8 ldr r2, [pc, 0xb44]                           |         r2 = *(0x26700);
    0x00025bbc add r1, pc, r1                                |         r1 = pc + r1;
    0x00025bc0 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025bc4 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025bc8 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x00025bcc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00025bd0 bne 0x25bf8                                   |         
    0x00025bd4 ldr r3, [pc, 0xb2c]                           |         
    0x00025bd8 ldr r1, [pc, 0xb2c]                           |         r1 = *(0x26708);
    0x00025bdc ldr r0, [pc, 0xb2c]                           |         r0 = *(0x2670c);
    0x00025be0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025be4 add r3, r3, 0x7b                              |         r3 = 0x2677f;
    0x00025be8 mov r2, 0x228                                 |         r2 = 0x228;
    0x00025bec add r1, pc, r1                                |         r1 = pc + r1;
    0x00025bf0 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025bf4 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025bf8 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00025bfc tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x00025c00 bne 0x25c28                                   |         
    0x00025c04 ldr r3, [pc, 0xb08]                           |         
    0x00025c08 ldr r1, [pc, 0xb08]                           |         r1 = *(0x26714);
    0x00025c0c ldr r0, [pc, 0xb08]                           |         r0 = *(0x26718);
    0x00025c10 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025c14 add r3, r3, 0x7b                              |         r3 = 0x2678b;
    0x00025c18 ldr r2, [pc, 0xb00]                           |         r2 = *(0x2671c);
    0x00025c1c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025c20 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025c24 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025c28 ldr r3, [r4, 0x78]                            |     r3 = *((r4 + 0x78));
    0x00025c2c cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x00025c30 beq 0x25c58                                   |         
    0x00025c34 ldr r3, [pc, 0xae8]                           |         
    0x00025c38 ldr r1, [pc, 0xae8]                           |         r1 = *(0x26724);
    0x00025c3c ldr r0, [pc, 0xae8]                           |         r0 = *(0x26728);
    0x00025c40 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025c44 add r3, r3, 0x7b                              |         r3 = 0x2679b;
    0x00025c48 ldr r2, [pc, 0xae0]                           |         r2 = *(0x2672c);
    0x00025c4c add r1, pc, r1                                |         r1 = pc + r1;
    0x00025c50 add r0, pc, r0                                |         r0 = pc + r0;
    0x00025c54 b 0x259a4                                     |         goto label_0;
                                                             |     }
    0x00025c58 mov r0, r4                                    |     r0 = r4;
    0x00025c5c bl 0x83c0                                     |     r0 = fcn_000083c0 ();
    0x00025c60 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x00025c64 beq 0x25ce4                                   |         
    0x00025c68 ldr r3, [pc, 0xac4]                           |         
    0x00025c6c ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00025c70 ldr r3, [r3]                                  |         r3 = *(0x26730);
    0x00025c74 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00025c78 beq 0x25cc4                                   |             
    0x00025c7c ldr r3, [pc, 0xab4]                           |             r3 = *(0x26734);
    0x00025c80 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00025c84 ldr r5, [r3]                                  |             r5 = *(0x26734);
    0x00025c88 bl 0x8204                                     |             getpid ();
    0x00025c8c ldr r3, [pc, 0xaa8]                           |             r3 = *(0x26738);
    0x00025c90 ldr r1, [pc, 0xaa8]                           |             r1 = *(0x2673c);
    0x00025c94 add r3, pc, r3                                |             r3 = pc + r3;
    0x00025c98 str r3, [sp]                                  |             *(sp) = r3;
    0x00025c9c ldr r3, [pc, 0xaa0]                           |             r3 = *(0x26740);
    0x00025ca0 add r1, pc, r1                                |             r1 = pc + r1;
    0x00025ca4 add r3, pc, r3                                |             r3 = pc + r3;
    0x00025ca8 mov r2, r0                                    |             r2 = r0;
    0x00025cac mov r0, r5                                    |             r0 = r5;
    0x00025cb0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00025cb4 ldr r1, [pc, 0xa8c]                           |             r1 = *(0x26744);
    0x00025cb8 mov r0, r4                                    |             r0 = r4;
    0x00025cbc add r1, pc, r1                                |             r1 = pc + r1;
    0x00025cc0 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
    0x00025cc4 mov r3, 0                                     |         r3 = 0;
    0x00025cc8 str r3, [r4, 0x78]                            |         *((r4 + 0x78)) = r3;
                                                             | label_3:
    0x00025ccc mov r0, r4                                    |         r0 = r4;
    0x00025cd0 bl 0x8198                                     |         r0 = fcn_00008198 ();
    0x00025cd4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00025cd8 bne 0x26544                                   |             goto label_17;
                                                             |         }
                                                             | label_10:
    0x00025cdc mov r5, 0                                     |         r5 = 0;
    0x00025ce0 b 0x2623c                                     |         goto label_11;
                                                             |     }
    0x00025ce4 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00025ce8 cmn r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x00025cec beq 0x25d18                                   |         
    0x00025cf0 bl 0x8204                                     |         getpid ();
    0x00025cf4 ldr r1, [pc, 0xa50]                           |         r1 = *(0x26748);
    0x00025cf8 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00025cfc add r1, pc, r1                                |         r1 = pc + r1;
    0x00025d00 mov r2, r0                                    |         r2 = r0;
    0x00025d04 add r0, sp, 0x14                              |         r0 += var_14h;
    0x00025d08 bl 0x8d80                                     |         r0 = asprintf ();
    0x00025d0c cmn r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00025d10 mvneq r5, 0xb                                 |             r5 = ~0xb;
                                                             |         }
                                                             |         if (r0 == 1) {
    0x00025d14 beq 0x2623c                                   |             goto label_11;
                                                             |         }
                                                             |     }
    0x00025d18 ldr r3, [pc, 0xa14]                           |     r3 = *(0x26730);
    0x00025d1c ldr r7, [r6, r3]                              |     r7 = *((r6 + r3));
    0x00025d20 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00025d24 bics r3, r3, 2                                |     __asm ("bics r3, r3, 2");
                                                             |     if (r0 != 1) {
    0x00025d28 beq 0x25d3c                                   |         
    0x00025d2c ldr r3, [pc, 0xa04]                           |         r3 = *(0x26734);
    0x00025d30 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00025d34 ldr r0, [r3]                                  |         r0 = *(0x26734);
    0x00025d38 bl 0x84f8                                     |         r0 = fflush (r0);
                                                             |     }
    0x00025d3c bl 0x8a68                                     |     r0 = fork ();
    0x00025d40 cmn r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00025d44 beq 0x260d0                                   |         goto label_18;
                                                             |     }
    0x00025d48 cmp r0, 0                                     |     
    0x00025d4c add r8, sp, 0x18                              |     r8 += var_18h;
                                                             |     if (r0 != 0) {
    0x00025d50 bne 0x25ffc                                   |         goto label_19;
                                                             |     }
    0x00025d54 bl 0x7f7c                                     |     getgid ();
    0x00025d58 bl 0x88dc                                     |     r0 = setgid ();
    0x00025d5c cmp r0, 0                                     |     
    0x00025d60 bge 0x25d6c                                   |     
                                                             |     while (r0 < 0) {
                                                             | label_1:
    0x00025d64 mov r0, 1                                     |         r0 = 1;
    0x00025d68 bl 0x9038                                     |         r0 = exit (r0);
    0x00025d6c bl 0x8378                                     |         getuid ();
    0x00025d70 bl 0x9134                                     |         r0 = setuid ();
    0x00025d74 cmp r0, 0                                     |         
    0x00025d78 blt 0x25d64                                   |         
                                                             |     }
    0x00025d7c mov r0, r4                                    |     r0 = r4;
    0x00025d80 bl 0x8258                                     |     r0 = fcn_00008258 ();
    0x00025d84 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00025d88 beq 0x25d64                                   |         goto label_1;
                                                             |     }
    0x00025d8c ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00025d90 bl 0x8de0                                     |     fcn_00008de0 ();
    0x00025d94 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x00025d98 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00025d9c mov fp, r0                                    |     
    0x00025da0 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00025da4 bl 0x81d4                                     |     fcn_000081d4 ();
    0x00025da8 str r0, [sp, 0x1c]                            |     var_1ch = r0;
    0x00025dac mov r0, r4                                    |     r0 = r4;
    0x00025db0 bl 0x88c4                                     |     r0 = fcn_000088c4 ();
    0x00025db4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00025db8 ldrne r3, [pc, 0x990]                         |         r3 = *((pc + 0x990));
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00025dbc movne sb, 3                                   |         sb = 3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00025dc0 addne r3, pc, r3                              |         r3 = pc + r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00025dc4 strne r3, [sp, 0x20]                          |         var_20h = r3;
                                                             |     }
    0x00025dc8 mov r0, r4                                    |     r0 = r4;
    0x00025dcc bl 0x8684                                     |     r0 = fcn_00008684 ();
    0x00025dd0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025dd4 beq 0x25df0                                   |         
    0x00025dd8 ldr r2, [pc, 0x974]                           |         r2 = *(0x26750);
    0x00025ddc add r3, sp, 0x48                              |         r3 += var_48h;
    0x00025de0 add r3, r3, sb, lsl 2                         |         r3 += (sb << 2);
    0x00025de4 add r2, pc, r2                                |         r2 = pc + r2;
    0x00025de8 add sb, sb, 1                                 |         sb++;
    0x00025dec str r2, [r3, -0x30]                           |         var_30h = r2;
                                                             |     }
    0x00025df0 mov r0, r4                                    |     r0 = r4;
    0x00025df4 bl 0x8360                                     |     r0 = fcn_00008360 ();
    0x00025df8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025dfc beq 0x25e18                                   |         
    0x00025e00 ldr r2, [pc, 0x950]                           |         r2 = *(0x26754);
    0x00025e04 add r3, sp, 0x48                              |         r3 += var_48h;
    0x00025e08 add r3, r3, sb, lsl 2                         |         r3 += (sb << 2);
    0x00025e0c add r2, pc, r2                                |         r2 = pc + r2;
    0x00025e10 add sb, sb, 1                                 |         sb++;
    0x00025e14 str r2, [r3, -0x30]                           |         var_30h = r2;
                                                             |     }
    0x00025e18 mov r0, r4                                    |     r0 = r4;
    0x00025e1c bl 0x9074                                     |     r0 = fcn_00009074 ();
    0x00025e20 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025e24 beq 0x25e40                                   |         
    0x00025e28 ldr r2, [pc, 0x92c]                           |         r2 = *(0x26758);
    0x00025e2c add r3, sp, 0x48                              |         r3 += var_48h;
    0x00025e30 add r3, r3, sb, lsl 2                         |         r3 += (sb << 2);
    0x00025e34 add r2, pc, r2                                |         r2 = pc + r2;
    0x00025e38 add sb, sb, 1                                 |         sb++;
    0x00025e3c str r2, [r3, -0x30]                           |         var_30h = r2;
                                                             |     }
    0x00025e40 mov r0, r4                                    |     r0 = r4;
    0x00025e44 bl 0x84e0                                     |     r0 = fcn_000084e0 ();
    0x00025e48 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025e4c beq 0x25e68                                   |         
    0x00025e50 ldr r2, [pc, 0x908]                           |         r2 = mnt_context_enable_rwonly_mount;
    0x00025e54 add r3, sp, 0x48                              |         r3 += var_48h;
    0x00025e58 add r3, r3, sb, lsl 2                         |         r3 += (sb << 2);
    0x00025e5c add r2, pc, r2                                |         r2 = pc + r2;
    0x00025e60 add sb, sb, 1                                 |         sb++;
    0x00025e64 str r2, [r3, -0x30]                           |         var_30h = r2;
                                                             |     }
    0x00025e68 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x00025e6c beq 0x25f14                                   |         goto label_20;
                                                             |     }
    0x00025e70 mov r1, 0x2e                                  |     r1 = 0x2e;
    0x00025e74 mov r0, fp                                    |     r0 = fp;
    0x00025e78 bl 0x90a4                                     |     r0 = strchr (r0, r1);
    0x00025e7c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00025e80 beq 0x25f14                                   |         goto label_20;
                                                             |     }
    0x00025e84 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x00025e88 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00025e8c moveq sl, r3                                  |         sl = r3;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00025e90 beq 0x25ea8                                   |         
    0x00025e94 mov r0, r3                                    |         r0 = r3;
    0x00025e98 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00025e9c bl 0x905c                                     |         strlen (r0);
    0x00025ea0 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00025ea4 mov sl, r0                                    |         sl = r0;
                                                             |     }
    0x00025ea8 mov r0, fp                                    |     r0 = fp;
    0x00025eac str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00025eb0 bl 0x905c                                     |     strlen (r0);
    0x00025eb4 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00025eb8 subs r2, r0, 0                                |     r2 = r0 - 0;
                                                             |     if (r2 != r0) {
    0x00025ebc bne 0x25ef4                                   |         goto label_21;
                                                             |     }
    0x00025ec0 cmn r3, sl                                    |     
                                                             |     if (r3 != sl) {
    0x00025ec4 bne 0x25f14                                   |         goto label_20;
                                                             |     }
                                                             |     do {
                                                             | label_2:
    0x00025ec8 ldr r1, [pc, 0x894]                           |         r1 = *(0x26760);
    0x00025ecc add r2, sp, 0x48                              |         r2 += var_48h;
    0x00025ed0 add r2, r2, sb, lsl 2                         |         r2 += (sb << 2);
    0x00025ed4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00025ed8 add r3, sb, 1                                 |         r3 = sb + 1;
    0x00025edc str r1, [r2, -0x30]                           |         var_30h = r1;
    0x00025ee0 add r2, sp, 0x48                              |         r2 += var_48h;
    0x00025ee4 add r3, r2, r3, lsl 2                         |         r3 = r2 + (r3 << 2);
    0x00025ee8 add sb, sb, 2                                 |         sb += 2;
    0x00025eec str fp, [r3, -0x30]                           |         var_30h_2 = fp;
    0x00025ef0 b 0x25f14                                     |         goto label_20;
                                                             | label_21:
    0x00025ef4 cmp r2, sl                                    |         
    0x00025ef8 bhi 0x25ec8                                   |         
                                                             |     } while (r2 > sl);
    0x00025efc sub sl, sl, r2                                |     sl -= r2;
    0x00025f00 mov r1, fp                                    |     r1 = fp;
    0x00025f04 add r0, r3, sl                                |     r0 = r3 + sl;
    0x00025f08 bl 0x8a2c                                     |     r0 = memcmp (r0, r1, r2);
    0x00025f0c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025f10 bne 0x25ec8                                   |         goto label_2;
                                                             |     }
                                                             | label_20:
    0x00025f14 ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x00025f18 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00025f1c beq 0x25f48                                   |         
    0x00025f20 ldr r0, [pc, 0x840]                           |         r0 = *(0x26764);
    0x00025f24 add r1, sp, 0x48                              |         r1 += var_48h;
    0x00025f28 add r1, r1, sb, lsl 2                         |         r1 += (sb << 2);
    0x00025f2c add r0, pc, r0                                |         r0 = pc + r0;
    0x00025f30 add r3, sb, 1                                 |         r3 = sb + 1;
    0x00025f34 str r0, [r1, -0x30]                           |         var_30h = r0;
    0x00025f38 add r1, sp, 0x48                              |         r1 += var_48h;
    0x00025f3c add r3, r1, r3, lsl 2                         |         r3 = r1 + (r3 << 2);
    0x00025f40 add sb, sb, 2                                 |         sb += 2;
    0x00025f44 str r2, [r3, -0x30]                           |         var_30h_2 = r2;
                                                             |     }
    0x00025f48 add r3, sp, 0x48                              |     r3 += var_48h;
    0x00025f4c add sb, r3, sb, lsl 2                         |     sb = r3 + (sb << 2);
    0x00025f50 mov r3, 0                                     |     r3 = 0;
    0x00025f54 str r3, [sb, -0x30]                           |     var_30h = r3;
    0x00025f58 ldr sl, [pc, 0x80c]                           |     sl = *(0x26768);
    0x00025f5c ldr r3, [pc, 0x80c]                           |     r3 = *(0x2676c);
    0x00025f60 ldr sb, [pc, 0x80c]                           |     sb = *(0x00026774);
    0x00025f64 add r3, pc, r3                                |     r3 = pc + r3;
    0x00025f68 add sb, pc, sb                                |     sb = pc + sb;
    0x00025f6c add sl, pc, sl                                |     sl = pc + sl;
    0x00025f70 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     do {
    0x00025f74 ldr r2, [r8, r5, lsl 2]                       |         offset_0 = r5 << 2;
                                                             |         r2 = *((r8 + offset_0));
    0x00025f78 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00025f7c cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00025f80 bne 0x25fac                                   |             
    0x00025f84 bics r3, r3, 2                                |             __asm ("bics r3, r3, 2");
                                                             |             if (r2 != 0) {
    0x00025f88 beq 0x25f9c                                   |                 
    0x00025f8c ldr r3, [pc, 0x7a4]                           |                 r3 = *(0x26734);
    0x00025f90 ldr r3, [r6, r3]                              |                 r3 = *((r6 + r3));
    0x00025f94 ldr r0, [r3]                                  |                 r0 = *(0x26734);
    0x00025f98 bl 0x84f8                                     |                 fflush (r0);
                                                             |             }
    0x00025f9c mov r1, r8                                    |             r1 = r8;
    0x00025fa0 ldr r0, [r4, 0x70]                            |             r0 = *((r4 + 0x70));
    0x00025fa4 bl 0x8a80                                     |             execv ();
    0x00025fa8 b 0x25d64                                     |             goto label_1;
                                                             |         }
    0x00025fac tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00025fb0 beq 0x25ff4                                   |             
    0x00025fb4 ldr r3, [pc, 0x77c]                           |             r3 = *(0x26734);
    0x00025fb8 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00025fbc ldr fp, [r3]                                  |             fp = *(0x26734);
    0x00025fc0 bl 0x8204                                     |             getpid ();
    0x00025fc4 ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x00025fc8 mov r1, sb                                    |             r1 = sb;
    0x00025fcc str sl, [sp]                                  |             *(sp) = sl;
    0x00025fd0 mov r2, r0                                    |             r2 = r0;
    0x00025fd4 mov r0, fp                                    |             r0 = fp;
    0x00025fd8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00025fdc ldr r1, [pc, 0x794]                           |             r1 = *(0x26774);
    0x00025fe0 ldr r3, [r8, r5, lsl 2]                       |             offset_1 = r5 << 2;
                                                             |             r3 = *((r8 + offset_1));
    0x00025fe4 mov r2, r5                                    |             r2 = r5;
    0x00025fe8 add r1, pc, r1                                |             r1 = pc + r1;
    0x00025fec mov r0, r4                                    |             r0 = r4;
    0x00025ff0 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
    0x00025ff4 add r5, r5, 1                                 |         r5++;
    0x00025ff8 b 0x25f74                                     |         
                                                             |     } while (1);
                                                             | label_19:
    0x00025ffc mov r2, 0                                     |     r2 = 0;
    0x00026000 mov r1, r8                                    |     r1 = r8;
    0x00026004 bl 0x7ee0                                     |     r0 = waitpid ();
    0x00026008 cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x0002600c bne 0x260a0                                   |         goto label_22;
                                                             |     }
    0x00026010 str r0, [r4, 0x74]                            |     *((r4 + 0x74)) = r0;
    0x00026014 bl 0x8f6c                                     |     r0 = errno_location ();
    0x00026018 ldr r5, [r0]                                  |     r5 = *(r0);
    0x0002601c rsb r5, r5, 0                                 |     r5 -= ;
                                                             |     do {
    0x00026020 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00026024 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00026028 beq 0x26094                                   |             
    0x0002602c ldr r3, [pc, 0x704]                           |             r3 = *(0x26734);
    0x00026030 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00026034 ldr r6, [r3]                                  |             r6 = *(0x26734);
    0x00026038 bl 0x8204                                     |             getpid ();
    0x0002603c ldr r3, [pc, 0x738]                           |             r3 = *(0x26778);
    0x00026040 ldr r1, [pc, 0x738]                           |             r1 = *(0x2677c);
    0x00026044 add r3, pc, r3                                |             r3 = pc + r3;
    0x00026048 str r3, [sp]                                  |             *(sp) = r3;
    0x0002604c ldr r3, [pc, 0x730]                           |             r3 = *(0x26780);
    0x00026050 add r1, pc, r1                                |             r1 = pc + r1;
    0x00026054 add r3, pc, r3                                |             r3 = pc + r3;
    0x00026058 mov r2, r0                                    |             r2 = r0;
    0x0002605c mov r0, r6                                    |             r0 = r6;
    0x00026060 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00026064 cmp r5, 0                                     |             
    0x00026068 ldr r2, [r4, 0x70]                            |             r2 = *((r4 + 0x70));
    0x0002606c ldr r3, [r4, 0x74]                            |             r3 = *((r4 + 0x74));
                                                             |             if (r5 == 0) {
    0x00026070 beq 0x260c4                                   |                 goto label_23;
                                                             |             }
    0x00026074 ldr r1, [pc, 0x70c]                           |             r1 = *(0x26784);
    0x00026078 add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_4:
    0x0002607c str r1, [sp, 4]                               |             var_4h = r1;
    0x00026080 ldr r1, [pc, 0x704]                           |             r1 = *(0x26788);
    0x00026084 str r5, [sp]                                  |             *(sp) = r5;
    0x00026088 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002608c mov r0, r4                                    |             r0 = r4;
    0x00026090 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
                                                             | label_5:
    0x00026094 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00026098 bne 0x2623c                                   |             goto label_11;
                                                             |         }
    0x0002609c b 0x25ccc                                     |         goto label_3;
                                                             | label_22:
    0x000260a0 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x000260a4 tst r3, 0x7f                                  |         
    0x000260a8 asreq r3, r3, 8                               |         __asm ("asreq r3, r3, 8");
                                                             |         if ((r3 & 0x7f) != 0) {
    0x000260ac andeq r3, r3, 0xff                            |             r3 &= 0xff;
                                                             |         }
                                                             |         if ((r3 & 0x7f) == 0) {
    0x000260b0 mvnne r3, 0                                   |             r3 = ~0;
                                                             |         }
    0x000260b4 str r3, [r4, 0x74]                            |         *((r4 + 0x74)) = r3;
    0x000260b8 mov r3, 0                                     |         r3 = 0;
    0x000260bc str r3, [r4, 0x78]                            |         *((r4 + 0x78)) = r3;
    0x000260c0 b 0x26020                                     |         
                                                             |     } while (1);
                                                             | label_23:
    0x000260c4 ldr r1, [pc, 0x6c4]                           |     r1 = *(0x2678c);
    0x000260c8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000260cc b 0x2607c                                     |     goto label_4;
                                                             | label_18:
    0x000260d0 bl 0x8f6c                                     |     errno_location ();
    0x000260d4 ldr r3, [r7]                                  |     r3 = *(r7);
    0x000260d8 tst r3, 0x200                                 |     
    0x000260dc ldr r5, [r0]                                  |     r5 = *(r0);
    0x000260e0 rsb r5, r5, 0                                 |     r5 -= ;
    0x000260e4 str r5, [r4, 0x78]                            |     *((r4 + 0x78)) = r5;
                                                             |     if ((r3 & 0x200) == 0) {
    0x000260e8 beq 0x26094                                   |         goto label_5;
                                                             |     }
    0x000260ec ldr r3, [pc, 0x644]                           |     r3 = *(0x26734);
    0x000260f0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000260f4 ldr r6, [r3]                                  |     r6 = *(0x26734);
    0x000260f8 bl 0x8204                                     |     getpid ();
    0x000260fc ldr r3, [pc, 0x690]                           |     r3 = *(0x26790);
    0x00026100 ldr r1, [pc, 0x690]                           |     r1 = *(0x26794);
    0x00026104 add r3, pc, r3                                |     r3 = pc + r3;
    0x00026108 str r3, [sp]                                  |     *(sp) = r3;
    0x0002610c ldr r3, [pc, 0x688]                           |     r3 = *(0x26798);
    0x00026110 add r1, pc, r1                                |     r1 = pc + r1;
    0x00026114 add r3, pc, r3                                |     r3 = pc + r3;
    0x00026118 mov r2, r0                                    |     r2 = r0;
    0x0002611c mov r0, r6                                    |     r0 = r6;
    0x00026120 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00026124 ldr r1, [pc, 0x674]                           |     r1 = *(0x2679c);
    0x00026128 mov r0, r4                                    |     r0 = r4;
    0x0002612c add r1, pc, r1                                |     r1 = pc + r1;
    0x00026130 bl 0x24190                                    |     fcn_00024190 (r0);
    0x00026134 b 0x26094                                     |     goto label_5;
                                                             | label_16:
    0x00026138 bl 0x80cc                                     |     r0 = fcn_000080cc ();
    0x0002613c mov sb, r0                                    |     sb = r0;
    0x00026140 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00026144 bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x00026148 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x0002614c mvneq r5, 0x15                                |         r5 = ~0x15;
                                                             |     }
                                                             |     if (r5 != r0) {
    0x00026150 beq 0x2623c                                   |         
    0x00026154 ldr r3, [pc, 0x5d8]                           |         r3 = *(0x26730);
    0x00026158 ldr r8, [r6, r3]                              |         r8 = *((r6 + r3));
    0x0002615c ldr r3, [r8]                                  |         r3 = *(r8);
    0x00026160 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00026164 beq 0x261b0                                   |             
    0x00026168 ldr r3, [pc, 0x5c8]                           |             r3 = *(0x26734);
    0x0002616c ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00026170 ldr r7, [r3]                                  |             r7 = *(0x26734);
    0x00026174 bl 0x8204                                     |             getpid ();
    0x00026178 ldr r3, [pc, 0x624]                           |             r3 = *(0x267a0);
    0x0002617c ldr r1, [pc, 0x624]                           |             r1 = *(0x267a4);
    0x00026180 add r3, pc, r3                                |             r3 = pc + r3;
    0x00026184 str r3, [sp]                                  |             *(sp) = r3;
    0x00026188 ldr r3, [pc, 0x61c]                           |             r3 = *(0x267a8);
    0x0002618c add r1, pc, r1                                |             r1 = pc + r1;
    0x00026190 add r3, pc, r3                                |             r3 = pc + r3;
    0x00026194 mov r2, r0                                    |             r2 = r0;
    0x00026198 mov r0, r7                                    |             r0 = r7;
    0x0002619c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000261a0 ldr r1, [pc, 0x608]                           |             r1 = *(0x267ac);
    0x000261a4 mov r0, r4                                    |             r0 = r4;
    0x000261a8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000261ac bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
    0x000261b0 ldr r7, [r4, 4]                               |         r7 = *((r4 + 4));
    0x000261b4 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x000261b8 beq 0x26254                                   |             goto label_24;
                                                             |         }
    0x000261bc mov r0, r4                                    |         r0 = r4;
    0x000261c0 bl 0x83c0                                     |         r0 = fcn_000083c0 ();
    0x000261c4 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x000261c8 movne r7, 0                                   |             r7 = 0;
                                                             |         }
                                                             |         if (r7 != r0) {
    0x000261cc bne 0x26254                                   |             goto label_24;
                                                             |         }
    0x000261d0 ldr fp, [pc, 0x5dc]                           |         fp = *(0x000267b4);
    0x000261d4 mov r1, 0x80000000                            |         r1 = 0x80000000;
    0x000261d8 add fp, pc, fp                                |         
    0x000261dc mov r0, fp                                    |         r0 = fp;
    0x000261e0 bl 0x87ec                                     |         r0 = umount2 ();
    0x000261e4 cmn r0, 1                                     |         
                                                             |         if (r0 == 1) {
    0x000261e8 bne 0x26224                                   |             
    0x000261ec bl 0x8f6c                                     |             r0 = errno_location ();
    0x000261f0 ldr r2, [r0]                                  |             r2 = *(r0);
    0x000261f4 cmp r2, 0x16                                  |             
                                                             |             if (r2 != 0x16) {
    0x000261f8 bne 0x26224                                   |                 goto label_25;
                                                             |             }
    0x000261fc str r0, [sp, 0xc]                             |             var_ch = r0;
    0x00026200 mov r1, 8                                     |             r1 = 8;
    0x00026204 mov r0, fp                                    |             r0 = fp;
    0x00026208 bl 0x87ec                                     |             umount2 ();
    0x0002620c ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x00026210 cmn r0, 1                                     |             
                                                             |             if (r0 != 1) {
    0x00026214 bne 0x26224                                   |                 goto label_25;
                                                             |             }
    0x00026218 ldr r3, [r3]                                  |             r3 = *(r3);
    0x0002621c cmp r3, 2                                     |             
                                                             |             if (r3 == 2) {
    0x00026220 moveq r7, 8                                   |                 r7 = 8;
                                                             |                 goto label_25;
                                                             |             }
                                                             |         }
                                                             | label_25:
    0x00026224 mov r0, r5                                    |         r0 = r5;
    0x00026228 add r1, sp, 0x10                              |         r1 += ptr;
    0x0002622c bl 0x180f8                                    |         r0 = fcn_000180f8 (r0, r1);
    0x00026230 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 != r0) {
    0x00026234 ldreq r5, [sp, 0x10]                          |             r5 = ptr;
                                                             |         }
                                                             |         if (r5 == r0) {
    0x00026238 beq 0x26254                                   |             goto label_24;
                                                             |         }
                                                             |     }
                                                             | label_11:
    0x0002623c mov r1, sl                                    |     r1 = sl;
    0x00026240 mov r0, r4                                    |     r0 = r4;
    0x00026244 bl 0x85e8                                     |     r0 = fcn_000085e8 ();
    0x00026248 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002624c bne 0x25ad4                                   |         goto label_6;
                                                             |     }
    0x00026250 b 0x25ad0                                     |     goto label_7;
                                                             | label_24:
    0x00026254 mov r0, r4                                    |     r0 = r4;
    0x00026258 bl 0x8684                                     |     r0 = fcn_00008684 ();
    0x0002625c cmp r0, 0                                     |     
    0x00026260 mov r0, r4                                    |     r0 = r4;
                                                             |     if (r0 == 0) {
    0x00026264 orrne r7, r7, 2                               |         r7 |= 2;
                                                             |     }
    0x00026268 bl 0x8360                                     |     fcn_00008360 ();
    0x0002626c ldr r3, [r8]                                  |     r3 = *(r8);
    0x00026270 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00026274 orrne r7, r7, 1                               |         r7 |= 1;
                                                             |     }
    0x00026278 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002627c beq 0x262ec                                   |         goto label_26;
                                                             |     }
    0x00026280 ldr r3, [pc, 0x4b0]                           |     r3 = *(0x26734);
    0x00026284 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00026288 ldr fp, [r3]                                  |     fp = *(0x26734);
    0x0002628c bl 0x8204                                     |     getpid ();
    0x00026290 ldr r3, [pc, 0x520]                           |     r3 = *(0x267b4);
    0x00026294 ldr r1, [pc, 0x520]                           |     r1 = *(0x267b8);
    0x00026298 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002629c str r3, [sp]                                  |     *(sp) = r3;
    0x000262a0 ldr r3, [pc, 0x518]                           |     r3 = *(0x267bc);
    0x000262a4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000262a8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000262ac mov r2, r0                                    |     r2 = r0;
    0x000262b0 mov r0, fp                                    |     r0 = fp;
    0x000262b4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000262b8 mov r0, r4                                    |     r0 = r4;
    0x000262bc bl 0x83c0                                     |     r0 = fcn_000083c0 ();
    0x000262c0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000262c4 beq 0x26478                                   |         goto label_27;
                                                             |     }
    0x000262c8 ldr r3, [pc, 0x4f4]                           |     r3 = *(0x267c0);
    0x000262cc add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     do {
    0x000262d0 ldr r1, [pc, 0x4f0]                           |         r1 = *(0x267c4);
    0x000262d4 str r3, [sp]                                  |         *(sp) = r3;
    0x000262d8 mov r2, r5                                    |         r2 = r5;
    0x000262dc mov r3, r7                                    |         r3 = r7;
    0x000262e0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000262e4 mov r0, r4                                    |         r0 = r4;
    0x000262e8 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             | label_26:
    0x000262ec mov r0, r4                                    |         r0 = r4;
    0x000262f0 bl 0x83c0                                     |         r0 = fcn_000083c0 ();
    0x000262f4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000262f8 bne 0x264ec                                   |             goto label_28;
                                                             |         }
    0x000262fc cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x00026300 beq 0x26484                                   |             goto label_29;
                                                             |         }
    0x00026304 mov r1, r7                                    |         r1 = r7;
    0x00026308 mov r0, r5                                    |         r0 = r5;
    0x0002630c bl 0x87ec                                     |         r0 = umount2 ();
                                                             | label_8:
    0x00026310 cmp r0, 0                                     |         
    0x00026314 mov r5, r0                                    |         r5 = r0;
                                                             |         if (r0 < 0) {
    0x00026318 bge 0x2632c                                   |             
    0x0002631c bl 0x8f6c                                     |             r0 = errno_location ();
    0x00026320 ldr r3, [r0]                                  |             r3 = *(r0);
    0x00026324 rsb r3, r3, 0                                 |             r3 -= ;
    0x00026328 str r3, [r4, 0x8c]                            |             *((r4 + 0x8c)) = r3;
                                                             |         }
    0x0002632c ldr r0, [sp, 0x10]                            |         r0 = ptr;
    0x00026330 bl 0x91c4                                     |         free (r0);
    0x00026334 cmp r5, 0                                     |         
                                                             |         if (r5 >= 0) {
    0x00026338 bge 0x264ec                                   |             goto label_28;
                                                             |         }
    0x0002633c ldr r3, [r4, 0x8c]                            |         r3 = *((r4 + 0x8c));
    0x00026340 cmn r3, 0x10                                  |         
                                                             |         if (r3 != 0x10) {
    0x00026344 bne 0x26604                                   |             goto label_30;
                                                             |         }
    0x00026348 mov r0, r4                                    |         r0 = r4;
    0x0002634c bl 0x84e0                                     |         r0 = fcn_000084e0 ();
    0x00026350 cmp r0, 0                                     |         
    0x00026354 cmpne sb, 0                                   |         __asm ("cmpne sb, 0");
                                                             |         if (r0 == 0) {
    0x00026358 beq 0x26604                                   |             goto label_30;
                                                             |         }
    0x0002635c ldr r1, [r4, 0x3c]                            |         r1 = *((r4 + 0x3c));
    0x00026360 mov r0, r4                                    |         r0 = r4;
    0x00026364 orr r1, r1, 0x21                              |         r1 |= 0x21;
    0x00026368 bl 0x8b1c                                     |         fcn_00008b1c ();
    0x0002636c mov r1, 0                                     |         r1 = 0;
    0x00026370 mov r0, r4                                    |         r0 = r4;
    0x00026374 bl 0x8e94                                     |         fcn_00008e94 ();
    0x00026378 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0002637c tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00026380 beq 0x263d4                                   |             
    0x00026384 ldr r3, [pc, 0x3ac]                           |             r3 = *(0x26734);
    0x00026388 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0002638c ldr r5, [r3]                                  |             r5 = *(0x26734);
    0x00026390 bl 0x8204                                     |             getpid ();
    0x00026394 ldr r3, [pc, 0x430]                           |             r3 = *(0x267c8);
    0x00026398 ldr r1, [pc, 0x430]                           |             r1 = *(0x267cc);
    0x0002639c add r3, pc, r3                                |             r3 = pc + r3;
    0x000263a0 str r3, [sp]                                  |             *(sp) = r3;
    0x000263a4 ldr r3, [pc, 0x428]                           |             r3 = *(0x267d0);
    0x000263a8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000263ac add r3, pc, r3                                |             r3 = pc + r3;
    0x000263b0 mov r2, r0                                    |             r2 = r0;
    0x000263b4 mov r0, r5                                    |             r0 = r5;
    0x000263b8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000263bc ldr r2, [r4, 0x8c]                            |             r2 = *((r4 + 0x8c));
    0x000263c0 ldr r1, [pc, 0x410]                           |             r1 = *(0x267d4);
    0x000263c4 rsb r2, r2, 0                                 |             r2 -= ;
    0x000263c8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000263cc mov r0, r4                                    |             r0 = r4;
    0x000263d0 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
    0x000263d4 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x000263d8 bl 0x81d4                                     |         fcn_000081d4 ();
    0x000263dc mov r5, 0                                     |         r5 = 0;
    0x000263e0 str r5, [sp]                                  |         *(sp) = r5;
    0x000263e4 mov r3, 0x21                                  |         r3 = 0x21;
    0x000263e8 mov r2, r5                                    |         r2 = r5;
    0x000263ec mov r1, r0                                    |         r1 = r0;
    0x000263f0 mov r0, sb                                    |         r0 = sb;
    0x000263f4 bl 0x8c9c                                     |         r0 = mount ();
    0x000263f8 cmp r0, r5                                    |         
                                                             |         if (r0 >= r5) {
    0x000263fc bge 0x26490                                   |             goto label_31;
                                                             |         }
    0x00026400 bl 0x8f6c                                     |         r0 = errno_location ();
    0x00026404 ldr r3, [r0]                                  |         r3 = *(r0);
    0x00026408 rsb r3, r3, 0                                 |         r3 -= ;
    0x0002640c str r3, [r4, 0x8c]                            |         *((r4 + 0x8c)) = r3;
    0x00026410 ldr r3, [r8]                                  |         r3 = *(r8);
    0x00026414 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00026418 beq 0x2646c                                   |             
    0x0002641c ldr r3, [pc, 0x314]                           |             r3 = *(0x26734);
    0x00026420 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00026424 ldr r5, [r3]                                  |             r5 = *(0x26734);
    0x00026428 bl 0x8204                                     |             getpid ();
    0x0002642c ldr r3, [pc, 0x3a8]                           |             r3 = *(0x267d8);
    0x00026430 ldr r1, [pc, 0x3a8]                           |             r1 = *(0x267dc);
    0x00026434 add r3, pc, r3                                |             r3 = pc + r3;
    0x00026438 str r3, [sp]                                  |             *(sp) = r3;
    0x0002643c ldr r3, [pc, 0x3a0]                           |             r3 = *(0x267e0);
    0x00026440 add r1, pc, r1                                |             r1 = pc + r1;
    0x00026444 add r3, pc, r3                                |             r3 = pc + r3;
    0x00026448 mov r2, r0                                    |             r2 = r0;
    0x0002644c mov r0, r5                                    |             r0 = r5;
    0x00026450 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00026454 ldr r2, [r4, 0x8c]                            |             r2 = *((r4 + 0x8c));
    0x00026458 ldr r1, [pc, 0x388]                           |             r1 = *(0x267e4);
    0x0002645c rsb r2, r2, 0                                 |             r2 -= ;
    0x00026460 add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_13:
    0x00026464 mov r0, r4                                    |             r0 = r4;
    0x00026468 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
                                                             | label_12:
    0x0002646c ldr r5, [r4, 0x8c]                            |         r5 = *((r4 + 0x8c));
    0x00026470 rsb r5, r5, 0                                 |         r5 -= ;
    0x00026474 b 0x26094                                     |         goto label_5;
                                                             | label_27:
    0x00026478 ldr r3, [pc, 0x36c]                           |         r3 = *(0x267e8);
    0x0002647c add r3, pc, r3                                |         r3 = pc + r3;
    0x00026480 b 0x262d0                                     |         
                                                             |     } while (1);
                                                             | label_29:
    0x00026484 mov r0, r5                                    |     r0 = r5;
    0x00026488 bl 0x8e04                                     |     umount ();
    0x0002648c b 0x26310                                     |     goto label_8;
                                                             | label_31:
    0x00026490 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00026494 str r5, [r4, 0x8c]                            |     *((r4 + 0x8c)) = r5;
    0x00026498 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002649c beq 0x25ccc                                   |         goto label_3;
                                                             |     }
    0x000264a0 ldr r3, [pc, 0x290]                           |     r3 = *(0x26734);
    0x000264a4 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000264a8 ldr r5, [r3]                                  |     r5 = *(0x26734);
    0x000264ac bl 0x8204                                     |     getpid ();
    0x000264b0 ldr r3, [pc, 0x338]                           |     r3 = *(0x267ec);
    0x000264b4 ldr r1, [pc, 0x338]                           |     r1 = *(0x267f0);
    0x000264b8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000264bc str r3, [sp]                                  |     *(sp) = r3;
    0x000264c0 ldr r3, [pc, 0x330]                           |     r3 = *(0x267f4);
    0x000264c4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000264c8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000264cc mov r2, r0                                    |     r2 = r0;
    0x000264d0 mov r0, r5                                    |     r0 = r5;
    0x000264d4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000264d8 ldr r1, [pc, 0x31c]                           |     r1 = *(0x267f8);
    0x000264dc add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_9:
    0x000264e0 mov r0, r4                                    |     r0 = r4;
    0x000264e4 bl 0x24190                                    |     fcn_00024190 (r0);
    0x000264e8 b 0x25ccc                                     |     goto label_3;
                                                             | label_28:
    0x000264ec mov r3, 0                                     |     r3 = 0;
    0x000264f0 str r3, [r4, 0x8c]                            |     *((r4 + 0x8c)) = r3;
    0x000264f4 ldr r3, [r8]                                  |     r3 = *(r8);
    0x000264f8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x000264fc beq 0x25ccc                                   |         goto label_3;
                                                             |     }
    0x00026500 ldr r3, [pc, 0x230]                           |     r3 = *(0x26734);
    0x00026504 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00026508 ldr r5, [r3]                                  |     r5 = *(0x26734);
    0x0002650c bl 0x8204                                     |     getpid ();
    0x00026510 ldr r3, [pc, 0x2e8]                           |     r3 = *(0x267fc);
    0x00026514 ldr r1, [pc, 0x2e8]                           |     r1 = *(0x26800);
    0x00026518 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002651c str r3, [sp]                                  |     *(sp) = r3;
    0x00026520 ldr r3, [pc, 0x2e0]                           |     r3 = *(0x26804);
    0x00026524 add r1, pc, r1                                |     r1 = pc + r1;
    0x00026528 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002652c mov r2, r0                                    |     r2 = r0;
    0x00026530 mov r0, r5                                    |     r0 = r5;
    0x00026534 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00026538 ldr r1, [pc, 0x2cc]                           |     r1 = *(0x26808);
    0x0002653c add r1, pc, r1                                |     r1 = pc + r1;
    0x00026540 b 0x264e0                                     |     goto label_9;
                                                             | label_17:
    0x00026544 mov r0, r4                                    |     r0 = r4;
    0x00026548 bl 0x83c0                                     |     r0 = fcn_000083c0 ();
    0x0002654c subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x00026550 bne 0x25cdc                                   |         goto label_10;
                                                             |     }
    0x00026554 mov r0, r4                                    |     r0 = r4;
    0x00026558 bl 0x8858                                     |     r0 = fcn_00008858 ();
    0x0002655c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00026560 beq 0x2657c                                   |         
    0x00026564 ldr r3, [r4, 0x3c]                            |         r3 = *((r4 + 0x3c));
    0x00026568 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x0002656c bne 0x2657c                                   |             goto label_32;
                                                             |         }
    0x00026570 mov r0, r4                                    |         r0 = r4;
    0x00026574 bl 0x20334                                    |         r0 = fcn_00020334 (r0);
    0x00026578 mov r5, r0                                    |         r5 = r0;
                                                             |     }
                                                             | label_32:
    0x0002657c mov r0, r4                                    |     r0 = r4;
    0x00026580 bl 0x88c4                                     |     r0 = fcn_000088c4 ();
    0x00026584 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00026588 bne 0x2623c                                   |         goto label_11;
                                                             |     }
    0x0002658c mov r0, r4                                    |     r0 = r4;
    0x00026590 bl 0x8198                                     |     r0 = fcn_00008198 ();
    0x00026594 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00026598 beq 0x2623c                                   |         goto label_11;
                                                             |     }
    0x0002659c ldr r6, [r4, 0x70]                            |     r6 = *((r4 + 0x70));
    0x000265a0 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x000265a4 bne 0x2623c                                   |         goto label_11;
                                                             |     }
    0x000265a8 mov r0, r4                                    |     r0 = r4;
    0x000265ac bl 0x84e0                                     |     r0 = fcn_000084e0 ();
    0x000265b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000265b4 beq 0x2623c                                   |         goto label_11;
                                                             |     }
    0x000265b8 ldr r2, [r4, 0x3c]                            |     r2 = *((r4 + 0x3c));
    0x000265bc clz r3, r5                                    |     r3 &= r5;
    0x000265c0 lsr r3, r3, 5                                 |     r3 >>= 5;
    0x000265c4 ands r3, r3, r2, lsr 5                        |     r3 &= (r2 >> 5);
                                                             |     if (r3 == r3) {
    0x000265c8 beq 0x2623c                                   |         goto label_11;
                                                             |     }
    0x000265cc ldr r3, [r4, 0x58]                            |     r3 = *((r4 + 0x58));
    0x000265d0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000265d4 beq 0x25cdc                                   |         goto label_10;
                                                             |     }
    0x000265d8 mov r0, r4                                    |     r0 = r4;
    0x000265dc bl 0x1cbe8                                    |     r0 = fcn_0001cbe8 (r0);
    0x000265e0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000265e4 beq 0x25cdc                                   |         goto label_10;
                                                             |     }
    0x000265e8 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000265ec mov r2, r6                                    |     r2 = r6;
    0x000265f0 ldr r1, [r4, 0x3c]                            |     r1 = *((r4 + 0x3c));
    0x000265f4 ldr r0, [r4, 0x58]                            |     r0 = *((r4 + 0x58));
    0x000265f8 bl 0x9194                                     |     r0 = fcn_00009194 ();
    0x000265fc mov r5, r0                                    |     r5 = r0;
    0x00026600 b 0x2623c                                     |     goto label_11;
                                                             | label_30:
    0x00026604 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00026608 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002660c beq 0x2646c                                   |         goto label_12;
                                                             |     }
    0x00026610 ldr r3, [pc, 0x120]                           |     r3 = *(0x26734);
    0x00026614 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00026618 ldr r5, [r3]                                  |     r5 = *(0x26734);
    0x0002661c bl 0x8204                                     |     getpid ();
    0x00026620 ldr r3, [pc, 0x1e8]                           |     r3 = *(0x2680c);
    0x00026624 ldr r1, [pc, 0x1e8]                           |     r1 = *(0x26810);
    0x00026628 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002662c str r3, [sp]                                  |     *(sp) = r3;
    0x00026630 ldr r3, [pc, 0x1e0]                           |     r3 = *(0x26814);
    0x00026634 add r1, pc, r1                                |     r1 = pc + r1;
    0x00026638 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002663c mov r2, r0                                    |     r2 = r0;
    0x00026640 mov r0, r5                                    |     r0 = r5;
    0x00026644 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00026648 ldr r2, [r4, 0x8c]                            |     r2 = *((r4 + 0x8c));
    0x0002664c ldr r1, [pc, 0x1c8]                           |     r1 = *(0x26818);
    0x00026650 rsb r2, r2, 0                                 |     r2 -= ;
    0x00026654 add r1, pc, r1                                |     r1 = pc + r1;
    0x00026658 b 0x26464                                     |     goto label_13;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x24370 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_find_umount_fs ()                | void mnt_context_find_umount_fs (uint32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     char * format;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     void * ptr;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_8ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00024370 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00024374 ldr r8, [pc, 0x530]                           |     r8 = *(0x248a8);
    0x00024378 mov r3, 0                                     |     r3 = 0;
    0x0002437c subs sl, r2, 0                                |     sl = r2 - 0;
    0x00024380 sub sp, sp, 0x8c                              |     
                                                             |     if (sl == r2) {
    0x00024384 strne r3, [sl]                                |         *(sl) = r3;
                                                             |     }
    0x00024388 cmp r0, 0                                     |     
    0x0002438c str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00024390 str r3, [sp, 0x1c]                            |     ptr = r3;
    0x00024394 clz r3, r1                                    |     r3 &= r1;
    0x00024398 lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r0 != 0) {
    0x0002439c moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x000243a0 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x000243a4 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x000243a8 cmp r3, 0                                     |     
    0x000243ac add r8, pc, r8                                |     r8 = pc + r8;
    0x000243b0 mov r4, r0                                    |     r4 = r0;
    0x000243b4 mov r6, r1                                    |     r6 = r1;
                                                             |     if (r3 != 0) {
    0x000243b8 bne 0x24658                                   |         goto label_6;
                                                             |     }
    0x000243bc ldr r3, [pc, 0x4ec]                           |     r3 = *(0x248ac);
    0x000243c0 ldr sb, [r8, r3]                              |     sb = *((r8 + r3));
    0x000243c4 ldr r3, [sb]                                  |     r3 = *(sb);
    0x000243c8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000243cc beq 0x2441c                                   |         
    0x000243d0 ldr r3, [pc, 0x4dc]                           |         r3 = *(0x248b0);
    0x000243d4 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x000243d8 ldr r5, [r3]                                  |         r5 = *(0x248b0);
    0x000243dc bl 0x8204                                     |         getpid ();
    0x000243e0 ldr r3, [pc, 0x4d0]                           |         r3 = *(0x248b4);
    0x000243e4 ldr r1, [pc, 0x4d0]                           |         r1 = *(0x248b8);
    0x000243e8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000243ec str r3, [sp]                                  |         *(sp) = r3;
    0x000243f0 ldr r3, [pc, 0x4c8]                           |         r3 = *(0x248bc);
    0x000243f4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000243f8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000243fc mov r2, r0                                    |         r2 = r0;
    0x00024400 mov r0, r5                                    |         r0 = r5;
    0x00024404 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00024408 ldr r1, [pc, 0x4b4]                           |         r1 = *(0x248c0);
    0x0002440c mov r2, r6                                    |         r2 = r6;
    0x00024410 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024414 mov r0, r4                                    |         r0 = r4;
    0x00024418 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
    0x0002441c ldrsb r3, [r6]                                |     r3 = *(r6);
    0x00024420 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00024424 bne 0x24430                                   |         
                                                             | label_0:
    0x00024428 mov r5, 1                                     |         r5 = 1;
    0x0002442c b 0x244d0                                     |         goto label_1;
                                                             |     }
    0x00024430 mov r0, r4                                    |     r0 = r4;
    0x00024434 bl 0x8e1c                                     |     fcn_00008e1c ();
    0x00024438 add r5, sp, 0x18                              |     r5 += var_18h;
    0x0002443c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00024440 beq 0x244dc                                   |         goto label_7;
                                                             |     }
    0x00024444 mov r0, r4                                    |     r0 = r4;
    0x00024448 bl 0x1cbe8                                    |     r0 = fcn_0001cbe8 (r0);
    0x0002444c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024450 bne 0x244dc                                   |         goto label_7;
                                                             |     }
    0x00024454 ldrsb r3, [r6]                                |     r3 = *(r6);
    0x00024458 cmp r3, 0x2f                                  |     
                                                             |     if (r3 != 0x2f) {
    0x0002445c bne 0x244dc                                   |         goto label_7;
                                                             |     }
    0x00024460 mov r2, r6                                    |     r2 = r6;
    0x00024464 mov r1, r5                                    |     r1 = r5;
    0x00024468 mov r0, r4                                    |     r0 = r4;
    0x0002446c bl 0x1d4c4                                    |     r0 = fcn_0001d4c4 (r0, r1);
                                                             |     do {
    0x00024470 cmp r0, 0                                     |         
    0x00024474 mov r5, r0                                    |         r5 = r0;
                                                             |         if (r0 == 0) {
    0x00024478 beq 0x244ec                                   |             goto label_8;
                                                             |         }
    0x0002447c ldr r3, [sb]                                  |         r3 = *(sb);
    0x00024480 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00024484 beq 0x244d0                                   |             
    0x00024488 ldr r3, [pc, 0x424]                           |             r3 = *(0x248b0);
    0x0002448c ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x00024490 ldr r6, [r3]                                  |             r6 = *(0x248b0);
    0x00024494 bl 0x8204                                     |             getpid ();
    0x00024498 ldr r3, [pc, 0x428]                           |             r3 = *(0x248c4);
    0x0002449c ldr r1, [pc, 0x428]                           |             r1 = *(0x248c8);
    0x000244a0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000244a4 str r3, [sp]                                  |             *(sp) = r3;
    0x000244a8 ldr r3, [pc, 0x420]                           |             r3 = *(0x248cc);
    0x000244ac add r1, pc, r1                                |             r1 = pc + r1;
    0x000244b0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000244b4 mov r2, r0                                    |             r2 = r0;
    0x000244b8 mov r0, r6                                    |             r0 = r6;
    0x000244bc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000244c0 ldr r1, [pc, 0x40c]                           |             r1 = *(0x248d0);
    0x000244c4 mov r0, r4                                    |             r0 = r4;
    0x000244c8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000244cc bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
                                                             | label_1:
    0x000244d0 mov r0, r5                                    |         r0 = r5;
    0x000244d4 add sp, sp, 0x8c                              |         
    0x000244d8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_7:
    0x000244dc mov r1, r5                                    |         r1 = r5;
    0x000244e0 mov r0, r4                                    |         r0 = r4;
    0x000244e4 bl 0x84d4                                     |         fcn_000084d4 ();
    0x000244e8 b 0x24470                                     |         
                                                             |     } while (1);
                                                             | label_8:
    0x000244ec ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000244f0 bl 0x87f8                                     |     r0 = fcn_000087f8 ();
    0x000244f4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000244f8 bne 0x24554                                   |         goto label_9;
                                                             |     }
    0x000244fc ldr r3, [sb]                                  |     r3 = *(sb);
    0x00024500 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00024504 beq 0x24428                                   |         goto label_0;
                                                             |     }
    0x00024508 ldr r3, [pc, 0x3a4]                           |     r3 = *(0x248b0);
    0x0002450c ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00024510 ldr r5, [r3]                                  |     r5 = *(0x248b0);
    0x00024514 bl 0x8204                                     |     getpid ();
    0x00024518 ldr r3, [pc, 0x3b8]                           |     r3 = *(0x248d4);
    0x0002451c ldr r1, [pc, 0x3b8]                           |     r1 = *(0x248d8);
    0x00024520 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024524 str r3, [sp]                                  |     *(sp) = r3;
    0x00024528 ldr r3, [pc, 0x3b0]                           |     r3 = "xt__helper_exec_status__1";
    0x0002452c add r1, pc, r1                                |     r1 = pc + r1;
    0x00024530 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024534 mov r2, r0                                    |     r2 = r0;
    0x00024538 mov r0, r5                                    |     r0 = r5;
    0x0002453c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00024540 ldr r1, [pc, 0x39c]                           |     r1 = *(0x248e0);
    0x00024544 mov r0, r4                                    |     r0 = r4;
    0x00024548 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002454c bl 0x24190                                    |     fcn_00024190 (r0);
    0x00024550 b 0x24428                                     |     goto label_0;
                                                             | label_9:
    0x00024554 mov r0, r4                                    |     r0 = r4;
    0x00024558 bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x0002455c subs fp, r0, 0                                |     
                                                             |     if (fp == r0) {
    0x00024560 beq 0x24660                                   |         goto label_4;
                                                             |     }
    0x00024564 ldr r3, [pc, 0x37c]                           |     r3 = *(0x248e4);
    0x00024568 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002456c str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00024570 ldr r3, [pc, 0x374]                           |     r3 = *(0x248e8);
    0x00024574 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024578 str r3, [sp, 0x10]                            |     format = r3;
    0x0002457c ldr r3, [pc, 0x36c]                           |     r3 = *(0x248ec);
    0x00024580 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024584 str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             | label_3:
    0x00024588 mov r2, 1                                     |     r2 = 1;
    0x0002458c mov r1, r6                                    |     r1 = r6;
    0x00024590 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00024594 bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x00024598 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x0002459c bne 0x246d8                                   |         goto label_10;
                                                             |     }
    0x000245a0 mov r0, r4                                    |     r0 = r4;
    0x000245a4 bl 0x8aa4                                     |     r0 = fcn_00008aa4 ();
    0x000245a8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000245ac beq 0x246d8                                   |         goto label_10;
                                                             |     }
    0x000245b0 mov r2, 1                                     |     r2 = 1;
    0x000245b4 mov r1, r6                                    |     r1 = r6;
    0x000245b8 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000245bc bl 0x8174                                     |     r0 = fcn_00008174 ();
    0x000245c0 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x000245c4 beq 0x246d8                                   |         goto label_10;
                                                             |     }
    0x000245c8 ldr r7, [sp, 0x18]                            |     r7 = var_18h;
    0x000245cc bl 0x81d4                                     |     fcn_000081d4 ();
    0x000245d0 mov r2, 1                                     |     r2 = 1;
    0x000245d4 mov r1, r0                                    |     r1 = r0;
    0x000245d8 mov r0, r7                                    |     r0 = r7;
    0x000245dc bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x000245e0 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x000245e4 bne 0x24668                                   |         goto label_11;
                                                             |     }
    0x000245e8 ldr r3, [sb]                                  |     r3 = *(sb);
    0x000245ec tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x000245f0 beq 0x2463c                                   |         goto label_2;
                                                             |     }
    0x000245f4 ldr r3, [pc, 0x2b8]                           |     r3 = *(0x248b0);
    0x000245f8 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x000245fc ldr r5, [r3]                                  |     r5 = *(0x248b0);
    0x00024600 bl 0x8204                                     |     getpid ();
    0x00024604 ldr r3, [pc, 0x2e8]                           |     r3 = *(0x248f0);
    0x00024608 ldr r1, [pc, 0x2e8]                           |     r1 = *(0x248f4);
    0x0002460c add r3, pc, r3                                |     r3 = pc + r3;
    0x00024610 str r3, [sp]                                  |     *(sp) = r3;
    0x00024614 ldr r3, [pc, 0x2e0]                           |     r3 = *(0x248f8);
    0x00024618 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002461c add r3, pc, r3                                |     r3 = pc + r3;
    0x00024620 mov r2, r0                                    |     r2 = r0;
    0x00024624 mov r0, r5                                    |     r0 = r5;
    0x00024628 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0002462c ldr r1, [pc, 0x2cc]                           |     r1 = *(0x248fc);
    0x00024630 mov r0, r4                                    |     r0 = r4;
    0x00024634 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024638 bl 0x24190                                    |     fcn_00024190 (r0);
                                                             |     do {
                                                             | label_2:
    0x0002463c ldr r0, [sp, 0x1c]                            |         r0 = ptr;
    0x00024640 bl 0x91c4                                     |         free (r0);
    0x00024644 mov r1, fp                                    |         r1 = fp;
    0x00024648 mov r0, r4                                    |         r0 = r4;
    0x0002464c bl 0x85e8                                     |         r0 = fcn_000085e8 ();
    0x00024650 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00024654 beq 0x24660                                   |             
                                                             | label_6:
    0x00024658 mvn r5, 0x15                                  |             r5 = ~0x15;
    0x0002465c b 0x244d0                                     |             goto label_1;
                                                             |         }
                                                             | label_4:
    0x00024660 ldr r5, [pc, 0x29c]                           |         r5 = *(0x24900);
    0x00024664 b 0x244d0                                     |         goto label_1;
                                                             | label_11:
    0x00024668 cmp r5, r7                                    |         
                                                             |         if (r5 == r7) {
    0x0002466c beq 0x246d8                                   |             goto label_10;
                                                             |         }
    0x00024670 ldr r3, [sb]                                  |         r3 = *(sb);
    0x00024674 tst r3, 0x200                                 |         
    0x00024678 beq 0x2463c                                   |         
                                                             |     } while ((r3 & 0x200) == 0);
    0x0002467c ldr r3, [pc, 0x230]                           |     r3 = *(0x248b0);
    0x00024680 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00024684 ldr r5, [r3]                                  |     r5 = *(0x248b0);
    0x00024688 bl 0x8204                                     |     getpid ();
    0x0002468c ldr r3, [pc, 0x274]                           |     r3 = *(0x24904);
    0x00024690 ldr r1, [pc, 0x274]                           |     r1 = *(0x24908);
    0x00024694 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024698 str r3, [sp]                                  |     *(sp) = r3;
    0x0002469c ldr r3, [pc, 0x26c]                           |     r3 = *(0x2490c);
    0x000246a0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000246a4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000246a8 mov r2, r0                                    |     r2 = r0;
    0x000246ac mov r0, r5                                    |     r0 = r5;
    0x000246b0 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000246b4 mov r0, r7                                    |     r0 = r7;
    0x000246b8 bl 0x8c90                                     |     fcn_00008c90 ();
    0x000246bc ldr r1, [pc, 0x250]                           |     r1 = *(0x24910);
    0x000246c0 mov r2, r6                                    |     r2 = r6;
    0x000246c4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000246c8 mov r3, r0                                    |     r3 = r0;
    0x000246cc mov r0, r4                                    |     r0 = r4;
    0x000246d0 bl 0x24190                                    |     fcn_00024190 (r0);
    0x000246d4 b 0x2463c                                     |     goto label_2;
                                                             | label_10:
    0x000246d8 ldr r5, [sp, 0x1c]                            |     r5 = ptr;
    0x000246dc clz r3, r7                                    |     r3 &= r7;
    0x000246e0 lsr r3, r3, 5                                 |     r3 >>= 5;
    0x000246e4 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x000246e8 moveq r5, r3                                  |         r5 = r3;
                                                             |     }
                                                             |     if (r5 == 0) {
    0x000246ec movne r5, 0                                   |         r5 = 0;
                                                             |     }
    0x000246f0 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x000246f4 beq 0x24898                                   |         goto label_12;
                                                             |     }
    0x000246f8 mov r0, r4                                    |     r0 = r4;
    0x000246fc bl 0x8aa4                                     |     r0 = fcn_00008aa4 ();
    0x00024700 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00024704 beq 0x2480c                                   |         
    0x00024708 add r1, sp, 0x20                              |         r1 += var_20h;
    0x0002470c mov r0, r6                                    |         r0 = r6;
    0x00024710 bl 0x180e4                                    |         r0 = fcn_000180e4 (r0, r1);
    0x00024714 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00024718 bne 0x24808                                   |             
    0x0002471c ldr r3, [sp, 0x30]                            |             r3 = var_30h;
    0x00024720 and r3, r3, 0xf000                            |             r3 &= 0xf000;
    0x00024724 cmp r3, 0x8000                                |             
                                                             |             if (r3 != fcn.00008000) {
    0x00024728 bne 0x24808                                   |                 goto label_13;
                                                             |             }
    0x0002472c mov r0, r4                                    |             r0 = r4;
    0x00024730 bl 0x8558                                     |             r0 = fcn_00008558 ();
    0x00024734 subs r1, r0, 0                                |             r1 = r0 - 0;
    0x00024738 mov r0, r6                                    |             r0 = r6;
                                                             |             if (r1 != r0) {
    0x0002473c beq 0x24744                                   |                 
    0x00024740 bl 0x8d38                                     |                 fcn_00008d38 ();
                                                             |             }
    0x00024744 add r1, sp, 0x1c                              |             r1 += ptr;
    0x00024748 bl 0x38760                                    |             r0 = fcn_00038760 (r0, r1);
    0x0002474c cmp r0, 1                                     |             
                                                             |             if (r0 == 1) {
    0x00024750 bne 0x247ac                                   |                 
    0x00024754 ldr r3, [sb]                                  |                 r3 = *(sb);
    0x00024758 tst r3, 0x200                                 |                 
                                                             |                 if ((r3 & 0x200) != 0) {
    0x0002475c beq 0x247a4                                   |                     
    0x00024760 ldr r3, [pc, 0x14c]                           |                     r3 = *(0x248b0);
    0x00024764 ldr r3, [r8, r3]                              |                     r3 = *((r8 + r3));
    0x00024768 ldr r5, [r3]                                  |                     r5 = *(0x248b0);
    0x0002476c bl 0x8204                                     |                     getpid ();
    0x00024770 ldr r3, [sp, 0x14]                            |                     r3 = var_14h;
    0x00024774 ldr r1, [sp, 0x10]                            |                     r1 = format;
    0x00024778 str r3, [sp]                                  |                     *(sp) = r3;
    0x0002477c ldr r3, [sp, 0xc]                             |                     r3 = var_ch;
    0x00024780 mov r2, r0                                    |                     r2 = r0;
    0x00024784 mov r0, r5                                    |                     r0 = r5;
    0x00024788 bl 0x8798                                     |                     fprintf (r0, r1, r2, r3)
    0x0002478c ldr r1, [pc, 0x184]                           |                     r1 = *(0x24914);
    0x00024790 ldr r3, [sp, 0x1c]                            |                     r3 = ptr;
    0x00024794 mov r2, r6                                    |                     r2 = r6;
    0x00024798 add r1, pc, r1                                |                     r1 = pc + r1;
    0x0002479c mov r0, r4                                    |                     r0 = r4;
    0x000247a0 bl 0x24190                                    |                     fcn_00024190 (r0);
                                                             |                 }
    0x000247a4 ldr r6, [sp, 0x1c]                            |                 r6 = ptr;
    0x000247a8 b 0x24588                                     |                 goto label_3;
                                                             |             }
                                                             |             if ((r3 & 0x200) <= 0) {
    0x000247ac ble 0x24808                                   |                 goto label_13;
                                                             |             }
    0x000247b0 ldr r3, [sb]                                  |             r3 = *(sb);
    0x000247b4 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) == 0) {
    0x000247b8 beq 0x24808                                   |                 goto label_13;
                                                             |             }
    0x000247bc ldr r3, [pc, 0xf0]                            |             r3 = *(0x248b0);
    0x000247c0 ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x000247c4 ldr r7, [r3]                                  |             r7 = *(0x248b0);
    0x000247c8 bl 0x8204                                     |             getpid ();
    0x000247cc ldr r3, [pc, 0x148]                           |             r3 = *(0x24918);
    0x000247d0 ldr r1, [pc, 0x148]                           |             r1 = *(0x2491c);
    0x000247d4 add r3, pc, r3                                |             r3 = pc + r3;
    0x000247d8 str r3, [sp]                                  |             *(sp) = r3;
    0x000247dc ldr r3, [pc, 0x140]                           |             r3 = *(0x24920);
    0x000247e0 add r1, pc, r1                                |             r1 = pc + r1;
    0x000247e4 add r3, pc, r3                                |             r3 = pc + r3;
    0x000247e8 mov r2, r0                                    |             r2 = r0;
    0x000247ec mov r0, r7                                    |             r0 = r7;
    0x000247f0 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000247f4 ldr r1, [pc, 0x12c]                           |             r1 = *(0x24924);
    0x000247f8 mov r2, r6                                    |             r2 = r6;
    0x000247fc add r1, pc, r1                                |             r1 = pc + r1;
    0x00024800 mov r0, r4                                    |             r0 = r4;
    0x00024804 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
                                                             | label_13:
    0x00024808 mov r7, 0                                     |         r7 = 0;
                                                             |     }
                                                             | label_5:
    0x0002480c ldr r0, [sp, 0x1c]                            |     r0 = ptr;
    0x00024810 str r7, [sl]                                  |     *(sl) = r7;
    0x00024814 bl 0x91c4                                     |     free (r0);
    0x00024818 mov r1, fp                                    |     r1 = fp;
    0x0002481c mov r0, r4                                    |     r0 = r4;
    0x00024820 bl 0x85e8                                     |     r0 = fcn_000085e8 ();
    0x00024824 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00024828 beq 0x24660                                   |         goto label_4;
                                                             |     }
    0x0002482c ldr r3, [sb]                                  |     r3 = *(sb);
    0x00024830 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00024834 beq 0x244d0                                   |         goto label_1;
                                                             |     }
    0x00024838 ldr r3, [pc, 0x74]                            |     r3 = *(0x248b0);
    0x0002483c ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00024840 ldr r6, [r3]                                  |     r6 = *(0x248b0);
    0x00024844 bl 0x8204                                     |     getpid ();
    0x00024848 ldr r3, [pc, 0xdc]                            |     r3 = *(0x24928);
    0x0002484c ldr r1, [pc, 0xdc]                            |     r1 = *(0x2492c);
    0x00024850 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024854 str r3, [sp]                                  |     *(sp) = r3;
    0x00024858 ldr r3, [pc, 0xd4]                            |     r3 = *(0x24930);
    0x0002485c add r1, pc, r1                                |     r1 = pc + r1;
    0x00024860 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024864 mov r2, r0                                    |     r2 = r0;
    0x00024868 mov r0, r6                                    |     r0 = r6;
    0x0002486c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00024870 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00024874 beq 0x248a0                                   |         goto label_14;
                                                             |     }
    0x00024878 mov r0, r7                                    |     r0 = r7;
    0x0002487c bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x00024880 mov r2, r0                                    |     r2 = r0;
                                                             |     do {
    0x00024884 ldr r1, [pc, 0xac]                            |         r1 = *(0x24934);
    0x00024888 mov r0, r4                                    |         r0 = r4;
    0x0002488c add r1, pc, r1                                |         r1 = pc + r1;
    0x00024890 bl 0x24190                                    |         fcn_00024190 (r0);
    0x00024894 b 0x244d0                                     |         goto label_1;
                                                             | label_12:
    0x00024898 mov r5, r3                                    |         r5 = r3;
    0x0002489c b 0x2480c                                     |         goto label_5;
                                                             | label_14:
    0x000248a0 ldr r2, [pc, 0x94]                            |         r2 = *(0x24938);
    0x000248a4 add r2, pc, r2                                |         r2 = pc + r2;
    0x000248a8 b 0x24884                                     |         
                                                             |     } 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/lib/libmount.so.1.1.0 @ 0x1ba68 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_get_excode ()                    | void mnt_context_get_excode (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001ba68 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0001ba6c ldr r7, [pc, 0x110]                           |     r7 = *(0x1bb80);
    0x0001ba70 subs r5, r2, 0                                |     r5 = r2 - 0;
    0x0001ba74 mov r4, r1                                    |     r4 = r1;
    0x0001ba78 add r7, pc, r7                                |     r7 = pc + r7;
    0x0001ba7c mov r6, r0                                    |     r6 = r0;
    0x0001ba80 mov r1, r3                                    |     r1 = r3;
                                                             |     if (r5 != r2) {
    0x0001ba84 beq 0x1baa0                                   |         
    0x0001ba88 mov r3, 0                                     |         r3 = 0;
    0x0001ba8c strb r3, [r5]                                 |         *(r5) = r3;
    0x0001ba90 ldrb r3, [r0, 0xa4]                           |         r3 = *((r0 + 0xa4));
    0x0001ba94 tst r3, 1                                     |         
                                                             |         if ((r3 & 1) != 0) {
    0x0001ba98 orreq r3, r3, 1                               |             r3 |= 1;
                                                             |         }
                                                             |         if ((r3 & 1) == 0) {
    0x0001ba9c strbeq r3, [r0, 0xa4]                         |             *((r0 + 0xa4)) = r3;
                                                             |             goto label_0;
                                                             |         }
                                                             |     }
                                                             | label_0:
    0x0001baa0 ldr r3, [r6]                                  |     r3 = *(r6);
    0x0001baa4 cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x0001baa8 beq 0x1bad8                                   |         
    0x0001baac cmp r3, 2                                     |         
                                                             |         if (r3 == 2) {
    0x0001bab0 beq 0x1bb6c                                   |             goto label_1;
                                                             |         }
    0x0001bab4 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x0001bab8 beq 0x1baf0                                   |             goto label_2;
                                                             |         }
    0x0001babc ldr r3, [pc, 0xc4]                            |         r3 = *(0x1bb84);
    0x0001bac0 mov r2, r1                                    |         r2 = r1;
    0x0001bac4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001bac8 mov r1, r5                                    |         r1 = r5;
    0x0001bacc mov r0, r4                                    |         r0 = r4;
    0x0001bad0 bl 0x1b9dc                                    |         fcn_0001b9dc (r0, r1, r2, r3);
    0x0001bad4 b 0x1baec                                     |         
                                                             |     } else {
    0x0001bad8 mov r3, r1                                    |         r3 = r1;
    0x0001badc mov r2, r5                                    |         r2 = r5;
    0x0001bae0 mov r1, r4                                    |         r1 = r4;
    0x0001bae4 mov r0, r6                                    |         r0 = r6;
    0x0001bae8 bl 0x235f8                                    |         r0 = fcn_000235f8 (r0, r1);
                                                             |     }
                                                             |     do {
    0x0001baec mov r4, r0                                    |         r4 = r0;
                                                             | label_2:
    0x0001baf0 ldr r3, [pc, 0x94]                            |         
    0x0001baf4 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0001baf8 ldr r3, [r3]                                  |         r3 = *(0x1bb88);
    0x0001bafc tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0001bb00 beq 0x1bb60                                   |             
    0x0001bb04 ldr r3, [pc, 0x84]                            |             r3 = *(0x1bb8c);
    0x0001bb08 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001bb0c ldr r7, [r3]                                  |             r7 = *(0x1bb8c);
    0x0001bb10 bl 0x8204                                     |             getpid ();
    0x0001bb14 ldr r3, [pc, 0x78]                            |             r3 = *(0x1bb90);
    0x0001bb18 ldr r1, [pc, 0x78]                            |             r1 = *(0x1bb94);
    0x0001bb1c add r3, pc, r3                                |             r3 = pc + r3;
    0x0001bb20 str r3, [sp]                                  |             *(sp) = r3;
    0x0001bb24 ldr r3, [pc, 0x70]                            |             r3 = *(0x1bb98);
    0x0001bb28 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001bb2c add r3, pc, r3                                |             r3 = pc + r3;
    0x0001bb30 mov r2, r0                                    |             r2 = r0;
    0x0001bb34 mov r0, r7                                    |             r0 = r7;
    0x0001bb38 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001bb3c cmp r5, 0                                     |             
                                                             |             if (r5 != 0) {
    0x0001bb40 ldreq r5, [pc, 0x58]                          |                 r5 = *((pc + 0x58));
                                                             |             }
                                                             |             if (r5 != 0) {
    0x0001bb44 addeq r5, pc, r5                              |                 r5 = pc + r5;
                                                             |             }
    0x0001bb48 ldr r1, [pc, 0x54]                            |             r1 = *(0x1bba0);
    0x0001bb4c mov r3, r5                                    |             r3 = r5;
    0x0001bb50 mov r2, r4                                    |             r2 = r4;
    0x0001bb54 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001bb58 mov r0, r6                                    |             r0 = r6;
    0x0001bb5c bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001bb60 mov r0, r4                                    |         r0 = r4;
    0x0001bb64 add sp, sp, 0xc                               |         
    0x0001bb68 pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_1:
    0x0001bb6c mov r3, r1                                    |         r3 = r1;
    0x0001bb70 mov r2, r5                                    |         r2 = r5;
    0x0001bb74 mov r1, r4                                    |         r1 = r4;
    0x0001bb78 mov r0, r6                                    |         r0 = r6;
    0x0001bb7c bl 0x26d80                                    |         fcn_00026d80 (r0, r1);
    0x0001bb80 b 0x1baec                                     |         
                                                             |     } 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/lib/libmount.so.1.1.0 @ 0x1af98 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_context_get_mtab_userdata ()         | uint32_t mnt_context_get_mtab_userdata (uint32_t arg1) {
                                                         |     r0 = arg1;
    0x0001af98 ldr r0, [r0, 0x18]                        |     r0 = *((r0 + 0x18));
    0x0001af9c cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001afa0 bxeq lr                                   |         return r0;
                                                         |     }
    0x0001afa4 b 0x8e40                                  |     return void (*0x8e40)() ();
                                                         | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1d330 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_get_mtab ()                      | void mnt_context_get_mtab (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001d330 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0001d334 ldr r8, [pc, 0x168]                           |     r8 = *(0x1d4a0);
    0x0001d338 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001d33c add r8, pc, r8                                |     r8 = pc + r8;
                                                             |     if (r4 != r0) {
    0x0001d340 mvneq r5, 0x15                                |         r5 = ~0x15;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x0001d344 beq 0x1d36c                                   |         goto label_1;
                                                             |     }
    0x0001d348 ldr r5, [r4, 0x18]                            |     r5 = *((r4 + 0x18));
    0x0001d34c mov r7, r1                                    |     r7 = r1;
    0x0001d350 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0001d354 movne r6, 0                                   |         r6 = 0;
                                                             |     }
                                                             |     if (r5 != 0) {
    0x0001d358 bne 0x1d3f8                                   |         goto label_3;
                                                             |     }
    0x0001d35c bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x0001d360 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x0001d364 bne 0x1d378                                   |         goto label_4;
                                                             |     }
                                                             | label_2:
    0x0001d368 ldr r5, [pc, 0x138]                           |     r5 = *(0x1d4a4);
                                                             |     do {
                                                             | label_1:
    0x0001d36c mov r0, r5                                    |         r0 = r5;
    0x0001d370 add sp, sp, 8                                 |         
    0x0001d374 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_4:
    0x0001d378 mov r1, r5                                    |         r1 = r5;
    0x0001d37c mov r0, r4                                    |         r0 = r4;
    0x0001d380 bl 0x1ca1c                                    |         r0 = fcn_0001ca1c (r0, r1);
    0x0001d384 bl 0x90b0                                     |         r0 = fcn_000090b0 ();
    0x0001d388 cmp r0, 0                                     |         
    0x0001d38c str r0, [r4, 0x18]                            |         *((r4 + 0x18)) = r0;
                                                             |         if (r0 == 0) {
    0x0001d390 beq 0x1d488                                   |             goto label_5;
                                                             |         }
    0x0001d394 ldr r1, [r4, 0x20]                            |         r1 = *((r4 + 0x20));
    0x0001d398 cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x0001d39c beq 0x1d3a4                                   |             
    0x0001d3a0 bl 0x89e4                                     |             fcn_000089e4 ();
                                                             |         }
    0x0001d3a4 ldr r1, [r4, 0x24]                            |         r1 = *((r4 + 0x24));
    0x0001d3a8 cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x0001d3ac beq 0x1d3bc                                   |             
    0x0001d3b0 ldr r2, [r4, 0x28]                            |             r2 = *((r4 + 0x28));
    0x0001d3b4 ldr r0, [r4, 0x18]                            |             r0 = *((r4 + 0x18));
    0x0001d3b8 bl 0x14f9c                                    |             fcn_00014f9c (r0, r1);
                                                             |         }
    0x0001d3bc mov r0, r4                                    |         r0 = r4;
    0x0001d3c0 ldr r5, [r4, 0x18]                            |         r5 = *((r4 + 0x18));
    0x0001d3c4 bl 0x8558                                     |         r0 = fcn_00008558 ();
    0x0001d3c8 mov r1, r0                                    |         r1 = r0;
    0x0001d3cc mov r0, r5                                    |         r0 = r5;
    0x0001d3d0 bl 0x89f0                                     |         fcn_000089f0 ();
    0x0001d3d4 ldr r2, [r4, 0x1c]                            |         r2 = *((r4 + 0x1c));
    0x0001d3d8 ldr r1, [r4, 0x5c]                            |         r1 = *((r4 + 0x5c));
    0x0001d3dc cmp r2, 0                                     |         
    0x0001d3e0 ldr r0, [r4, 0x18]                            |         r0 = *((r4 + 0x18));
                                                             |         if (r2 == 0) {
    0x0001d3e4 beq 0x1d480                                   |             goto label_6;
                                                             |         }
    0x0001d3e8 bl 0x15130                                    |         r0 = fcn_00015130 (r0, r1);
                                                             | label_0:
    0x0001d3ec cmp r0, 0                                     |         
    0x0001d3f0 mov r5, r0                                    |         r5 = r0;
                                                             |         if (r0 != 0) {
    0x0001d3f4 bne 0x1d48c                                   |             goto label_7;
                                                             |         }
                                                             | label_3:
    0x0001d3f8 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x0001d3fc ldrne r3, [r4, 0x18]                          |             r3 = *((r4 + 0x18));
                                                             |         }
                                                             |         if (r7 == 0) {
    0x0001d400 strne r3, [r7]                                |             *(r7) = r3;
                                                             |         }
    0x0001d404 ldr r3, [pc, 0xa0]                            |         
    0x0001d408 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x0001d40c ldr r3, [r3]                                  |         r3 = *(0x1d4a8);
    0x0001d410 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x0001d414 beq 0x1d46c                                   |             
    0x0001d418 ldr r3, [pc, 0x90]                            |             r3 = *(0x1d4ac);
    0x0001d41c ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x0001d420 ldr r5, [r3]                                  |             r5 = *(0x1d4ac);
    0x0001d424 bl 0x8204                                     |             getpid ();
    0x0001d428 ldr r3, [pc, 0x84]                            |             r3 = *(0x1d4b0);
    0x0001d42c ldr r1, [pc, 0x84]                            |             r1 = *(0x1d4b4);
    0x0001d430 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001d434 str r3, [sp]                                  |             *(sp) = r3;
    0x0001d438 ldr r3, [pc, 0x7c]                            |             r3 = *(0x1d4b8);
    0x0001d43c add r1, pc, r1                                |             r1 = pc + r1;
    0x0001d440 add r3, pc, r3                                |             r3 = pc + r3;
    0x0001d444 mov r2, r0                                    |             r2 = r0;
    0x0001d448 mov r0, r5                                    |             r0 = r5;
    0x0001d44c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001d450 ldr r0, [r4, 0x18]                            |             r0 = *((r4 + 0x18));
    0x0001d454 bl 0x87f8                                     |             fcn_000087f8 ();
    0x0001d458 ldr r1, [pc, 0x60]                            |             r1 = *(0x1d4bc);
    0x0001d45c add r1, pc, r1                                |             r1 = pc + r1;
    0x0001d460 mov r2, r0                                    |             r2 = r0;
    0x0001d464 mov r0, r4                                    |             r0 = r4;
    0x0001d468 bl 0x1a538                                    |             fcn_0001a538 (r0);
                                                             |         }
    0x0001d46c cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x0001d470 movne r5, 0                                   |             r5 = 0;
                                                             |         }
                                                             |         if (r6 != 0) {
    0x0001d474 bne 0x1d48c                                   |             goto label_7;
                                                             |         }
    0x0001d478 mov r5, r6                                    |         r5 = r6;
    0x0001d47c b 0x1d36c                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x0001d480 bl 0x8a38                                     |     fcn_00008a38 ();
    0x0001d484 b 0x1d3ec                                     |     goto label_0;
                                                             | label_5:
    0x0001d488 mvn r5, 0xb                                   |     r5 = ~0xb;
                                                             | label_7:
    0x0001d48c mov r1, r6                                    |     r1 = r6;
    0x0001d490 mov r0, r4                                    |     r0 = r4;
    0x0001d494 bl 0x85e8                                     |     r0 = fcn_000085e8 ();
    0x0001d498 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001d49c bne 0x1d36c                                   |         goto label_1;
                                                             |     }
    0x0001d4a0 b 0x1d368                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1bba8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_init_helper ()                   | void mnt_context_init_helper (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001bba8 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0001bbac ldr r6, [pc, 0xa4]                            |     r6 = *(0x1bc54);
    0x0001bbb0 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001bbb4 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 != r0) {
    0x0001bbb8 mvneq r5, 0x15                                |         r5 = ~0x15;
                                                             |     }
                                                             |     if (r4 != r0) {
    0x0001bbbc beq 0x1bc4c                                   |         
    0x0001bbc0 mov r7, r1                                    |         r7 = r1;
    0x0001bbc4 mov r1, 1                                     |         r1 = 1;
    0x0001bbc8 bl 0x8918                                     |         r0 = fcn_00008918 ();
    0x0001bbcc subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 == r0) {
    0x0001bbd0 bne 0x1bbec                                   |             
    0x0001bbd4 mov r2, 1                                     |             r2 = 1;
    0x0001bbd8 mov r1, 0x2000000                             |             r1 = 0x2000000;
    0x0001bbdc mov r0, r4                                    |             r0 = r4;
    0x0001bbe0 bl 0x1a6b8                                    |             r0 = fcn_0001a6b8 (r0);
    0x0001bbe4 subs r5, r0, 0                                |             r5 = r0 - 0;
                                                             |             if (r5 == r0) {
    0x0001bbe8 streq r7, [r4]                                |                 *(r4) = r7;
                                                             |                 goto label_0;
                                                             |             }
                                                             |         }
                                                             | label_0:
    0x0001bbec ldr r3, [pc, 0x68]                            |         
    0x0001bbf0 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001bbf4 ldr r3, [r3]                                  |         r3 = *(0x1bc58);
    0x0001bbf8 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) == 0) {
    0x0001bbfc beq 0x1bc4c                                   |             goto label_1;
                                                             |         }
    0x0001bc00 ldr r3, [pc, 0x58]                            |         r3 = *(0x1bc5c);
    0x0001bc04 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001bc08 ldr r6, [r3]                                  |         r6 = *(0x1bc5c);
    0x0001bc0c bl 0x8204                                     |         getpid ();
    0x0001bc10 ldr r3, [pc, 0x4c]                            |         r3 = *(0x1bc60);
    0x0001bc14 ldr r1, [pc, 0x4c]                            |         r1 = *(0x1bc64);
    0x0001bc18 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001bc1c str r3, [sp]                                  |         *(sp) = r3;
    0x0001bc20 ldr r3, [pc, 0x44]                            |         r3 = *(0x1bc68);
    0x0001bc24 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001bc28 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001bc2c mov r2, r0                                    |         r2 = r0;
    0x0001bc30 mov r0, r6                                    |         r0 = r6;
    0x0001bc34 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0001bc38 ldr r1, [pc, 0x30]                            |         r1 = *(0x1bc6c);
    0x0001bc3c mov r2, r5                                    |         r2 = r5;
    0x0001bc40 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001bc44 mov r0, r4                                    |         r0 = r4;
    0x0001bc48 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             |     }
                                                             | label_1:
    0x0001bc4c mov r0, r5                                    |     r0 = r5;
    0x0001bc50 add sp, sp, 0xc                               |     
    0x0001bc54 pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0x22f38 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.mnt_context_mount ()                                     | void mnt_context_mount (int32_t arg1) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_ch;
                                                                         |     int32_t var_10h;
                                                                         |     r0 = arg1;
    0x00022f38 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00022f3c ldr r6, [pc, 0x268]                                       |     r6 = *(0x231a8);
    0x00022f40 subs r4, r0, 0                                            |     r4 = r0 - 0;
    0x00022f44 add r6, pc, r6                                            |     r6 = pc + r6;
                                                                         |     if (r4 != r0) {
    0x00022f48 bne 0x22f74                                               |         goto label_2;
                                                                         |     }
    0x00022f4c ldr r3, [pc, 0x25c]                                       |     
    0x00022f50 ldr r1, [pc, 0x25c]                                       |     r1 = *(0x231b0);
    0x00022f54 ldr r0, [pc, 0x25c]                                       |     r0 = *(0x231b4);
    0x00022f58 add r3, pc, r3                                            |     r3 = pc + r3;
    0x00022f5c ldr r2, [pc, 0x258]                                       |     r2 = *(0x231b8);
    0x00022f60 add r3, r3, 0x10c                                         |     r3 = 0x232b8;
    0x00022f64 add r3, r3, 1                                             |     r3++;
    0x00022f68 add r1, pc, r1                                            |     r1 = pc + r1;
    0x00022f6c add r0, pc, r0                                            |     r0 = pc + r0;
                                                                         |     do {
                                                                         | label_0:
    0x00022f70 bl 0x908c                                                 |         assert ();
                                                                         | label_2:
    0x00022f74 ldr r3, [r4, 0x10]                                        |         r3 = *((r4 + 0x10));
    0x00022f78 cmp r3, 0                                                 |         
                                                                         |         if (r3 != 0) {
    0x00022f7c bne 0x22fa8                                               |             goto label_3;
                                                                         |         }
    0x00022f80 ldr r3, [pc, 0x238]                                       |         
    0x00022f84 ldr r1, [pc, 0x238]                                       |         r1 = *(0x231c0);
    0x00022f88 ldr r0, [pc, 0x238]                                       |         r0 = *(0x231c4);
    0x00022f8c add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022f90 add r3, r3, 0x10c                                         |         r3 = 0x232c8;
    0x00022f94 add r3, r3, 1                                             |         r3++;
    0x00022f98 ldr r2, [pc, 0x22c]                                       |         r2 = *(0x231c8);
    0x00022f9c add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022fa0 add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022fa4 b 0x22f70                                                 |         
                                                                         |     } while (1);
                                                                         | label_3:
    0x00022fa8 ldr r3, [r4, 0x78]                                        |     r3 = *((r4 + 0x78));
    0x00022fac cmp r3, 1                                                 |     
                                                                         |     if (r3 != 1) {
    0x00022fb0 beq 0x22fdc                                               |         
    0x00022fb4 ldr r3, [pc, 0x214]                                       |         
    0x00022fb8 ldr r1, [pc, 0x214]                                       |         r1 = *(0x231d0);
    0x00022fbc ldr r0, [pc, 0x214]                                       |         r0 = *(0x231d4);
    0x00022fc0 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022fc4 add r3, r3, 0x10c                                         |         r3 = 0x232d8;
    0x00022fc8 add r3, r3, 1                                             |         r3++;
    0x00022fcc ldr r2, [pc, 0x208]                                       |         r2 = *(0x231d8);
    0x00022fd0 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00022fd4 add r0, pc, r0                                            |         r0 = pc + r0;
    0x00022fd8 b 0x22f70                                                 |         goto label_0;
                                                                         |     }
    0x00022fdc ldr r3, [r4, 0x8c]                                        |     r3 = *((r4 + 0x8c));
    0x00022fe0 cmp r3, 1                                                 |     
                                                                         |     if (r3 != 1) {
    0x00022fe4 beq 0x23010                                               |         
    0x00022fe8 ldr r3, [pc, 0x1f0]                                       |         
    0x00022fec ldr r1, [pc, 0x1f0]                                       |         r1 = *(0x231e0);
    0x00022ff0 ldr r0, [pc, 0x1f0]                                       |         r0 = *(0x231e4);
    0x00022ff4 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00022ff8 add r3, r3, 0x10c                                         |         r3 = 0x232e8;
    0x00022ffc add r3, r3, 1                                             |         r3++;
    0x00023000 ldr r2, [pc, 0x1e4]                                       |         r2 = *(0x231e8);
    0x00023004 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00023008 add r0, pc, r0                                            |         r0 = pc + r0;
    0x0002300c b 0x22f70                                                 |         goto label_0;
                                                                         |     }
    0x00023010 bl 0x872c                                                 |     r0 = fcn_0000872c ();
    0x00023014 subs r7, r0, 0                                            |     r7 = r0 - 0;
                                                                         |     if (r7 == r0) {
    0x00023018 beq 0x230dc                                               |         goto label_4;
                                                                         |     }
    0x0002301c ldr sb, [pc, 0x1cc]                                       |     sb = *(0x231ec);
    0x00023020 ldr sl, [pc, 0x1cc]                                       |     sl = *(0x000231f4);
    0x00023024 ldr r8, [pc, 0x1cc]                                       |     r8 = *(0x231f4);
    0x00023028 add sb, pc, sb                                            |     sb = pc + sb;
    0x0002302c add sl, pc, sl                                            |     sl = pc + sl;
                                                                         | label_1:
    0x00023030 mov r0, r4                                                |     r0 = r4;
    0x00023034 bl 0x7f70                                                 |     r0 = fcn_00007f70 ();
    0x00023038 subs r5, r0, 0                                            |     r5 = r0 - 0;
                                                                         |     if (r5 == r0) {
    0x0002303c bne 0x2306c                                               |         
    0x00023040 mov r0, r4                                                |         r0 = r4;
    0x00023044 bl 0x1cd54                                                |         r0 = fcn_0001cd54 (r0);
    0x00023048 subs r5, r0, 0                                            |         r5 = r0 - 0;
                                                                         |         if (r5 != r0) {
    0x0002304c bne 0x2306c                                               |             goto label_5;
                                                                         |         }
    0x00023050 mov r0, r4                                                |         r0 = r4;
    0x00023054 bl 0x8e4c                                                 |         r0 = fcn_00008e4c ();
    0x00023058 subs r5, r0, 0                                            |         r5 = r0 - 0;
                                                                         |         if (r5 != r0) {
    0x0002305c bne 0x2306c                                               |             goto label_5;
                                                                         |         }
    0x00023060 mov r0, r4                                                |         r0 = r4;
    0x00023064 bl 0x1e508                                                |         r0 = fcn_0001e508 (r0);
    0x00023068 mov r5, r0                                                |         r5 = r0;
                                                                         |     }
                                                                         | label_5:
    0x0002306c cmn r5, 0x1e                                              |     
    0x00023070 beq 0x23098                                               |     
                                                                         |     while (r0 != 0) {
    0x00023074 mov r0, r4                                                |         r0 = r4;
    0x00023078 bl 0x81b0                                                 |         r0 = fcn_000081b0 ();
    0x0002307c cmp r0, 0x1e                                              |         
                                                                         |         if (r0 == 0x1e) {
    0x00023080 beq 0x230a8                                               |             goto label_6;
                                                                         |         }
    0x00023084 mov r0, r4                                                |         r0 = r4;
    0x00023088 bl 0x81b0                                                 |         r0 = fcn_000081b0 ();
    0x0002308c cmp r0, 0xd                                               |         
                                                                         |         if (r0 == 0xd) {
    0x00023090 beq 0x230a8                                               |             goto label_6;
                                                                         |         }
    0x00023094 b 0x230c8                                                 |         goto label_7;
    0x00023098 mov r0, r4                                                |         r0 = r4;
    0x0002309c bl 0x8e34                                                 |         r0 = fcn_00008e34 ();
    0x000230a0 cmp r0, 0                                                 |         
    0x000230a4 bne 0x23074                                               |         
                                                                         |     }
                                                                         | label_6:
    0x000230a8 mov r3, 0                                                 |     r3 = 0;
    0x000230ac add r1, sp, 0x10                                          |     r1 += var_10h;
    0x000230b0 str r3, [r1, -4]!                                         |     *((r1 -= 4)) = r3;
    0x000230b4 mov r0, r4                                                |     r0 = r4;
    0x000230b8 bl 0x8768                                                 |     fcn_00008768 ();
    0x000230bc ldr r3, [sp, 0xc]                                         |     r3 = var_ch;
    0x000230c0 tst r8, r3                                                |     
    0x000230c4 beq 0x230ec                                               |     
                                                                         |     while (r0 != 0) {
                                                                         | label_7:
    0x000230c8 mov r1, r7                                                |         r1 = r7;
    0x000230cc mov r0, r4                                                |         r0 = r4;
    0x000230d0 bl 0x85e8                                                 |         r0 = fcn_000085e8 ();
    0x000230d4 cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x000230d8 bne 0x230e0                                               |             
                                                                         | label_4:
    0x000230dc ldr r5, [pc, 0x118]                                       |             r5 = *(0x231f8);
                                                                         |         }
    0x000230e0 mov r0, r5                                                |         r0 = r5;
    0x000230e4 add sp, sp, 0x10                                          |         
    0x000230e8 pop {r4, r5, r6, r7, r8, sb, sl, pc}                      |         
    0x000230ec mov r0, r4                                                |         r0 = r4;
    0x000230f0 bl 0x8750                                                 |         r0 = fcn_00008750 ();
    0x000230f4 cmp r0, 0                                                 |         
    0x000230f8 bne 0x230c8                                               |         
                                                                         |     }
    0x000230fc ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x00023100 tst r3, 0x20000000                                        |     
                                                                         |     if ((r3 & 0x20000000) != 0) {
    0x00023104 beq 0x23130                                               |         
    0x00023108 ldr r3, [pc, 0xf0]                                        |         
    0x0002310c ldr r1, [pc, 0xf0]                                        |         r1 = *(0x23200);
    0x00023110 ldr r0, [pc, 0xf0]                                        |         r0 = *(0x23204);
    0x00023114 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00023118 add r3, r3, 0x10c                                         |         r3 = 0x23308;
    0x0002311c add r3, r3, 1                                             |         r3++;
    0x00023120 ldr r2, [pc, 0xe4]                                        |         r2 = *(0x23208);
    0x00023124 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00023128 add r0, pc, r0                                            |         r0 = pc + r0;
    0x0002312c b 0x22f70                                                 |         goto label_0;
                                                                         |     }
    0x00023130 ldr r3, [pc, 0xd8]                                        |     
    0x00023134 ldr r3, [r6, r3]                                          |     r3 = *((r6 + r3));
    0x00023138 ldr r3, [r3]                                              |     r3 = *(0x2320c);
    0x0002313c tst r3, 0x200                                             |     
                                                                         |     if ((r3 & 0x200) != 0) {
    0x00023140 beq 0x23184                                               |         
    0x00023144 ldr r3, [pc, 0xc8]                                        |         r3 = *(0x23210);
    0x00023148 ldr r3, [r6, r3]                                          |         r3 = *((r6 + r3));
    0x0002314c ldr r5, [r3]                                              |         r5 = *(0x23210);
    0x00023150 bl 0x8204                                                 |         getpid ();
    0x00023154 ldr r3, [pc, 0xbc]                                        |         r3 = *(0x23214);
    0x00023158 mov r1, sl                                                |         r1 = sl;
    0x0002315c add r3, pc, r3                                            |         r3 = pc + r3;
    0x00023160 str r3, [sp]                                              |         *(sp) = r3;
    0x00023164 mov r3, sb                                                |         r3 = sb;
    0x00023168 mov r2, r0                                                |         r2 = r0;
    0x0002316c mov r0, r5                                                |         r0 = r5;
    0x00023170 bl 0x8798                                                 |         fprintf (r0, r1, r2, r3)
    0x00023174 ldr r1, [pc, 0xa0]                                        |         r1 = *(0x23218);
    0x00023178 mov r0, r4                                                |         r0 = r4;
    0x0002317c add r1, pc, r1                                            |         r1 = pc + r1;
    0x00023180 bl 0x2058c                                                |         fcn_0002058c (r0);
                                                                         |     }
    0x00023184 mov r0, r4                                                |     r0 = r4;
    0x00023188 bl 0x81c8                                                 |     fcn_000081c8 ();
    0x0002318c ldr r1, [sp, 0xc]                                         |     r1 = var_ch;
    0x00023190 mov r0, r4                                                |     r0 = r4;
    0x00023194 orr r1, r1, 1                                             |     r1 |= 1;
    0x00023198 bl 0x8b1c                                                 |     fcn_00008b1c ();
    0x0002319c ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x000231a0 orr r3, r3, 0x20000000                                    |     r3 |= 0x20000000;
    0x000231a4 str r3, [r4, 0x6c]                                        |     *((r4 + 0x6c)) = r3;
    0x000231a8 b 0x23030                                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x23220 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_next_mount ()                    | void mnt_context_next_mount (int32_t arg_40h, uint32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     FILE * stream;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00023220 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00023224 ldr r8, [pc, 0x384]                           |     r8 = *(0x235ac);
    0x00023228 sub sp, sp, 0x1c                              |     
    0x0002322c ldr r7, [sp, 0x40]                            |     r7 = *(arg_40h);
    0x00023230 mov ip, 0                                     |     
    0x00023234 cmp r7, ip                                    |     
                                                             |     if (r7 == ip) {
    0x00023238 strne ip, [r7]                                |         *(r7) = ip;
                                                             |     }
    0x0002323c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00023240 strne ip, [r3]                                |         *(r3) = ip;
                                                             |     }
    0x00023244 cmp r2, 0                                     |     
    0x00023248 str ip, [sp, 0x14]                            |     var_14h = ip;
    0x0002324c clz ip, r1                                    |     
    0x00023250 lsr ip, ip, 5                                 |     
                                                             |     if (r2 != 0) {
    0x00023254 moveq ip, 1                                   |         
                                                             |     }
    0x00023258 cmp r0, 0                                     |     
                                                             |     if (arg_40h != ) {
    0x0002325c moveq ip, 1                                   |         
                                                             |     }
    0x00023260 cmp ip, 0                                     |     
    0x00023264 add r8, pc, r8                                |     r8 = pc + r8;
                                                             |     if (ip != 0) {
    0x00023268 bne 0x235a8                                   |         goto label_7;
                                                             |     }
    0x0002326c ldr r6, [r0, 0x18]                            |     r6 = *(arg_40hx18);
    0x00023270 mov r4, r0                                    |     r4 = r0;
    0x00023274 str ip, [r0, 0x18]                            |     *(arg_40hx18) = ip;
    0x00023278 mov fp, r3                                    |     
    0x0002327c mov r5, r2                                    |     r5 = r2;
    0x00023280 mov sb, r1                                    |     sb = r1;
    0x00023284 bl 0x85d0                                     |     fcn_000085d0 ();
    0x00023288 str r6, [r4, 0x18]                            |     *((r4 + 0x18)) = r6;
    0x0002328c add r1, sp, 0x10                              |     r1 += var_10h;
    0x00023290 mov r0, r4                                    |     r0 = r4;
    0x00023294 bl 0x8810                                     |     r0 = fcn_00008810 ();
    0x00023298 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x0002329c bne 0x233cc                                   |         goto label_1;
                                                             |     }
    0x000232a0 mov r2, r5                                    |     r2 = r5;
    0x000232a4 mov r1, sb                                    |     r1 = sb;
    0x000232a8 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x000232ac bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x000232b0 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x000232b4 bne 0x233cc                                   |         goto label_1;
                                                             |     }
    0x000232b8 ldr r0, [r5]                                  |     r0 = *(r5);
    0x000232bc bl 0x87bc                                     |     fcn_000087bc ();
    0x000232c0 str r0, [sp, 8]                               |     var_8h = r0;
    0x000232c4 ldr r0, [r5]                                  |     r0 = *(r5);
    0x000232c8 bl 0x81d4                                     |     fcn_000081d4 ();
    0x000232cc ldr r3, [pc, 0x2e0]                           |     r3 = *(0x235b0);
    0x000232d0 ldr sb, [r8, r3]                              |     sb = *((r8 + r3));
    0x000232d4 ldr r3, [sb]                                  |     r3 = *(sb);
    0x000232d8 tst r3, 0x200                                 |     
    0x000232dc mov sl, r0                                    |     sl = r0;
                                                             |     if ((r3 & 0x200) != 0) {
    0x000232e0 beq 0x23334                                   |         
    0x000232e4 ldr r3, [pc, 0x2cc]                           |         
    0x000232e8 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x000232ec ldr r3, [r3]                                  |         r3 = *(0x235b4);
    0x000232f0 str r3, [sp, 0xc]                             |         stream = r3;
    0x000232f4 bl 0x8204                                     |         getpid ();
    0x000232f8 ldr r3, [pc, 0x2bc]                           |         r3 = *(0x235b8);
    0x000232fc ldr r1, [pc, 0x2bc]                           |         r1 = *(0x235bc);
    0x00023300 add r3, pc, r3                                |         r3 = pc + r3;
    0x00023304 str r3, [sp]                                  |         *(sp) = r3;
    0x00023308 ldr r3, [pc, 0x2b4]                           |         r3 = *(0x235c0);
    0x0002330c add r1, pc, r1                                |         r1 = pc + r1;
    0x00023310 add r3, pc, r3                                |         r3 = pc + r3;
    0x00023314 mov r2, r0                                    |         r2 = r0;
    0x00023318 ldr r0, [sp, 0xc]                             |         r0 = stream;
    0x0002331c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00023320 ldr r1, [pc, 0x2a0]                           |         r1 = *(0x235c4);
    0x00023324 mov r2, sl                                    |         r2 = sl;
    0x00023328 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002332c mov r0, r4                                    |         r0 = r4;
    0x00023330 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00023334 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00023338 bl 0x845c                                     |     r0 = fcn_0000845c ();
    0x0002333c cmp r0, 0                                     |     
    0x00023340 beq 0x233d8                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_0:
    0x00023344 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x00023348 movne r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r7 == 0) {
    0x0002334c strne r3, [r7]                                |             *(r7) = r3;
                                                             |         }
    0x00023350 ldr r3, [sb]                                  |         r3 = *(sb);
    0x00023354 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00023358 beq 0x233cc                                   |             
    0x0002335c ldr r3, [pc, 0x254]                           |             r3 = *(0x235b4);
    0x00023360 ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x00023364 ldr r7, [r3]                                  |             r7 = *(0x235b4);
    0x00023368 bl 0x8204                                     |             getpid ();
    0x0002336c ldr r3, [pc, 0x258]                           |             r3 = *(0x235c8);
    0x00023370 ldr r1, [pc, 0x258]                           |             r1 = *(0x235cc);
    0x00023374 add r3, pc, r3                                |             r3 = pc + r3;
    0x00023378 str r3, [sp]                                  |             *(sp) = r3;
    0x0002337c ldr r3, [pc, 0x250]                           |             r3 = *(0x235d0);
    0x00023380 add r1, pc, r1                                |             r1 = pc + r1;
    0x00023384 add r3, pc, r3                                |             r3 = pc + r3;
    0x00023388 mov r2, r0                                    |             r2 = r0;
    0x0002338c mov r0, r7                                    |             r0 = r7;
    0x00023390 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00023394 ldr r0, [r5]                                  |             r0 = *(r5);
    0x00023398 bl 0x8de0                                     |             fcn_00008de0 ();
    0x0002339c ldr r8, [r4, 8]                               |             r8 = *((r4 + 8));
    0x000233a0 mov r7, r0                                    |             r7 = r0;
    0x000233a4 ldr r0, [r5]                                  |             r0 = *(r5);
    0x000233a8 bl 0x86fc                                     |             fcn_000086fc ();
    0x000233ac ldr r3, [r4, 0xc]                             |             r3 = *((r4 + 0xc));
    0x000233b0 ldr r1, [pc, 0x220]                           |             r1 = *(0x235d4);
    0x000233b4 mov r2, r7                                    |             r2 = r7;
    0x000233b8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000233bc stm sp, {r0, r3}                              |             *(sp) = r0;
                                                             |             *((sp + 4)) = r3;
    0x000233c0 mov r3, r8                                    |             r3 = r8;
    0x000233c4 mov r0, r4                                    |             r0 = r4;
    0x000233c8 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
                                                             | label_1:
    0x000233cc mov r0, r6                                    |         r0 = r6;
    0x000233d0 add sp, sp, 0x1c                              |         
    0x000233d4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x000233d8 cmp sl, 0                                     |         
                                                             |         if (sl == 0) {
    0x000233dc beq 0x23410                                   |             goto label_8;
                                                             |         }
    0x000233e0 ldr r1, [pc, 0x1f4]                           |         r1 = *(0x235d8);
    0x000233e4 mov r0, sl                                    |         r0 = sl;
    0x000233e8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000233ec bl 0x8cb4                                     |         r0 = strcmp (r0, r1);
    0x000233f0 cmp r0, 0                                     |         
    0x000233f4 beq 0x23344                                   |         
                                                             |     }
    0x000233f8 ldr r1, [pc, 0x1e0]                           |     r1 = *(0x235dc);
    0x000233fc mov r0, sl                                    |     r0 = sl;
    0x00023400 add r1, pc, r1                                |     r1 = pc + r1;
    0x00023404 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00023408 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002340c beq 0x23344                                   |         goto label_0;
                                                             |     }
                                                             | label_8:
    0x00023410 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00023414 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00023418 bne 0x23470                                   |         goto label_9;
                                                             |     }
                                                             | label_2:
    0x0002341c ldr r1, [r4, 8]                               |     r1 = *((r4 + 8));
    0x00023420 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00023424 bne 0x23494                                   |         goto label_10;
                                                             |     }
                                                             | label_3:
    0x00023428 ldr r1, [r4, 0xc]                             |     r1 = *((r4 + 0xc));
    0x0002342c cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00023430 bne 0x234a8                                   |         goto label_11;
                                                             |     }
                                                             | label_4:
    0x00023434 add r2, sp, 0x14                              |     r2 += var_14h;
    0x00023438 ldr r1, [r5]                                  |     r1 = *(r5);
    0x0002343c mov r0, r4                                    |     r0 = r4;
    0x00023440 bl 0x8438                                     |     r0 = fcn_00008438 ();
    0x00023444 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00023448 bne 0x23468                                   |         goto label_5;
                                                             |     }
    0x0002344c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00023450 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00023454 beq 0x234bc                                   |         goto label_12;
                                                             |     }
    0x00023458 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0002345c movne r3, 2                                   |         r3 = 2;
                                                             |     }
                                                             |     if (r7 != 0) {
    0x00023460 strne r3, [r7]                                |         *(r7) = r3;
                                                             |         goto label_13;
                                                             |     }
                                                             |     if (r7 == 0) {
                                                             | label_13:
    0x00023464 beq 0x233cc                                   |         goto label_1;
                                                             |     }
                                                             | label_5:
    0x00023468 mov r6, r0                                    |     r6 = r0;
    0x0002346c b 0x233cc                                     |     goto label_1;
                                                             | label_9:
    0x00023470 ldr r1, [pc, 0x16c]                           |     r1 = *(0x235e0);
    0x00023474 mov r3, 0                                     |     r3 = 0;
    0x00023478 mov r2, r3                                    |     r2 = r3;
    0x0002347c add r1, pc, r1                                |     r1 = pc + r1;
    0x00023480 ldr r0, [sp, 8]                               |     r0 = var_8h;
    0x00023484 bl 0x84a4                                     |     r0 = fcn_000084a4 ();
    0x00023488 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002348c beq 0x23344                                   |         goto label_0;
                                                             |     }
    0x00023490 b 0x2341c                                     |     goto label_2;
                                                             | label_10:
    0x00023494 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00023498 bl 0x8480                                     |     r0 = fcn_00008480 ();
    0x0002349c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000234a0 beq 0x23344                                   |         goto label_0;
                                                             |     }
    0x000234a4 b 0x23428                                     |     goto label_3;
                                                             | label_11:
    0x000234a8 ldr r0, [r5]                                  |     r0 = *(r5);
    0x000234ac bl 0x82ac                                     |     r0 = fcn_000082ac ();
    0x000234b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000234b4 beq 0x23344                                   |         goto label_0;
                                                             |     }
    0x000234b8 b 0x23434                                     |     goto label_4;
                                                             | label_12:
    0x000234bc mov r0, r4                                    |     r0 = r4;
    0x000234c0 bl 0x8708                                     |     r0 = fcn_00008708 ();
    0x000234c4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000234c8 bne 0x23584                                   |         goto label_14;
                                                             |     }
                                                             | label_6:
    0x000234cc ldr r1, [r5]                                  |     r1 = *(r5);
    0x000234d0 mov r0, r4                                    |     r0 = r4;
    0x000234d4 bl 0x8aec                                     |     r0 = fcn_00008aec ();
    0x000234d8 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x000234dc bne 0x23500                                   |         
    0x000234e0 ldr r7, [r4, 8]                               |         r7 = *((r4 + 8));
    0x000234e4 mov r0, r4                                    |         r0 = r4;
    0x000234e8 str r5, [r4, 8]                               |         *((r4 + 8)) = r5;
    0x000234ec bl 0x8774                                     |         fcn_00008774 ();
    0x000234f0 cmp fp, 0                                     |         
    0x000234f4 str r7, [r4, 8]                               |         *((r4 + 8)) = r7;
    0x000234f8 mov r5, r0                                    |         r5 = r0;
                                                             |         if (fp != 0) {
    0x000234fc strne r0, [fp]                                |             *(fp) = r0;
                                                             |             goto label_15;
                                                             |         }
                                                             |     }
                                                             | label_15:
    0x00023500 mov r0, r4                                    |     r0 = r4;
    0x00023504 bl 0x89b4                                     |     r0 = fcn_000089b4 ();
    0x00023508 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002350c beq 0x233cc                                   |         goto label_1;
                                                             |     }
    0x00023510 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00023514 tst r3, 0x200                                 |     
    0x00023518 ldr r3, [pc, 0x98]                            |     r3 = *(0x235b4);
    0x0002351c ldr r6, [r8, r3]                              |     r6 = *((r8 + r3));
                                                             |     if ((r3 & 0x200) != 0) {
    0x00023520 beq 0x23568                                   |         
    0x00023524 ldr r7, [r6]                                  |         r7 = *(r6);
    0x00023528 bl 0x8204                                     |         getpid ();
    0x0002352c ldr r3, [pc, 0xb4]                            |         r3 = *(0x235e4);
    0x00023530 ldr r1, [pc, 0xb4]                            |         r1 = *(0x235e8);
    0x00023534 add r3, pc, r3                                |         r3 = pc + r3;
    0x00023538 str r3, [sp]                                  |         *(sp) = r3;
    0x0002353c ldr r3, [pc, 0xac]                            |         r3 = *(0x235ec);
    0x00023540 add r1, pc, r1                                |         r1 = pc + r1;
    0x00023544 add r3, pc, r3                                |         r3 = pc + r3;
    0x00023548 mov r2, r0                                    |         r2 = r0;
    0x0002354c mov r0, r7                                    |         r0 = r7;
    0x00023550 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00023554 ldr r1, [pc, 0x98]                            |         r1 = *(0x235f0);
    0x00023558 mov r2, r5                                    |         r2 = r5;
    0x0002355c add r1, pc, r1                                |         r1 = pc + r1;
    0x00023560 mov r0, r4                                    |         r0 = r4;
    0x00023564 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00023568 ldr r3, [sb]                                  |     r3 = *(sb);
    0x0002356c bics r3, r3, 2                                |     __asm ("bics r3, r3, 2");
                                                             |     if ((r3 & 0x200) != 0) {
    0x00023570 beq 0x2357c                                   |         
    0x00023574 ldr r0, [r6]                                  |         r0 = *(r6);
    0x00023578 bl 0x84f8                                     |         fflush (r0);
                                                             |     }
    0x0002357c mov r0, r5                                    |     r0 = r5;
    0x00023580 bl 0x9038                                     |     exit (r0);
                                                             | label_14:
    0x00023584 mov r0, r4                                    |     r0 = r4;
    0x00023588 bl 0x1bca0                                    |     r0 = fcn_0001bca0 (r0);
    0x0002358c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00023590 bne 0x23468                                   |         goto label_5;
                                                             |     }
    0x00023594 mov r0, r4                                    |     r0 = r4;
    0x00023598 bl 0x87d4                                     |     r0 = fcn_000087d4 ();
    0x0002359c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000235a0 beq 0x234cc                                   |         goto label_6;
                                                             |     }
    0x000235a4 b 0x233cc                                     |     goto label_1;
                                                             | label_7:
    0x000235a8 mvn r6, 0x15                                  |     r6 = ~0x15;
    0x000235ac b 0x233cc                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x26b30 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_context_next_umount ()                       | void mnt_context_next_umount (int32_t arg_48h, uint32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00026b30 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00026b34 ldr r8, [pc, 0x218]                               |     r8 = *(0x26d50);
    0x00026b38 sub sp, sp, 0x24                                  |     
    0x00026b3c ldr sb, [sp, 0x48]                                |     sb = *(arg_48h);
    0x00026b40 add r8, pc, r8                                    |     r8 = pc + r8;
    0x00026b44 cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x00026b48 movne ip, 0                                       |         
                                                                 |     }
                                                                 |     if (sb == 0) {
    0x00026b4c strne ip, [sb]                                    |         *(sb) = ip;
                                                                 |     }
    0x00026b50 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00026b54 movne ip, 0                                       |         
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x00026b58 strne ip, [r3]                                    |         *(r3) = ip;
                                                                 |     }
    0x00026b5c cmp r2, 0                                         |     
    0x00026b60 clz ip, r1                                        |     
    0x00026b64 lsr ip, ip, 5                                     |     
                                                                 |     if (r2 != 0) {
    0x00026b68 moveq ip, 1                                       |         
                                                                 |     }
    0x00026b6c cmp r0, 0                                         |     
                                                                 |     if (arg_48h == ) {
    0x00026b70 movne sl, ip                                      |         sl = ip;
                                                                 |     }
                                                                 |     if (arg_48h != ) {
    0x00026b74 moveq sl, 1                                       |         sl = 1;
                                                                 |     }
    0x00026b78 cmp sl, 0                                         |     
                                                                 |     if (sl == 0) {
    0x00026b7c mvnne r6, 0x15                                    |         r6 = ~0x15;
                                                                 |     }
                                                                 |     if (sl != 0) {
    0x00026b80 bne 0x26d34                                       |         goto label_1;
                                                                 |     }
    0x00026b84 mov fp, r1                                        |     
    0x00026b88 add r1, sp, 0x1c                                  |     r1 += var_1ch;
    0x00026b8c mov r4, r0                                        |     r4 = r0;
    0x00026b90 mov r7, r3                                        |     r7 = r3;
    0x00026b94 mov r5, r2                                        |     r5 = r2;
    0x00026b98 bl 0x84d4                                         |     fcn_000084d4 ();
    0x00026b9c str sl, [r4, 0x18]                                |     *((r4 + 0x18)) = sl;
    0x00026ba0 mov r6, r0                                        |     r6 = r0;
    0x00026ba4 mov r0, r4                                        |     r0 = r4;
    0x00026ba8 bl 0x85d0                                         |     fcn_000085d0 ();
    0x00026bac cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00026bb0 bne 0x26d34                                       |         goto label_1;
                                                                 |     }
    0x00026bb4 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00026bb8 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
                                                                 |     do {
    0x00026bbc mov r2, r5                                        |         r2 = r5;
    0x00026bc0 mov r1, fp                                        |         r1 = fp;
    0x00026bc4 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x00026bc8 bl 0x7fa0                                         |         r0 = fcn_00007fa0 ();
    0x00026bcc subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 != r0) {
    0x00026bd0 bne 0x26d34                                       |             goto label_1;
                                                                 |         }
    0x00026bd4 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00026bd8 bl 0x81d4                                         |         r0 = fcn_000081d4 ();
    0x00026bdc subs sl, r0, 0                                    |         sl = r0 - 0;
    0x00026be0 beq 0x26bbc                                       |         
                                                                 |     } while (sl == r0);
    0x00026be4 ldr r3, [pc, 0x16c]                               |     
    0x00026be8 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x00026bec str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00026bf0 ldr r3, [r3]                                      |     r3 = *(0x26d54);
    0x00026bf4 tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) != 0) {
    0x00026bf8 beq 0x26c78                                       |         
    0x00026bfc ldr r3, [pc, 0x158]                               |         r3 = *(0x26d58);
    0x00026c00 ldr r3, [r8, r3]                                  |         r3 = *((r8 + r3));
    0x00026c04 ldr fp, [r3]                                      |         fp = *(0x26d58);
    0x00026c08 bl 0x8204                                         |         getpid ();
    0x00026c0c ldr r3, [pc, 0x14c]                               |         r3 = *(0x26d5c);
    0x00026c10 ldr r1, [pc, 0x14c]                               |         r1 = *(0x26d60);
    0x00026c14 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00026c18 str r3, [sp]                                      |         *(sp) = r3;
    0x00026c1c ldr r3, [pc, 0x144]                               |         r3 = *(0x26d64);
    0x00026c20 add r1, pc, r1                                    |         r1 = pc + r1;
    0x00026c24 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00026c28 mov r2, r0                                        |         r2 = r0;
    0x00026c2c mov r0, fp                                        |         r0 = fp;
    0x00026c30 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x00026c34 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00026c38 bl 0x8de0                                         |         fcn_00008de0 ();
    0x00026c3c ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x00026c40 str r3, [sp, 0x14]                                |         var_14h = r3;
    0x00026c44 mov fp, r0                                        |         
    0x00026c48 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00026c4c bl 0x86fc                                         |         fcn_000086fc ();
    0x00026c50 ldr r2, [r4, 0xc]                                 |         r2 = *((r4 + 0xc));
    0x00026c54 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00026c58 ldr r1, [pc, 0x10c]                               |         r1 = *(0x26d68);
    0x00026c5c str r3, [sp]                                      |         *(sp) = r3;
    0x00026c60 add r1, pc, r1                                    |         r1 = pc + r1;
    0x00026c64 mov r3, fp                                        |         r3 = fp;
    0x00026c68 stmib sp, {r0, r2}                                |         __asm ("stmib sp, {r0, r2}");
    0x00026c6c mov r2, sl                                        |         r2 = sl;
    0x00026c70 mov r0, r4                                        |         r0 = r4;
    0x00026c74 bl 0x24190                                        |         fcn_00024190 (r0);
                                                                 |     }
    0x00026c78 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x00026c7c cmp r1, 0                                         |     
    0x00026c80 bne 0x26cc0                                       |     
                                                                 |     while (r0 != 0) {
    0x00026c84 ldr r1, [r4, 0xc]                                 |         r1 = *((r4 + 0xc));
    0x00026c88 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x00026c8c bne 0x26d40                                       |             goto label_2;
                                                                 |         }
                                                                 | label_0:
    0x00026c90 ldr r1, [r5]                                      |         r1 = *(r5);
    0x00026c94 mov r0, r4                                        |         r0 = r4;
    0x00026c98 bl 0x8aec                                         |         r0 = fcn_00008aec ();
    0x00026c9c subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 == r0) {
    0x00026ca0 bne 0x26cb8                                       |             
    0x00026ca4 mov r0, r4                                        |             r0 = r4;
    0x00026ca8 bl 0x82d0                                         |             fcn_000082d0 ();
    0x00026cac cmp r7, 0                                         |             
                                                                 |             if (r7 == 0) {
    0x00026cb0 strne r0, [r7]                                    |                 *(r7) = r0;
                                                                 |             }
                                                                 |             if (r7 == 0) {
    0x00026cb4 beq 0x26d34                                       |                 goto label_1;
                                                                 |             }
                                                                 |         }
    0x00026cb8 mov r6, r5                                        |         r6 = r5;
    0x00026cbc b 0x26d34                                         |         goto label_1;
    0x00026cc0 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00026cc4 bl 0x8480                                         |         r0 = fcn_00008480 ();
    0x00026cc8 cmp r0, 0                                         |         
    0x00026ccc bne 0x26c84                                       |         
                                                                 |     }
                                                                 |     do {
    0x00026cd0 cmp sb, 0                                         |         
                                                                 |         if (sb == 0) {
    0x00026cd4 movne r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if (sb == 0) {
    0x00026cd8 strne r3, [sb]                                    |             *(sb) = r3;
                                                                 |         }
    0x00026cdc ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00026ce0 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00026ce4 tst r3, 0x200                                     |         
                                                                 |         if ((r3 & 0x200) != 0) {
    0x00026ce8 beq 0x26d34                                       |             
    0x00026cec ldr r3, [pc, 0x68]                                |             r3 = *(0x26d58);
    0x00026cf0 ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x00026cf4 ldr r5, [r3]                                      |             r5 = *(0x26d58);
    0x00026cf8 bl 0x8204                                         |             getpid ();
    0x00026cfc ldr r3, [pc, 0x6c]                                |             r3 = *(0x26d6c);
    0x00026d00 ldr r1, [pc, 0x6c]                                |             r1 = *(0x26d70);
    0x00026d04 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00026d08 str r3, [sp]                                      |             *(sp) = r3;
    0x00026d0c ldr r3, [pc, 0x64]                                |             r3 = *(0x26d74);
    0x00026d10 add r1, pc, r1                                    |             r1 = pc + r1;
    0x00026d14 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00026d18 mov r2, r0                                        |             r2 = r0;
    0x00026d1c mov r0, r5                                        |             r0 = r5;
    0x00026d20 bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
    0x00026d24 ldr r1, [pc, 0x50]                                |             r1 = *(0x26d78);
    0x00026d28 mov r0, r4                                        |             r0 = r4;
    0x00026d2c add r1, pc, r1                                    |             r1 = pc + r1;
    0x00026d30 bl 0x24190                                        |             fcn_00024190 (r0);
                                                                 |         }
                                                                 | label_1:
    0x00026d34 mov r0, r6                                        |         r0 = r6;
    0x00026d38 add sp, sp, 0x24                                  |         
    0x00026d3c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_2:
    0x00026d40 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00026d44 bl 0x82ac                                         |         r0 = fcn_000082ac ();
    0x00026d48 cmp r0, 0                                         |         
    0x00026d4c beq 0x26cd0                                       |         
                                                                 |     } while (r0 == 0);
    0x00026d50 b 0x26c90                                         |     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/lib/libmount.so.1.1.0 @ 0x21b54 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.mnt_context_prepare_mount ()                 | void mnt_context_prepare_mount (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     char * format;
                                                             |     int32_t var_20h;
                                                             |     int32_t n;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     char * s1;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_a0h;
                                                             |     int32_t var_a4h;
                                                             |     r0 = arg1;
    0x00021b54 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00021b58 ldr r5, [pc, 0xc80]                           |     r5 = *(0x227dc);
    0x00021b5c subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00021b60 add r5, pc, r5                                |     r5 = pc + r5;
    0x00021b64 sub sp, sp, 0xa4                              |     
    0x00021b68 bne 0x21b7c                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_0:
    0x00021b6c mvn sb, 0x15                                  |         sb = ~0x15;
                                                             | label_1:
    0x00021b70 mov r0, sb                                    |         r0 = sb;
    0x00021b74 add sp, sp, 0xa4                              |         
    0x00021b78 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00021b7c ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00021b80 cmp r0, 0                                     |         
    0x00021b84 beq 0x21b6c                                   |         
                                                             |     }
    0x00021b88 bl 0x845c                                     |     r0 = fcn_0000845c ();
    0x00021b8c subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00021b90 bne 0x21b6c                                   |         goto label_0;
                                                             |     }
    0x00021b94 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00021b98 bl 0x8c90                                     |     r0 = fcn_00008c90 ();
    0x00021b9c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00021ba0 beq 0x21be0                                   |         goto label_13;
                                                             |     }
                                                             | label_2:
    0x00021ba4 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00021ba8 tst r3, 0x1000000                             |     
                                                             |     if ((r3 & 0x1000000) != 0) {
    0x00021bac bne 0x21b70                                   |         goto label_1;
                                                             |     }
    0x00021bb0 ldr r3, [r4, 0x78]                            |     r3 = *((r4 + 0x78));
    0x00021bb4 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x00021bb8 beq 0x21bf4                                   |         goto label_14;
                                                             |     }
    0x00021bbc ldr r3, [pc, 0xc20]                           |     
    0x00021bc0 ldr r1, [pc, 0xc20]                           |     r1 = *(0x227e4);
    0x00021bc4 ldr r0, [pc, 0xc20]                           |     r0 = *(0x227e8);
    0x00021bc8 ldr r2, [pc, 0xc20]                           |     r2 = *(0x227ec);
    0x00021bcc add r3, pc, r3                                |     r3 = pc + r3;
    0x00021bd0 add r3, r3, 0x8f                              |     r3 = 0x2286f;
    0x00021bd4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00021bd8 add r0, pc, r0                                |     r0 = pc + r0;
                                                             | label_3:
    0x00021bdc bl 0x908c                                     |     assert ();
                                                             | label_13:
    0x00021be0 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00021be4 bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x00021be8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00021bec bne 0x21ba4                                   |         goto label_2;
                                                             |     }
    0x00021bf0 b 0x21b6c                                     |     goto label_0;
                                                             | label_14:
    0x00021bf4 ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x00021bf8 cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x00021bfc beq 0x21c24                                   |         
    0x00021c00 ldr r3, [pc, 0xbec]                           |         
    0x00021c04 ldr r1, [pc, 0xbec]                           |         r1 = *(0x227f4);
    0x00021c08 ldr r0, [pc, 0xbec]                           |         r0 = *(0x227f8);
    0x00021c0c add r3, pc, r3                                |         r3 = pc + r3;
    0x00021c10 add r3, r3, 0x8f                              |         r3 = 0x2287f;
    0x00021c14 ldr r2, [pc, 0xbe4]                           |         r2 = *(0x227fc);
    0x00021c18 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021c1c add r0, pc, r0                                |         r0 = pc + r0;
    0x00021c20 b 0x21bdc                                     |         goto label_3;
                                                             |     }
    0x00021c24 str r3, [r4]                                  |     *(r4) = r3;
    0x00021c28 mov r0, r4                                    |     r0 = r4;
    0x00021c2c bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x00021c30 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00021c34 str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             |     if (r3 == r0) {
    0x00021c38 bne 0x21c44                                   |         
                                                             | label_11:
    0x00021c3c ldr sb, [pc, 0xbc0]                           |         sb = *(0x00022804);
    0x00021c40 b 0x21b70                                     |         goto label_1;
                                                             |     }
    0x00021c44 ldr r3, [pc, 0xbbc]                           |     r3 = *(0x22804);
    0x00021c48 ldr r7, [r5, r3]                              |     r7 = *((r5 + r3));
    0x00021c4c ldr r3, [r7]                                  |     r3 = *(r7);
    0x00021c50 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00021c54 beq 0x21ca0                                   |         
    0x00021c58 ldr r3, [pc, 0xbac]                           |         r3 = *(0x22808);
    0x00021c5c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00021c60 ldr r6, [r3]                                  |         r6 = *(0x22808);
    0x00021c64 bl 0x8204                                     |         getpid ();
    0x00021c68 ldr r3, [pc, 0xba0]                           |         r3 = *(0x2280c);
    0x00021c6c ldr r1, [pc, 0xba0]                           |         r1 = *(0x22810);
    0x00021c70 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021c74 str r3, [sp]                                  |         *(sp) = r3;
    0x00021c78 ldr r3, [pc, 0xb98]                           |         r3 = *(0x22814);
    0x00021c7c add r1, pc, r1                                |         r1 = pc + r1;
    0x00021c80 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021c84 mov r2, r0                                    |         r2 = r0;
    0x00021c88 mov r0, r6                                    |         r0 = r6;
    0x00021c8c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00021c90 ldr r1, [pc, 0xb84]                           |         r1 = *(0x22818);
    0x00021c94 mov r0, r4                                    |         r0 = r4;
    0x00021c98 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021c9c bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00021ca0 mov r0, r4                                    |     r0 = r4;
    0x00021ca4 bl 0x878c                                     |     r0 = fcn_0000878c ();
    0x00021ca8 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00021cac bne 0x21de4                                   |         goto label_8;
                                                             |     }
    0x00021cb0 mov r0, r4                                    |     r0 = r4;
    0x00021cb4 bl 0x1b4e4                                    |     r0 = fcn_0001b4e4 (r0);
    0x00021cb8 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00021cbc bne 0x21de4                                   |         goto label_8;
                                                             |     }
    0x00021cc0 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00021cc4 str sb, [sp, 0x34]                            |     s1 = sb;
    0x00021cc8 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x00021ccc bne 0x21cf4                                   |         
    0x00021cd0 ldr r3, [pc, 0xb48]                           |         
    0x00021cd4 ldr r1, [pc, 0xb48]                           |         r1 = *(0x22820);
    0x00021cd8 ldr r0, [pc, 0xb48]                           |         r0 = *(0x22824);
    0x00021cdc add r3, pc, r3                                |         r3 = pc + r3;
    0x00021ce0 add r3, r3, 0xa9                              |         r3 = 0x228c5;
    0x00021ce4 ldr r2, [pc, 0xb40]                           |         r2 = *(0x22828);
    0x00021ce8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021cec add r0, pc, r0                                |         r0 = pc + r0;
    0x00021cf0 b 0x21bdc                                     |         goto label_3;
                                                             |     }
    0x00021cf4 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00021cf8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00021cfc beq 0x2205c                                   |         goto label_15;
                                                             |     }
    0x00021d00 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00021d04 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00021d08 beq 0x21d54                                   |         
    0x00021d0c ldr r3, [pc, 0xaf8]                           |         r3 = *(0x22808);
    0x00021d10 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00021d14 ldr r6, [r3]                                  |         r6 = *(0x22808);
    0x00021d18 bl 0x8204                                     |         getpid ();
    0x00021d1c ldr r3, [pc, 0xb0c]                           |         r3 = *(0x2282c);
    0x00021d20 ldr r1, [pc, 0xb0c]                           |         r1 = *(0x22830);
    0x00021d24 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021d28 str r3, [sp]                                  |         *(sp) = r3;
    0x00021d2c ldr r3, [pc, 0xb04]                           |         r3 = *(0x22834);
    0x00021d30 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021d34 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021d38 mov r2, r0                                    |         r2 = r0;
    0x00021d3c mov r0, r6                                    |         r0 = r6;
    0x00021d40 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00021d44 ldr r1, [pc, 0xaf0]                           |         r1 = *(0x22838);
    0x00021d48 mov r0, r4                                    |         r0 = r4;
    0x00021d4c add r1, pc, r1                                |         r1 = pc + r1;
    0x00021d50 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00021d54 add r1, sp, 0x34                              |     r1 += s1;
    0x00021d58 mov r0, r4                                    |     r0 = r4;
    0x00021d5c bl 0x8954                                     |     fcn_00008954 ();
    0x00021d60 mov r0, r4                                    |     r0 = r4;
    0x00021d64 bl 0x8f84                                     |     r0 = fcn_00008f84 ();
    0x00021d68 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00021d6c ldreq r3, [r4, 0x44]                          |         r3 = *((r4 + 0x44));
                                                             |     }
    0x00021d70 biceq r3, r3, 0x60                            |     __asm ("biceq r3, r3, 0x60");
                                                             |     if (r0 != 0) {
    0x00021d74 streq r3, [r4, 0x44]                          |         *((r4 + 0x44)) = r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00021d78 beq 0x2205c                                   |         goto label_15;
                                                             |     }
    0x00021d7c mov r0, r4                                    |     r0 = r4;
    0x00021d80 bl 0x8f48                                     |     r0 = fcn_00008f48 ();
    0x00021d84 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00021d88 bne 0x21e3c                                   |         goto label_16;
                                                             |     }
    0x00021d8c ldr r3, [r7]                                  |     r3 = *(r7);
    0x00021d90 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00021d94 beq 0x21de0                                   |         goto label_5;
                                                             |     }
    0x00021d98 ldr r3, [pc, 0xa6c]                           |     r3 = *(0x22808);
    0x00021d9c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00021da0 ldr r6, [r3]                                  |     r6 = *(0x22808);
    0x00021da4 bl 0x8204                                     |     getpid ();
    0x00021da8 ldr r3, [pc, 0xa90]                           |     r3 = *(0x2283c);
    0x00021dac ldr r1, [pc, 0xa90]                           |     r1 = *(0x22840);
    0x00021db0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00021db4 str r3, [sp]                                  |     *(sp) = r3;
    0x00021db8 ldr r3, [pc, 0xa88]                           |     r3 = *(0x22844);
    0x00021dbc add r1, pc, r1                                |     r1 = pc + r1;
    0x00021dc0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00021dc4 mov r2, r0                                    |     r2 = r0;
    0x00021dc8 mov r0, r6                                    |     r0 = r6;
    0x00021dcc bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00021dd0 ldr r1, [pc, 0xa74]                           |     r1 = *(0x22848);
    0x00021dd4 add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_4:
    0x00021dd8 mov r0, r4                                    |     r0 = r4;
    0x00021ddc bl 0x2058c                                    |     fcn_0002058c (r0);
                                                             |     do {
                                                             | label_5:
    0x00021de0 mvn sb, 0                                     |         sb = ~0;
                                                             | label_8:
    0x00021de4 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00021de8 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) == 0) {
    0x00021dec beq 0x22788                                   |             goto label_17;
                                                             |         }
    0x00021df0 ldr r3, [pc, 0xa14]                           |         r3 = *(0x22808);
    0x00021df4 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00021df8 ldr r5, [r3]                                  |         r5 = *(0x22808);
    0x00021dfc bl 0x8204                                     |         getpid ();
    0x00021e00 ldr r3, [pc, 0xa48]                           |         r3 = *(0x2284c);
    0x00021e04 ldr r1, [pc, 0xa48]                           |         r1 = *(0x22850);
    0x00021e08 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021e0c str r3, [sp]                                  |         *(sp) = r3;
    0x00021e10 ldr r3, [pc, 0xa40]                           |         r3 = *(0x22854);
    0x00021e14 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021e18 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021e1c mov r2, r0                                    |         r2 = r0;
    0x00021e20 mov r0, r5                                    |         r0 = r5;
    0x00021e24 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00021e28 ldr r1, [pc, 0xa2c]                           |         r1 = *(0x22858);
    0x00021e2c mov r0, r4                                    |         r0 = r4;
    0x00021e30 add r1, pc, r1                                |         r1 = pc + r1;
    0x00021e34 bl 0x2058c                                    |         fcn_0002058c (r0);
    0x00021e38 b 0x22788                                     |         goto label_17;
                                                             | label_16:
    0x00021e3c ldr r3, [r4, 0x44]                            |         r3 = *((r4 + 0x44));
    0x00021e40 tst r3, 8                                     |         
                                                             |         if ((r3 & 8) != 0) {
    0x00021e44 beq 0x21edc                                   |             
    0x00021e48 ldr r0, [r4, 0x10]                            |             r0 = *((r4 + 0x10));
    0x00021e4c ldr r1, [pc, 0xa0c]                           |             r1 = *(0x2285c);
    0x00021e50 mov r2, 0                                     |             r2 = 0;
    0x00021e54 add r3, sp, 0xa0                              |             r3 += var_a0h;
    0x00021e58 str r2, [r3, -0x68]!                          |             *((r3 -= 0x68)) = r2;
    0x00021e5c add r1, pc, r1                                |             r1 = pc + r1;
    0x00021e60 ldr r0, [r0, 0x4c]                            |             r0 = *((r0 + 0x4c));
    0x00021e64 bl 0x84a4                                     |             r0 = fcn_000084a4 ();
    0x00021e68 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00021e6c bne 0x21edc                                   |                 goto label_18;
                                                             |             }
    0x00021e70 ldr r3, [sp, 0x38]                            |             r3 = var_38h;
    0x00021e74 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00021e78 beq 0x21edc                                   |                 goto label_18;
                                                             |             }
    0x00021e7c ldr r3, [r7]                                  |             r3 = *(r7);
    0x00021e80 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) != 0) {
    0x00021e84 beq 0x21ed0                                   |                 
    0x00021e88 ldr r3, [pc, 0x97c]                           |                 r3 = *(0x22808);
    0x00021e8c ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x00021e90 ldr r6, [r3]                                  |                 r6 = *(0x22808);
    0x00021e94 bl 0x8204                                     |                 getpid ();
    0x00021e98 ldr r3, [pc, 0x9c4]                           |                 r3 = "__trying_to_remount_read_only";
    0x00021e9c ldr r1, [pc, 0x9c4]                           |                 r1 = *(0x22864);
    0x00021ea0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00021ea4 str r3, [sp]                                  |                 *(sp) = r3;
    0x00021ea8 ldr r3, [pc, 0x9bc]                           |                 r3 = *(0x22868);
    0x00021eac add r1, pc, r1                                |                 r1 = pc + r1;
    0x00021eb0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00021eb4 mov r2, r0                                    |                 r2 = r0;
    0x00021eb8 mov r0, r6                                    |                 r0 = r6;
    0x00021ebc bl 0x8798                                     |                 fprintf (r0, r1, r2, "__trying_to_remount_read_only")
    0x00021ec0 ldr r1, [pc, 0x9a8]                           |                 r1 = *(0x2286c);
    0x00021ec4 mov r0, r4                                    |                 r0 = r4;
    0x00021ec8 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00021ecc bl 0x2058c                                    |                 fcn_0002058c (r0);
                                                             |             }
    0x00021ed0 ldr r3, [r4, 0x44]                            |             r3 = *((r4 + 0x44));
    0x00021ed4 bic r3, r3, 8                                 |             r3 = BIT_MASK (r3, 8);
    0x00021ed8 str r3, [r4, 0x44]                            |             *((r4 + 0x44)) = r3;
                                                             |         }
                                                             | label_18:
    0x00021edc ldr r3, [sp, 0x34]                            |         r3 = s1;
    0x00021ee0 tst r3, 0x60                                  |         
                                                             |         if ((r3 & 0x60) == 0) {
    0x00021ee4 beq 0x22000                                   |             goto label_19;
                                                             |         }
    0x00021ee8 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00021eec bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x00021ef0 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x00021ef4 movne r8, 0                                   |             r8 = 0;
                                                             |         }
                                                             |         if (r6 == r0) {
    0x00021ef8 movne sb, r8                                  |             sb = r8;
                                                             |         }
                                                             |         if (r6 != r0) {
    0x00021efc bne 0x21f78                                   |             goto label_20;
                                                             |         }
    0x00021f00 mov r0, r4                                    |         r0 = r4;
    0x00021f04 bl 0x8558                                     |         r0 = fcn_00008558 ();
    0x00021f08 mov sb, r0                                    |         sb = r0;
    0x00021f0c mov r0, r4                                    |         r0 = r4;
    0x00021f10 bl 0x890c                                     |         fcn_0000890c ();
    0x00021f14 mov r1, sb                                    |         r1 = sb;
    0x00021f18 bl 0x7ec8                                     |         r0 = fcn_00007ec8 ();
    0x00021f1c subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x00021f20 movne r8, r6                                  |             r8 = r6;
                                                             |         }
                                                             |         if (r6 != r0) {
    0x00021f24 bne 0x21f78                                   |             goto label_20;
                                                             |         }
    0x00021f28 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00021f2c tst r3, 0x200                                 |         
    0x00021f30 beq 0x21de0                                   |         
                                                             |     } while ((r3 & 0x200) == 0);
    0x00021f34 ldr r3, [pc, 0x8d0]                           |     r3 = *(0x22808);
    0x00021f38 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00021f3c ldr r6, [r3]                                  |     r6 = *(0x22808);
    0x00021f40 bl 0x8204                                     |     getpid ();
    0x00021f44 ldr r3, [pc, 0x928]                           |     r3 = *(0x22870);
    0x00021f48 ldr r1, [pc, 0x928]                           |     r1 = *(0x22874);
    0x00021f4c add r3, pc, r3                                |     r3 = pc + r3;
    0x00021f50 str r3, [sp]                                  |     *(sp) = r3;
    0x00021f54 ldr r3, [pc, 0x920]                           |     r3 = *(0x22878);
    0x00021f58 add r1, pc, r1                                |     r1 = pc + r1;
    0x00021f5c add r3, pc, r3                                |     r3 = pc + r3;
    0x00021f60 mov r2, r0                                    |     r2 = r0;
    0x00021f64 mov r0, r6                                    |     r0 = r6;
    0x00021f68 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00021f6c ldr r1, [pc, 0x90c]                           |     r1 = *(0x2287c);
    0x00021f70 add r1, pc, r1                                |     r1 = pc + r1;
    0x00021f74 b 0x21dd8                                     |     goto label_4;
                                                             | label_20:
    0x00021f78 ldr r1, [pc, 0x904]                           |     r1 = *(0x22880);
    0x00021f7c mov r2, 5                                     |     r2 = 5;
    0x00021f80 add r1, pc, r1                                |     r1 = pc + r1;
    0x00021f84 mov r0, r6                                    |     r0 = r6;
    0x00021f88 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00021f8c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00021f90 bne 0x21ff0                                   |         goto label_21;
                                                             |     }
    0x00021f94 add r1, sp, 0x38                              |     r1 += var_38h;
    0x00021f98 mov r0, r6                                    |     r0 = r6;
    0x00021f9c bl 0x8060                                     |     r0 = stat64 ();
    0x00021fa0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00021fa4 bne 0x21ff0                                   |         goto label_21;
                                                             |     }
    0x00021fa8 ldr r3, [sp, 0x34]                            |     r3 = s1;
    0x00021fac tst r3, 0x20                                  |     
    0x00021fb0 bne 0x21fd4                                   |     
                                                             |     while (r0 != r3) {
    0x00021fb4 ldr r3, [sp, 0x34]                            |         r3 = s1;
    0x00021fb8 tst r3, 0x40                                  |         
                                                             |         if ((r3 & 0x40) == 0) {
    0x00021fbc beq 0x21ff0                                   |             goto label_21;
                                                             |         }
    0x00021fc0 ldr r0, [sp, 0x54]                            |         r0 = var_54h;
    0x00021fc4 bl 0x1959c                                    |         r0 = fcn_0001959c (r0);
    0x00021fc8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00021fcc bne 0x21fe4                                   |             goto label_22;
                                                             |         }
    0x00021fd0 b 0x21ff0                                     |         goto label_21;
    0x00021fd4 bl 0x8378                                     |         getuid ();
    0x00021fd8 ldr r3, [sp, 0x50]                            |         r3 = var_50h;
    0x00021fdc cmp r0, r3                                    |         
    0x00021fe0 bne 0x21fb4                                   |         
                                                             |     }
                                                             | label_22:
    0x00021fe4 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x00021fe8 orr r3, r3, 8                                 |     r3 |= 8;
    0x00021fec str r3, [r4, 0x44]                            |     *((r4 + 0x44)) = r3;
                                                             | label_21:
    0x00021ff0 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x00021ff4 bne 0x22000                                   |         
    0x00021ff8 mov r0, r8                                    |         r0 = r8;
    0x00021ffc bl 0x91c4                                     |         free (r0);
                                                             |     }
                                                             | label_19:
    0x00022000 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x00022004 tst r3, 0x18                                  |     
                                                             |     if ((r3 & 0x18) != 0) {
    0x00022008 bne 0x2205c                                   |         goto label_15;
                                                             |     }
    0x0002200c ldr r3, [r7]                                  |     r3 = *(r7);
    0x00022010 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00022014 beq 0x21de0                                   |         goto label_5;
                                                             |     }
    0x00022018 ldr r3, [pc, 0x7ec]                           |     r3 = *(0x22808);
    0x0002201c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00022020 ldr r6, [r3]                                  |     r6 = *(0x22808);
    0x00022024 bl 0x8204                                     |     getpid ();
    0x00022028 ldr r3, [pc, 0x858]                           |     r3 = *(0x22884);
    0x0002202c ldr r1, [pc, 0x858]                           |     r1 = *(0x22888);
    0x00022030 add r3, pc, r3                                |     r3 = pc + r3;
    0x00022034 str r3, [sp]                                  |     *(sp) = r3;
    0x00022038 ldr r3, [pc, 0x850]                           |     r3 = *(0x2288c);
    0x0002203c add r1, pc, r1                                |     r1 = pc + r1;
    0x00022040 add r3, pc, r3                                |     r3 = pc + r3;
    0x00022044 mov r2, r0                                    |     r2 = r0;
    0x00022048 mov r0, r6                                    |     r0 = r6;
    0x0002204c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00022050 ldr r1, [pc, 0x83c]                           |     r1 = *(0x22890);
    0x00022054 add r1, pc, r1                                |     r1 = pc + r1;
    0x00022058 b 0x21dd8                                     |     goto label_4;
                                                             | label_15:
    0x0002205c ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00022060 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x00022064 bne 0x2208c                                   |         
    0x00022068 ldr r3, [pc, 0x828]                           |         
    0x0002206c ldr r1, [pc, 0x828]                           |         r1 = *(0x22898);
    0x00022070 ldr r0, [pc, 0x828]                           |         r0 = *(0x2289c);
    0x00022074 add r3, pc, r3                                |         r3 = pc + r3;
    0x00022078 add r3, r3, 0xbe                              |         r3 = 0x22952;
    0x0002207c mov r2, 0xdc                                  |         r2 = 0xdc;
    0x00022080 add r1, pc, r1                                |         r1 = pc + r1;
    0x00022084 add r0, pc, r0                                |         r0 = pc + r0;
    0x00022088 b 0x21bdc                                     |         goto label_3;
                                                             |     }
    0x0002208c ldr r2, [r4, 0x10]                            |     r2 = *((r4 + 0x10));
    0x00022090 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00022094 beq 0x22730                                   |         goto label_23;
                                                             |     }
    0x00022098 tst r3, 0x8000000                             |     
                                                             |     if ((r3 & 0x8000000) != 0) {
    0x0002209c bne 0x22730                                   |         goto label_23;
                                                             |     }
    0x000220a0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x000220a4 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000220a8 beq 0x220f4                                   |         
    0x000220ac ldr r3, [pc, 0x758]                           |         r3 = *(0x22808);
    0x000220b0 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000220b4 ldr r6, [r3]                                  |         r6 = *(0x22808);
    0x000220b8 bl 0x8204                                     |         getpid ();
    0x000220bc ldr r3, [pc, 0x7e0]                           |         r3 = *(0x228a0);
    0x000220c0 ldr r1, [pc, 0x7e0]                           |         r1 = *(0x228a4);
    0x000220c4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000220c8 str r3, [sp]                                  |         *(sp) = r3;
    0x000220cc ldr r3, [pc, 0x7d8]                           |         r3 = *(0x228a8);
    0x000220d0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000220d4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000220d8 mov r2, r0                                    |         r2 = r0;
    0x000220dc mov r0, r6                                    |         r0 = r6;
    0x000220e0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000220e4 ldr r1, [pc, 0x7c4]                           |         r1 = *(0x228ac);
    0x000220e8 mov r0, r4                                    |         r0 = r4;
    0x000220ec add r1, pc, r1                                |         r1 = pc + r1;
    0x000220f0 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x000220f4 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x000220f8 ldr r6, [r4, 0x10]                            |     r6 = *((r4 + 0x10));
    0x000220fc tst r3, 8                                     |     
                                                             |     if ((r3 & 8) == 0) {
    0x00022100 beq 0x22130                                   |         goto label_24;
                                                             |     }
    0x00022104 ldr r1, [pc, 0x7a8]                           |     r1 = *(0x228b0);
    0x00022108 add r3, sp, 0x24                              |     r3 += n;
    0x0002210c add r2, sp, 0x20                              |     r2 += var_20h;
    0x00022110 add r1, pc, r1                                |     r1 = pc + r1;
    0x00022114 ldr r0, [r6, 0x4c]                            |     r0 = *((r6 + 0x4c));
    0x00022118 bl 0x84a4                                     |     r0 = fcn_000084a4 ();
    0x0002211c cmp r0, 0                                     |     
    0x00022120 beq 0x223f8                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_6:
    0x00022124 ldr r3, [r4, 0x6c]                            |         r3 = *((r4 + 0x6c));
    0x00022128 orr r3, r3, 0x800000                          |         r3 |= 0x800000;
    0x0002212c str r3, [r4, 0x6c]                            |         *((r4 + 0x6c)) = r3;
                                                             | label_24:
    0x00022130 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00022134 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x00022138 beq 0x22184                                   |             
    0x0002213c ldr r3, [pc, 0x6c8]                           |             r3 = *(0x22808);
    0x00022140 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00022144 ldr r8, [r3]                                  |             r8 = *(0x22808);
    0x00022148 bl 0x8204                                     |             getpid ();
    0x0002214c ldr r3, [pc, 0x764]                           |             r3 = *(0x228b4);
    0x00022150 ldr r1, [pc, 0x764]                           |             r1 = *(0x228b8);
    0x00022154 add r3, pc, r3                                |             r3 = pc + r3;
    0x00022158 str r3, [sp]                                  |             *(sp) = r3;
    0x0002215c ldr r3, [pc, 0x75c]                           |             r3 = *(0x228bc);
    0x00022160 add r1, pc, r1                                |             r1 = pc + r1;
    0x00022164 add r3, pc, r3                                |             r3 = pc + r3;
    0x00022168 mov r2, r0                                    |             r2 = r0;
    0x0002216c mov r0, r8                                    |             r0 = r8;
    0x00022170 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00022174 ldr r1, [pc, 0x748]                           |             r1 = *(0x228c0);
    0x00022178 mov r0, r4                                    |             r0 = r4;
    0x0002217c add r1, pc, r1                                |             r1 = pc + r1;
    0x00022180 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x00022184 mov r0, 1                                     |         r0 = 1;
    0x00022188 ldr r8, [r4, 0x3c]                            |         r8 = *((r4 + 0x3c));
    0x0002218c bl 0x8c60                                     |         fcn_00008c60 ();
    0x00022190 mov r1, r8                                    |         r1 = r8;
    0x00022194 mov r2, r0                                    |         r2 = r0;
    0x00022198 add r0, r6, 0x40                              |         r0 = r6 + 0x40;
    0x0002219c bl 0x8000                                     |         r0 = fcn_00008000 ();
    0x000221a0 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x000221a4 bne 0x226a4                                   |             goto label_25;
                                                             |         }
    0x000221a8 ldr r3, [r7]                                  |         r3 = *(r7);
    0x000221ac tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x000221b0 beq 0x221fc                                   |             
    0x000221b4 ldr r3, [pc, 0x650]                           |             r3 = *(0x22808);
    0x000221b8 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x000221bc ldr r8, [r3]                                  |             r8 = *(0x22808);
    0x000221c0 bl 0x8204                                     |             getpid ();
    0x000221c4 ldr r3, [pc, 0x6fc]                           |             r3 = *(0x228c4);
    0x000221c8 ldr r1, [pc, 0x6fc]                           |             r1 = *(0x228c8);
    0x000221cc add r3, pc, r3                                |             r3 = pc + r3;
    0x000221d0 str r3, [sp]                                  |             *(sp) = r3;
    0x000221d4 ldr r3, [pc, 0x6f4]                           |             r3 = *(0x228cc);
    0x000221d8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000221dc add r3, pc, r3                                |             r3 = pc + r3;
    0x000221e0 mov r2, r0                                    |             r2 = r0;
    0x000221e4 mov r0, r8                                    |             r0 = r8;
    0x000221e8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000221ec ldr r1, [pc, 0x6e0]                           |             r1 = *(0x228d0);
    0x000221f0 mov r0, r4                                    |             r0 = r4;
    0x000221f4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000221f8 bl 0x2058c                                    |             fcn_0002058c (r0);
                                                             |         }
    0x000221fc add r3, r6, 0x4c                              |         r3 = r6 + 0x4c;
    0x00022200 mov r0, 2                                     |         r0 = 2;
    0x00022204 ldr r8, [r4, 0x44]                            |         r8 = *((r4 + 0x44));
    0x00022208 str r3, [sp, 0x14]                            |         var_14h = r3;
    0x0002220c bl 0x8c60                                     |         fcn_00008c60 ();
    0x00022210 mov r1, r8                                    |         r1 = r8;
    0x00022214 mov r2, r0                                    |         r2 = r0;
    0x00022218 add r0, r6, 0x4c                              |         r0 = r6 + 0x4c;
    0x0002221c bl 0x8000                                     |         r0 = fcn_00008000 ();
    0x00022220 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x00022224 bne 0x226a4                                   |             goto label_25;
                                                             |         }
    0x00022228 ldr r0, [r6, 0x40]                            |         r0 = *((r6 + 0x40));
    0x0002222c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00022230 beq 0x22248                                   |             
    0x00022234 ldrsb r8, [r0]                                |             r8 = *(r0);
    0x00022238 cmp r8, 0                                     |             
                                                             |             if (r8 != 0) {
    0x0002223c bne 0x22248                                   |                 goto label_26;
                                                             |             }
    0x00022240 bl 0x91c4                                     |             free (r0);
    0x00022244 str r8, [r6, 0x40]                            |             *((r6 + 0x40)) = r8;
                                                             |         }
                                                             | label_26:
    0x00022248 ldr r0, [r6, 0x4c]                            |         r0 = *((r6 + 0x4c));
    0x0002224c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00022250 beq 0x22268                                   |             
    0x00022254 ldrsb r8, [r0]                                |             r8 = *(r0);
    0x00022258 cmp r8, 0                                     |             
                                                             |             if (r8 != 0) {
    0x0002225c bne 0x22268                                   |                 goto label_27;
                                                             |             }
    0x00022260 bl 0x91c4                                     |             free (r0);
    0x00022264 str r8, [r6, 0x4c]                            |             *((r6 + 0x4c)) = r8;
                                                             |         }
                                                             | label_27:
    0x00022268 ldr r3, [r4, 0x3c]                            |         r3 = *((r4 + 0x3c));
    0x0002226c tst r3, 0x1e0000                              |         
                                                             |         if ((r3 & 0x1e0000) != 0) {
    0x00022270 beq 0x2233c                                   |             
    0x00022274 ldr r0, [r4, 0x10]                            |             r0 = *((r4 + 0x10));
    0x00022278 bl 0x8bdc                                     |             r0 = fcn_00008bdc ();
    0x0002227c cmp r0, 0                                     |             
    0x00022280 str r0, [sp, 0x2c]                            |             var_2ch = r0;
                                                             |             if (r0 == 0) {
    0x00022284 beq 0x2233c                                   |                 goto label_28;
                                                             |             }
    0x00022288 ldr r3, [r7]                                  |             r3 = *(r7);
    0x0002228c tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) != 0) {
    0x00022290 beq 0x222dc                                   |                 
    0x00022294 ldr r3, [pc, 0x570]                           |                 r3 = *(0x22808);
    0x00022298 ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x0002229c ldr r8, [r3]                                  |                 r8 = *(0x22808);
    0x000222a0 bl 0x8204                                     |                 getpid ();
    0x000222a4 ldr r3, [pc, 0x62c]                           |                 r3 = *(0x228d4);
    0x000222a8 ldr r1, [pc, 0x62c]                           |                 r1 = *(0x228d8);
    0x000222ac add r3, pc, r3                                |                 r3 = pc + r3;
    0x000222b0 str r3, [sp]                                  |                 *(sp) = r3;
    0x000222b4 ldr r3, [pc, 0x624]                           |                 r3 = *(0x228dc);
    0x000222b8 add r1, pc, r1                                |                 r1 = pc + r1;
    0x000222bc add r3, pc, r3                                |                 r3 = pc + r3;
    0x000222c0 mov r2, r0                                    |                 r2 = r0;
    0x000222c4 mov r0, r8                                    |                 r0 = r8;
    0x000222c8 bl 0x8798                                     |                 fprintf (r0, r1, r2, r3)
    0x000222cc ldr r1, [pc, 0x610]                           |                 r1 = *(0x228e0);
    0x000222d0 mov r0, r4                                    |                 r0 = r4;
    0x000222d4 add r1, pc, r1                                |                 r1 = pc + r1;
    0x000222d8 bl 0x2058c                                    |                 fcn_0002058c (r0);
                                                             |             }
    0x000222dc mov r0, 1                                     |             r0 = 1;
    0x000222e0 bl 0x8c60                                     |             fcn_00008c60 ();
    0x000222e4 ldr r3, [pc, 0x5fc]                           |             r3 = *(0x228e4);
    0x000222e8 ldr fp, [pc, 0x5fc]                           |             fp = *(0x228e8);
    0x000222ec add r3, pc, r3                                |             r3 = pc + r3;
    0x000222f0 str r3, [sp, 0x18]                            |             var_18h = r3;
    0x000222f4 ldr r3, [pc, 0x5f4]                           |             r3 = *(0x228ec);
    0x000222f8 mov r8, 0                                     |             r8 = 0;
    0x000222fc add r3, pc, r3                                |             r3 = pc + r3;
    0x00022300 add fp, pc, fp                                |             
    0x00022304 str r3, [sp, 0x1c]                            |             format = r3;
    0x00022308 str r0, [sp, 0x34]                            |             s1 = r0;
                                                             | label_7:
    0x0002230c mov r3, 0                                     |             r3 = 0;
    0x00022310 str r3, [sp]                                  |             *(sp) = r3;
    0x00022314 add r2, sp, 0x30                              |             r2 += var_30h;
    0x00022318 add r1, sp, 0x28                              |             r1 += var_28h;
    0x0002231c add r0, sp, 0x2c                              |             r0 += var_2ch;
    0x00022320 bl 0x83fc                                     |             r0 = fcn_000083fc ();
    0x00022324 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00022328 beq 0x22420                                   |                 goto label_29;
                                                             |             }
    0x0002232c cmp r8, 0                                     |             
                                                             |             if (r8 == 0) {
    0x00022330 ldrne r3, [r4, 0x3c]                          |                 r3 = *((r4 + 0x3c));
                                                             |             }
                                                             |             if (r8 == 0) {
    0x00022334 orrne r3, r3, 0x4000                          |                 r3 |= 0x4000;
                                                             |             }
                                                             |             if (r8 != 0) {
    0x00022338 strne r3, [r4, 0x3c]                          |                 *((r4 + 0x3c)) = r3;
                                                             |                 goto label_28;
                                                             |             }
                                                             |         }
                                                             | label_28:
    0x0002233c ldr r3, [r4, 0x3c]                            |         r3 = *((r4 + 0x3c));
    0x00022340 tst r3, 0x1000                                |         
                                                             |         if ((r3 & 0x1000) != 0) {
    0x00022344 bne 0x225b8                                   |             goto label_30;
                                                             |         }
                                                             | label_9:
    0x00022348 ldr r3, [r6, 0x48]                            |         r3 = *((r6 + 0x48));
    0x0002234c ldr sl, [pc, 0x5a0]                           |         sl = *(0x228f0);
    0x00022350 ldr fp, [pc, 0x5a0]                           |         fp = *(0x228f4);
    0x00022354 str r3, [sp, 0x30]                            |         var_30h = r3;
    0x00022358 add sl, pc, sl                                |         sl = pc + sl;
    0x0002235c add r3, sp, 0x20                              |         r3 += var_20h;
    0x00022360 add fp, pc, fp                                |         
    0x00022364 str r3, [sp, 0x18]                            |         var_18h = r3;
                                                             | label_10:
    0x00022368 add r3, sp, 0x24                              |         r3 += n;
    0x0002236c add r8, sp, 0x30                              |         r8 += var_30h;
    0x00022370 str r3, [sp]                                  |         *(sp) = r3;
    0x00022374 add r2, sp, 0x38                              |         r2 += var_38h;
    0x00022378 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x0002237c add r1, sp, 0x34                              |         r1 += s1;
    0x00022380 mov r0, r8                                    |         r0 = r8;
    0x00022384 bl 0x83fc                                     |         r0 = fcn_000083fc ();
    0x00022388 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0002238c beq 0x22654                                   |             goto label_31;
                                                             |         }
    0x00022390 ldr r8, [r4, 4]                               |         r8 = *((r4 + 4));
    0x00022394 cmp r8, 0                                     |         
                                                             |         if (r8 != 0) {
    0x00022398 beq 0x223d8                                   |             
    0x0002239c ldr r8, [r4, 0x44]                            |             r8 = *((r4 + 0x44));
    0x000223a0 ands r8, r8, 8                                |             r8 &= 8;
                                                             |             if (r8 == r8) {
    0x000223a4 beq 0x223d8                                   |                 goto label_32;
                                                             |             }
    0x000223a8 mov r0, r4                                    |             r0 = r4;
    0x000223ac bl 0x8258                                     |             r0 = fcn_00008258 ();
    0x000223b0 subs sb, r0, 0                                |             sb = r0 - 0;
                                                             |             if (sb == r0) {
    0x000223b4 beq 0x227d0                                   |                 goto label_33;
                                                             |             }
    0x000223b8 ldr r0, [sp, 0x14]                            |             r0 = var_14h;
    0x000223bc bl 0xf250                                     |             fcn_0000f250 (r0);
    0x000223c0 mov r1, sb                                    |             r1 = sb;
    0x000223c4 mov r8, r0                                    |             r8 = r0;
    0x000223c8 mov r0, r4                                    |             r0 = r4;
    0x000223cc bl 0x85e8                                     |             r0 = fcn_000085e8 ();
    0x000223d0 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x000223d4 beq 0x227d0                                   |                 goto label_33;
                                                             |             }
                                                             |         }
                                                             | label_32:
    0x000223d8 ldr r0, [r6, 0x3c]                            |         r0 = *((r6 + 0x3c));
    0x000223dc bl 0x91c4                                     |         free (r0);
    0x000223e0 mov r3, 0                                     |         r3 = 0;
    0x000223e4 str r3, [r6, 0x3c]                            |         *((r6 + 0x3c)) = r3;
    0x000223e8 mov r0, r6                                    |         r0 = r6;
    0x000223ec bl 0x9020                                     |         fcn_00009020 ();
    0x000223f0 str r0, [r6, 0x3c]                            |         *((r6 + 0x3c)) = r0;
    0x000223f4 b 0x226a4                                     |         goto label_25;
    0x000223f8 ldr r0, [sp, 0x20]                            |         r0 = var_20h;
    0x000223fc cmp r0, 0                                     |         
    0x00022400 beq 0x22124                                   |         
                                                             |     }
    0x00022404 ldr r1, [sp, 0x24]                            |     r1 = n;
    0x00022408 bl 0x8048                                     |     r0 = strndup (r0, r1);
    0x0002240c cmp r0, 0                                     |     
    0x00022410 str r0, [r4, 0x7c]                            |     *((r4 + 0x7c)) = r0;
                                                             |     if (r0 != 0) {
    0x00022414 bne 0x22124                                   |         goto label_6;
                                                             |     }
    0x00022418 mvn r8, 0xb                                   |     r8 = ~0xb;
    0x0002241c b 0x226a4                                     |     goto label_25;
                                                             | label_29:
    0x00022420 add r3, sp, 0x38                              |     r3 += var_38h;
    0x00022424 str r3, [sp]                                  |     *(sp) = r3;
    0x00022428 ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x0002242c ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00022430 mov r1, 1                                     |     r1 = 1;
    0x00022434 add r0, sp, 0x34                              |     r0 += s1;
    0x00022438 bl 0xd750                                     |     r0 = fcn_0000d750 (r0, r1, r2);
    0x0002243c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00022440 beq 0x2230c                                   |         goto label_7;
                                                             |     }
    0x00022444 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00022448 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0002244c beq 0x2230c                                   |         goto label_7;
                                                             |     }
    0x00022450 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00022454 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00022458 beq 0x224ac                                   |         
    0x0002245c ldr r3, [pc, 0x3a8]                           |         r3 = *(0x22808);
    0x00022460 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00022464 ldr sb, [r3]                                  |         sb = *(0x22808);
    0x00022468 bl 0x8204                                     |         getpid ();
    0x0002246c ldr r3, [pc, 0x488]                           |         r3 = *(0x228f8);
    0x00022470 ldr r1, [pc, 0x488]                           |         r1 = *(0x228fc);
    0x00022474 add r3, pc, r3                                |         r3 = pc + r3;
    0x00022478 str r3, [sp]                                  |         *(sp) = r3;
    0x0002247c ldr r3, [pc, 0x480]                           |         r3 = *(0x22900);
    0x00022480 add r1, pc, r1                                |         r1 = pc + r1;
    0x00022484 add r3, pc, r3                                |         r3 = pc + r3;
    0x00022488 mov r2, r0                                    |         r2 = r0;
    0x0002248c mov r0, sb                                    |         r0 = sb;
    0x00022490 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00022494 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00022498 ldr r1, [pc, 0x468]                           |         r1 = *(0x22904);
    0x0002249c ldr r2, [r3]                                  |         r2 = *(0x22900);
    0x000224a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000224a4 mov r0, r4                                    |         r0 = r4;
    0x000224a8 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x000224ac ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000224b0 ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x000224b4 tst r3, 0x4000                                |     
                                                             |     if ((r3 & 0x4000) == 0) {
    0x000224b8 addne r8, r8, 1                               |         r8++;
                                                             |     }
    0x000224bc tst r3, 0x1e0000                              |     
                                                             |     if ((r3 & 0x1e0000) == 0) {
    0x000224c0 beq 0x2230c                                   |         goto label_7;
                                                             |     }
    0x000224c4 bl 0x219b8                                    |     fcn_000219b8 ();
    0x000224c8 subs sb, r0, 0                                |     sb -= s1;
                                                             |     if (sb == s1) {
    0x000224cc beq 0x227d8                                   |         goto label_34;
                                                             |     }
    0x000224d0 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000224d4 ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x000224d8 str r3, [sb]                                  |     *(sb) = r3;
    0x000224dc ldr r3, [r7]                                  |     r3 = *(r7);
    0x000224e0 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000224e4 beq 0x22538                                   |         
    0x000224e8 ldr r3, [pc, 0x31c]                           |         r3 = *(0x22808);
    0x000224ec ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000224f0 ldr sl, [r3]                                  |         sl = *(0x22808);
    0x000224f4 bl 0x8204                                     |         getpid ();
    0x000224f8 ldr r3, [pc, 0x40c]                           |         r3 = *(0x22908);
    0x000224fc ldr r1, [pc, 0x40c]                           |         r1 = *(0x2290c);
    0x00022500 add r3, pc, r3                                |         r3 = pc + r3;
    0x00022504 str r3, [sp]                                  |         *(sp) = r3;
    0x00022508 ldr r3, [pc, 0x404]                           |         r3 = *(0x22910);
    0x0002250c add r1, pc, r1                                |         r1 = pc + r1;
    0x00022510 add r3, pc, r3                                |         r3 = pc + r3;
    0x00022514 mov r2, r0                                    |         r2 = r0;
    0x00022518 mov r0, sl                                    |         r0 = sl;
    0x0002251c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00022520 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00022524 ldr r1, [pc, 0x3ec]                           |         r1 = *(0x22914);
    0x00022528 ldr r2, [r3]                                  |         r2 = *(0x22910);
    0x0002252c add r1, pc, r1                                |         r1 = pc + r1;
    0x00022530 mov r0, r4                                    |         r0 = r4;
    0x00022534 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00022538 mov r1, sb                                    |     r1 = sb;
    0x0002253c mov r0, r4                                    |     r0 = r4;
    0x00022540 bl 0x21894                                    |     r0 = fcn_00021894 (r0, r1);
    0x00022544 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00022548 bne 0x21de4                                   |         goto label_8;
                                                             |     }
    0x0002254c ldr r3, [r7]                                  |     r3 = *(r7);
    0x00022550 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00022554 beq 0x22598                                   |         
    0x00022558 ldr r3, [pc, 0x2ac]                           |         r3 = *(0x22808);
    0x0002255c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00022560 ldr sb, [r3]                                  |         sb = *(0x22808);
    0x00022564 bl 0x8204                                     |         getpid ();
    0x00022568 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x0002256c ldr r1, [sp, 0x1c]                            |         r1 = format;
    0x00022570 str fp, [sp]                                  |         *(sp) = fp;
    0x00022574 mov r2, r0                                    |         r2 = r0;
    0x00022578 mov r0, sb                                    |         r0 = sb;
    0x0002257c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00022580 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00022584 ldr r1, [pc, 0x390]                           |         r1 = *(0x22918);
    0x00022588 ldr r2, [r3]                                  |         r2 = *(0x22808);
    0x0002258c add r1, pc, r1                                |         r1 = pc + r1;
    0x00022590 mov r0, r4                                    |         r0 = r4;
    0x00022594 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00022598 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x0002259c ldr r2, [r3, 4]                               |     r2 = *((r3 + 4));
    0x000225a0 ldr r3, [r4, 0x3c]                            |     r3 = *((r4 + 0x3c));
    0x000225a4 tst r2, 0x4000                                |     
    0x000225a8 bic r3, r3, r2                                |     r3 = BIT_MASK (r3, r2);
    0x000225ac str r3, [r4, 0x3c]                            |     *((r4 + 0x3c)) = r3;
                                                             |     if ((r2 & 0x4000) == 0) {
    0x000225b0 subne r8, r8, 1                               |         r8--;
                                                             |     }
    0x000225b4 b 0x2230c                                     |     goto label_7;
                                                             | label_30:
    0x000225b8 ldr r2, [pc, 0x360]                           |     r2 = *(0x2291c);
    0x000225bc and r2, r2, r3                                |     r2 &= r3;
    0x000225c0 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000225c4 beq 0x22348                                   |         goto label_9;
                                                             |     }
    0x000225c8 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000225cc bne 0x22348                                   |         goto label_9;
                                                             |     }
    0x000225d0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x000225d4 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000225d8 beq 0x22624                                   |         
    0x000225dc ldr r3, [pc, 0x228]                           |         r3 = *(0x22808);
    0x000225e0 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000225e4 ldr r8, [r3]                                  |         r8 = *(0x22808);
    0x000225e8 bl 0x8204                                     |         getpid ();
    0x000225ec ldr r3, [pc, 0x330]                           |         r3 = *(0x22920);
    0x000225f0 ldr r1, [pc, 0x330]                           |         r1 = *(0x22924);
    0x000225f4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000225f8 str r3, [sp]                                  |         *(sp) = r3;
    0x000225fc ldr r3, [pc, 0x328]                           |         r3 = *(0x22928);
    0x00022600 add r1, pc, r1                                |         r1 = pc + r1;
    0x00022604 add r3, pc, r3                                |         r3 = pc + r3;
    0x00022608 mov r2, r0                                    |         r2 = r0;
    0x0002260c mov r0, r8                                    |         r0 = r8;
    0x00022610 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00022614 ldr r1, [pc, 0x314]                           |         r1 = *(0x2292c);
    0x00022618 mov r0, r4                                    |         r0 = r4;
    0x0002261c add r1, pc, r1                                |         r1 = pc + r1;
    0x00022620 bl 0x2058c                                    |         r0 = fcn_0002058c (r0);
                                                             |     }
    0x00022624 bl 0x219b8                                    |     r0 = fcn_000219b8 ();
    0x00022628 subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x0002262c beq 0x227d8                                   |         goto label_34;
                                                             |     }
    0x00022630 ldr r3, [r4, 0x3c]                            |     r3 = *((r4 + 0x3c));
    0x00022634 mov r0, r4                                    |     r0 = r4;
    0x00022638 orr r3, r3, 0x1000                            |     r3 |= 0x1000;
    0x0002263c orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00022640 str r3, [r1]                                  |     *(r1) = r3;
    0x00022644 bl 0x21894                                    |     r0 = fcn_00021894 (r0, r1);
    0x00022648 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x0002264c beq 0x22348                                   |         goto label_9;
                                                             |     }
    0x00022650 b 0x21de4                                     |     goto label_8;
                                                             | label_31:
    0x00022654 ldr sb, [sp, 0x38]                            |     sb = var_38h;
    0x00022658 cmp sb, 3                                     |     
                                                             |     if (sb != 3) {
    0x0002265c bne 0x22368                                   |         goto label_10;
                                                             |     }
    0x00022660 ldr r3, [sp, 0x34]                            |     r3 = s1;
    0x00022664 mov r2, sb                                    |     r2 = sb;
    0x00022668 mov r0, r3                                    |     r0 = r3;
    0x0002266c mov r1, sl                                    |     r1 = sl;
    0x00022670 str r3, [sp, 0x1c]                            |     format = r3;
    0x00022674 bl 0x8948                                     |     strncmp (r0, r1, r2);
    0x00022678 ldr r3, [sp, 0x1c]                            |     r3 = format;
    0x0002267c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00022680 bne 0x227a0                                   |         goto label_35;
                                                             |     }
    0x00022684 mov r3, r8                                    |     r3 = r8;
    0x00022688 ldr r2, [sp, 0x24]                            |     r2 = n;
    0x0002268c ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00022690 add r0, r6, 0x48                              |     r0 = r6 + 0x48;
    0x00022694 bl 0xef08                                     |     r0 = fcn_0000ef08 (r0, r1);
                                                             | label_12:
    0x00022698 cmp r0, 0                                     |     
    0x0002269c mov r8, r0                                    |     r8 = r0;
                                                             |     if (r0 == 0) {
    0x000226a0 beq 0x22368                                   |         goto label_10;
                                                             |     }
                                                             | label_25:
    0x000226a4 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x000226a8 orr r3, r3, 0x8000000                         |     r3 |= 0x8000000;
    0x000226ac str r3, [r4, 0x6c]                            |     *((r4 + 0x6c)) = r3;
    0x000226b0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x000226b4 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000226b8 beq 0x22724                                   |         
    0x000226bc ldr r3, [pc, 0x148]                           |         r3 = *(0x22808);
    0x000226c0 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000226c4 ldr sb, [r3]                                  |         sb = *(0x22808);
    0x000226c8 bl 0x8204                                     |         getpid ();
    0x000226cc ldr r3, [pc, 0x260]                           |         r3 = *(0x22930);
    0x000226d0 ldr r1, [pc, 0x260]                           |         r1 = *(0x22934);
    0x000226d4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000226d8 str r3, [sp]                                  |         *(sp) = r3;
    0x000226dc ldr r3, [pc, 0x258]                           |         r3 = *(0x22938);
    0x000226e0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000226e4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000226e8 mov r2, r0                                    |         r2 = r0;
    0x000226ec mov r0, sb                                    |         r0 = sb;
    0x000226f0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000226f4 ldr r3, [r6, 0x3c]                            |         r3 = *((r6 + 0x3c));
    0x000226f8 ldr r1, [pc, 0x240]                           |         r1 = *(0x2293c);
    0x000226fc str r3, [sp, 8]                               |         var_8h = r3;
    0x00022700 ldr r3, [r6, 0x4c]                            |         r3 = *((r6 + 0x4c));
    0x00022704 mov r2, r8                                    |         r2 = r8;
    0x00022708 str r3, [sp, 4]                               |         var_4h = r3;
    0x0002270c ldr r3, [r6, 0x48]                            |         r3 = *((r6 + 0x48));
    0x00022710 add r1, pc, r1                                |         r1 = pc + r1;
    0x00022714 str r3, [sp]                                  |         *(sp) = r3;
    0x00022718 mov r0, r4                                    |         r0 = r4;
    0x0002271c ldr r3, [r6, 0x40]                            |         r3 = *((r6 + 0x40));
    0x00022720 bl 0x2058c                                    |         fcn_0002058c (r0);
                                                             |     }
    0x00022724 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00022728 ldrne sb, [pc, 0x214]                         |         sb = *(0x00022944);
                                                             |         goto label_36;
                                                             |     }
                                                             |     if (r8 != 0) {
                                                             | label_36:
    0x0002272c bne 0x21de4                                   |         goto label_8;
                                                             |     }
                                                             | label_23:
    0x00022730 mov r0, r4                                    |     r0 = r4;
    0x00022734 bl 0x1d69c                                    |     r0 = fcn_0001d69c (r0);
    0x00022738 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x0002273c bne 0x21de4                                   |         goto label_8;
                                                             |     }
    0x00022740 mov r0, r4                                    |     r0 = r4;
    0x00022744 bl 0x1db24                                    |     r0 = fcn_0001db24 (r0);
    0x00022748 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x0002274c bne 0x21de4                                   |         goto label_8;
                                                             |     }
    0x00022750 mov r0, r4                                    |     r0 = r4;
    0x00022754 bl 0x1e270                                    |     r0 = fcn_0001e270 (r0);
    0x00022758 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x0002275c bne 0x21de4                                   |         goto label_8;
                                                             |     }
    0x00022760 ldr r1, [pc, 0x1e0]                           |     r1 = *(0x22944);
    0x00022764 mov r2, sb                                    |     r2 = sb;
    0x00022768 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002276c mov r0, r4                                    |     r0 = r4;
    0x00022770 bl 0x1c654                                    |     r0 = fcn_0001c654 (r0, r1);
    0x00022774 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00022778 ldreq r3, [r4, 0x6c]                          |         r3 = *((r4 + 0x6c));
                                                             |     }
                                                             |     if (sb != r0) {
    0x0002277c orreq r3, r3, 0x1000000                       |         r3 |= 0x1000000;
                                                             |     }
                                                             |     if (sb == r0) {
    0x00022780 streq r3, [r4, 0x6c]                          |         *((r4 + 0x6c)) = r3;
                                                             |         goto label_37;
                                                             |     }
                                                             |     if (sb != r0) {
                                                             | label_37:
    0x00022784 bne 0x21de4                                   |         goto label_8;
                                                             |     }
                                                             | label_17:
    0x00022788 ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x0002278c mov r0, r4                                    |     r0 = r4;
    0x00022790 bl 0x85e8                                     |     r0 = fcn_000085e8 ();
    0x00022794 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00022798 bne 0x21b70                                   |         goto label_1;
                                                             |     }
    0x0002279c b 0x21c3c                                     |     goto label_11;
                                                             | label_35:
    0x000227a0 mov r2, sb                                    |     r2 = sb;
    0x000227a4 mov r1, fp                                    |     r1 = fp;
    0x000227a8 mov r0, r3                                    |     r0 = r3;
    0x000227ac bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x000227b0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000227b4 bne 0x22368                                   |         goto label_10;
                                                             |     }
    0x000227b8 mov r3, r8                                    |     r3 = r8;
    0x000227bc ldr r2, [sp, 0x24]                            |     r2 = n;
    0x000227c0 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x000227c4 add r0, r6, 0x48                              |     r0 = r6 + 0x48;
    0x000227c8 bl 0xf0ac                                     |     fcn_0000f0ac (r0, r1);
    0x000227cc b 0x22698                                     |     goto label_12;
                                                             | label_33:
    0x000227d0 ldr sb, [pc, 0x2c]                            |     sb = *(0x00022804);
    0x000227d4 b 0x21de4                                     |     goto label_8;
                                                             | label_34:
    0x000227d8 mvn sb, 0xb                                   |     sb = ~0xb;
    0x000227dc b 0x21de4                                     |     goto label_8;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x24a64 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_context_prepare_umount ()                | void mnt_context_prepare_umount (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     char * s2;
                                                             |     int32_t var_80h;
                                                             |     int32_t var_80h_2;
                                                             |     int32_t var_90h;
                                                             |     int32_t var_ech;
                                                             |     r0 = arg1;
    0x00024a64 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00024a68 ldr r5, [pc, 0xd7c]                           |     r5 = *(0x257e8);
    0x00024a6c subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00024a70 add r5, pc, r5                                |     r5 = pc + r5;
    0x00024a74 sub sp, sp, 0xec                              |     
    0x00024a78 bne 0x24a8c                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_0:
    0x00024a7c mvn r7, 0x15                                  |         r7 = ~0x15;
                                                             | label_1:
    0x00024a80 mov r0, r7                                    |         r0 = r7;
    0x00024a84 add sp, sp, 0xec                              |         
    0x00024a88 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00024a8c ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00024a90 cmp r0, 0                                     |         
    0x00024a94 beq 0x24a7c                                   |         
                                                             |     }
    0x00024a98 bl 0x845c                                     |     r0 = fcn_0000845c ();
    0x00024a9c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024aa0 bne 0x24a7c                                   |         goto label_0;
                                                             |     }
    0x00024aa4 mov r0, r4                                    |     r0 = r4;
    0x00024aa8 bl 0x890c                                     |     r0 = fcn_0000890c ();
    0x00024aac cmp r0, 0                                     |     
    0x00024ab0 beq 0x24ac8                                   |     
                                                             |     while (r0 != 0) {
    0x00024ab4 ldr r6, [r4, 0x6c]                            |         r6 = *((r4 + 0x6c));
    0x00024ab8 ands r6, r6, 0x1000000                        |         r6 &= 0x1000000;
                                                             |         if (r6 == r6) {
    0x00024abc beq 0x24adc                                   |             goto label_21;
                                                             |         }
                                                             | label_13:
    0x00024ac0 mov r7, 0                                     |         r7 = 0;
    0x00024ac4 b 0x24a80                                     |         goto label_1;
    0x00024ac8 mov r0, r4                                    |         r0 = r4;
    0x00024acc bl 0x84b0                                     |         r0 = fcn_000084b0 ();
    0x00024ad0 cmp r0, 0                                     |         
    0x00024ad4 bne 0x24ab4                                   |         
                                                             |     }
    0x00024ad8 b 0x24a7c                                     |     goto label_0;
                                                             | label_21:
    0x00024adc ldr r3, [r4, 0x78]                            |     r3 = *((r4 + 0x78));
    0x00024ae0 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x00024ae4 beq 0x24b0c                                   |         goto label_22;
                                                             |     }
    0x00024ae8 ldr r3, [pc, 0xd00]                           |     
    0x00024aec ldr r1, [pc, 0xd00]                           |     r1 = *(0x257f0);
    0x00024af0 ldr r0, [pc, 0xd00]                           |     r0 = *(0x257f4);
    0x00024af4 ldr r2, [pc, 0xd00]                           |     r2 = *(0x257f8);
    0x00024af8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024afc add r3, r3, 0x1a                              |     r3 = 0x25806;
    0x00024b00 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024b04 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_2:
    0x00024b08 bl 0x908c                                     |         assert ();
                                                             | label_22:
    0x00024b0c ldr r8, [r4, 0x8c]                            |         r8 = *((r4 + 0x8c));
    0x00024b10 cmp r8, 1                                     |         
                                                             |         if (r8 == 1) {
    0x00024b14 beq 0x24b3c                                   |             goto label_23;
                                                             |         }
    0x00024b18 ldr r3, [pc, 0xce0]                           |         
    0x00024b1c ldr r1, [pc, 0xce0]                           |         r1 = *(0x25800);
    0x00024b20 ldr r0, [pc, 0xce0]                           |         r0 = *(0x25804);
    0x00024b24 add r3, pc, r3                                |         r3 = pc + r3;
    0x00024b28 add r3, r3, 0x1a                              |         r3 = 0x25816;
    0x00024b2c ldr r2, [pc, 0xcd8]                           |         r2 = *(0x25808);
    0x00024b30 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024b34 add r0, pc, r0                                |         r0 = pc + r0;
    0x00024b38 b 0x24b08                                     |         
                                                             |     } while (1);
                                                             | label_23:
    0x00024b3c ldr r0, [r4, 0x70]                            |     r0 = *((r4 + 0x70));
    0x00024b40 bl 0x91c4                                     |     free (r0);
    0x00024b44 mov r3, 2                                     |     r3 = 2;
    0x00024b48 str r3, [r4]                                  |     *(r4) = r3;
    0x00024b4c str r6, [r4, 0x70]                            |     *((r4 + 0x70)) = r6;
    0x00024b50 mov r0, r4                                    |     r0 = r4;
    0x00024b54 bl 0x872c                                     |     r0 = fcn_0000872c ();
    0x00024b58 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00024b5c str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             |     if (r3 == r0) {
    0x00024b60 bne 0x24b6c                                   |         
                                                             | label_14:
    0x00024b64 ldr r7, [pc, 0xca4]                           |         r7 = *(0x2580c);
    0x00024b68 b 0x24a80                                     |         goto label_1;
                                                             |     }
    0x00024b6c ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00024b70 str r6, [sp, 0x20]                            |     var_20h = r6;
    0x00024b74 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00024b78 bne 0x24ba0                                   |         
    0x00024b7c ldr r3, [pc, 0xc90]                           |         
    0x00024b80 ldr r1, [pc, 0xc90]                           |         r1 = *(0x25814);
    0x00024b84 ldr r0, [pc, 0xc90]                           |         r0 = *(0x25818);
    0x00024b88 add r3, pc, r3                                |         r3 = pc + r3;
    0x00024b8c add r3, r3, 0x35                              |         r3 = 0x25845;
    0x00024b90 mov r2, 0xf4                                  |         r2 = 0xf4;
    0x00024b94 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024b98 add r0, pc, r0                                |         r0 = pc + r0;
    0x00024b9c b 0x24b08                                     |         goto label_2;
                                                             |     }
    0x00024ba0 bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x00024ba4 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00024ba8 bne 0x24c70                                   |         goto label_24;
                                                             |     }
    0x00024bac ldr r3, [pc, 0xc6c]                           |     
    0x00024bb0 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00024bb4 ldr r3, [r3]                                  |     r3 = *(0x2581c);
    0x00024bb8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00024bbc bne 0x24c24                                   |         goto label_25;
                                                             |     }
                                                             | label_3:
    0x00024bc0 mvn r7, 0x15                                  |     r7 = ~0x15;
                                                             | label_4:
    0x00024bc4 ldr r3, [pc, 0xc54]                           |     
    0x00024bc8 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00024bcc ldr r3, [r3]                                  |     r3 = *(0x2581c);
    0x00024bd0 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00024bd4 beq 0x24a80                                   |         goto label_1;
                                                             |     }
    0x00024bd8 ldr r3, [pc, 0xc44]                           |     r3 = *(0x25820);
    0x00024bdc ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00024be0 ldr r5, [r3]                                  |     r5 = *(0x25820);
    0x00024be4 bl 0x8204                                     |     getpid ();
    0x00024be8 ldr r3, [pc, 0xc38]                           |     r3 = *(0x25824);
    0x00024bec ldr r1, [pc, 0xc38]                           |     r1 = *(0x25828);
    0x00024bf0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024bf4 str r3, [sp]                                  |     *(sp) = r3;
    0x00024bf8 ldr r3, [pc, 0xc30]                           |     r3 = *(0x2582c);
    0x00024bfc add r1, pc, r1                                |     r1 = pc + r1;
    0x00024c00 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024c04 mov r2, r0                                    |     r2 = r0;
    0x00024c08 mov r0, r5                                    |     r0 = r5;
    0x00024c0c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00024c10 ldr r1, [pc, 0xc1c]                           |     r1 = *(0x25830);
    0x00024c14 mov r0, r4                                    |     r0 = r4;
    0x00024c18 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024c1c bl 0x24190                                    |     fcn_00024190 (r0);
    0x00024c20 b 0x24a80                                     |     goto label_1;
                                                             | label_25:
    0x00024c24 ldr r3, [pc, 0xbf8]                           |     r3 = *(0x25820);
    0x00024c28 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00024c2c ldr r6, [r3]                                  |     r6 = *(0x25820);
    0x00024c30 bl 0x8204                                     |     getpid ();
    0x00024c34 ldr r3, [pc, 0xbfc]                           |     r3 = *(0x25834);
    0x00024c38 ldr r1, [pc, 0xbfc]                           |     r1 = *(0x25838);
    0x00024c3c add r3, pc, r3                                |     r3 = pc + r3;
    0x00024c40 str r3, [sp]                                  |     *(sp) = r3;
    0x00024c44 ldr r3, [pc, 0xbf4]                           |     r3 = *(0x2583c);
    0x00024c48 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024c4c add r3, pc, r3                                |     r3 = pc + r3;
    0x00024c50 mov r2, r0                                    |     r2 = r0;
    0x00024c54 mov r0, r6                                    |     r0 = r6;
    0x00024c58 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00024c5c ldr r1, [pc, 0xbe0]                           |     r1 = *(0x25840);
    0x00024c60 mov r0, r4                                    |     r0 = r4;
    0x00024c64 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024c68 bl 0x24190                                    |     fcn_00024190 (r0);
    0x00024c6c b 0x24bc0                                     |     goto label_3;
                                                             | label_24:
    0x00024c70 mov r0, r4                                    |     r0 = r4;
    0x00024c74 bl 0x8f84                                     |     r0 = fcn_00008f84 ();
    0x00024c78 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024c7c bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024c80 ldrsb r3, [r6]                                |     r3 = *(r6);
    0x00024c84 cmp r3, 0x2f                                  |     
                                                             |     if (r3 != 0x2f) {
    0x00024c88 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024c8c ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00024c90 tst r3, 0x2000000                             |     
                                                             |     if ((r3 & 0x2000000) != 0) {
    0x00024c94 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024c98 mov r0, r4                                    |     r0 = r4;
    0x00024c9c bl 0x1cbe8                                    |     r0 = fcn_0001cbe8 (r0);
    0x00024ca0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024ca4 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024ca8 mov r0, r4                                    |     r0 = r4;
    0x00024cac bl 0x8360                                     |     r0 = fcn_00008360 ();
    0x00024cb0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024cb4 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024cb8 mov r0, r4                                    |     r0 = r4;
    0x00024cbc bl 0x8684                                     |     r0 = fcn_00008684 ();
    0x00024cc0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024cc4 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024cc8 mov r0, r4                                    |     r0 = r4;
    0x00024ccc bl 0x8e1c                                     |     r0 = fcn_00008e1c ();
    0x00024cd0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024cd4 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024cd8 mov r0, r4                                    |     r0 = r4;
    0x00024cdc bl 0x8858                                     |     r0 = fcn_00008858 ();
    0x00024ce0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024ce4 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024ce8 add r1, sp, 0x80                              |     r1 += var_80h;
    0x00024cec mov r0, r6                                    |     r0 = r6;
    0x00024cf0 bl 0x180e4                                    |     r0 = fcn_000180e4 (r0, r1);
    0x00024cf4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024cf8 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024cfc ldr r3, [sp, 0x90]                            |     r3 = var_90h;
    0x00024d00 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00024d04 cmp r3, 0x4000                                |     
                                                             |     if (r3 != 0x4000) {
    0x00024d08 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024d0c ldr r3, [r4, 0x1c]                            |     r3 = *((r4 + 0x1c));
    0x00024d10 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00024d14 bne 0x24d58                                   |         
    0x00024d18 bl 0x19934                                    |         r0 = fcn_00019934 ();
    0x00024d1c subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x00024d20 beq 0x24dbc                                   |             goto label_27;
                                                             |         }
    0x00024d24 bl 0x17f2c                                    |         r0 = fcn_00017f2c (r0);
    0x00024d28 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00024d2c bne 0x24dbc                                   |             goto label_27;
                                                             |         }
    0x00024d30 bl 0x90b0                                     |         r0 = fcn_000090b0 ();
    0x00024d34 cmp r0, 0                                     |         
    0x00024d38 str r0, [r4, 0x1c]                            |         *((r4 + 0x1c)) = r0;
                                                             |         if (r0 == 0) {
    0x00024d3c beq 0x24dbc                                   |             goto label_27;
                                                             |         }
    0x00024d40 mov r3, 3                                     |         r3 = 3;
    0x00024d44 str r3, [r0]                                  |         *(r0) = r3;
    0x00024d48 mov r1, r7                                    |         r1 = r7;
    0x00024d4c bl 0x8354                                     |         r0 = fcn_00008354 ();
    0x00024d50 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00024d54 bne 0x24dbc                                   |             goto label_27;
                                                             |         }
                                                             |     }
    0x00024d58 mov r0, r4                                    |     r0 = r4;
    0x00024d5c bl 0x8558                                     |     fcn_00008558 ();
    0x00024d60 add sl, sp, 0x28                              |     sl += s2;
    0x00024d64 add fp, sp, 0x24                              |     
    0x00024d68 mov r1, r0                                    |     r1 = r0;
    0x00024d6c mov r7, r0                                    |     r7 = r0;
    0x00024d70 mov r0, r6                                    |     r0 = r6;
    0x00024d74 bl 0x8d38                                     |     fcn_00008d38 ();
    0x00024d78 mov r1, 1                                     |     r1 = 1;
    0x00024d7c mov sb, r0                                    |     sb = r0;
    0x00024d80 mov r0, sl                                    |     r0 = sl;
    0x00024d84 bl 0x8588                                     |     fcn_00008588 ();
                                                             | label_5:
    0x00024d88 mov r2, fp                                    |     r2 = fp;
    0x00024d8c mov r1, sl                                    |     r1 = sl;
    0x00024d90 ldr r0, [r4, 0x1c]                            |     r0 = *((r4 + 0x1c));
    0x00024d94 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00024d98 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00024d9c beq 0x24f64                                   |         goto label_28;
                                                             |     }
    0x00024da0 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00024da4 bne 0x24dbc                                   |         
    0x00024da8 mov r8, r7                                    |         r8 = r7;
                                                             | label_6:
    0x00024dac mov r0, sb                                    |         r0 = sb;
    0x00024db0 bl 0x91c4                                     |         free (r0);
    0x00024db4 cmp r8, 0                                     |         
                                                             |         if (r8 != 0) {
    0x00024db8 bne 0x24f80                                   |             goto label_26;
                                                             |         }
                                                             |     }
                                                             | label_27:
    0x00024dbc ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00024dc0 bl 0x8de0                                     |     fcn_00008de0 ();
    0x00024dc4 ldr r3, [pc, 0xa54]                           |     r3 = *(0x2581c);
    0x00024dc8 ldr sb, [r5, r3]                              |     sb = *((r5 + r3));
    0x00024dcc ldr r3, [sb]                                  |     r3 = *(sb);
    0x00024dd0 tst r3, 0x200                                 |     
    0x00024dd4 mov r8, r0                                    |     r8 = r0;
                                                             |     if ((r3 & 0x200) != 0) {
    0x00024dd8 beq 0x24e24                                   |         
    0x00024ddc ldr r3, [pc, 0xa40]                           |         r3 = *(0x25820);
    0x00024de0 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00024de4 ldr r7, [r3]                                  |         r7 = *(0x25820);
    0x00024de8 bl 0x8204                                     |         getpid ();
    0x00024dec ldr r3, [pc, 0xa54]                           |         r3 = *(0x25844);
    0x00024df0 ldr r1, [pc, 0xa54]                           |         r1 = *(0x25848);
    0x00024df4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00024df8 str r3, [sp]                                  |         *(sp) = r3;
    0x00024dfc ldr r3, [pc, 0xa4c]                           |         r3 = *(0x2584c);
    0x00024e00 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024e04 add r3, pc, r3                                |         r3 = pc + r3;
    0x00024e08 mov r2, r0                                    |         r2 = r0;
    0x00024e0c mov r0, r7                                    |         r0 = r7;
    0x00024e10 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00024e14 ldr r1, [pc, 0xa38]                           |         r1 = *(0x25850);
    0x00024e18 mov r0, r4                                    |         r0 = r4;
    0x00024e1c add r1, pc, r1                                |         r1 = pc + r1;
    0x00024e20 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
    0x00024e24 mov r1, 1                                     |     r1 = 1;
    0x00024e28 mov r0, r4                                    |     r0 = r4;
    0x00024e2c bl 0x8630                                     |     fcn_00008630 ();
    0x00024e30 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00024e34 bne 0x24ec8                                   |         goto label_29;
                                                             |     }
    0x00024e38 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00024e3c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00024e40 beq 0x24e8c                                   |         
    0x00024e44 ldr r3, [pc, 0x9d8]                           |         r3 = *(0x25820);
    0x00024e48 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00024e4c ldr r7, [r3]                                  |         r7 = *(0x25820);
    0x00024e50 bl 0x8204                                     |         getpid ();
    0x00024e54 ldr r3, [pc, 0x9fc]                           |         r3 = *(0x25854);
    0x00024e58 ldr r1, [pc, 0x9fc]                           |         r1 = *(0x25858);
    0x00024e5c add r3, pc, r3                                |         r3 = pc + r3;
    0x00024e60 str r3, [sp]                                  |         *(sp) = r3;
    0x00024e64 ldr r3, [pc, 0x9f4]                           |         r3 = *(0x2585c);
    0x00024e68 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024e6c add r3, pc, r3                                |         r3 = pc + r3;
    0x00024e70 mov r2, r0                                    |         r2 = r0;
    0x00024e74 mov r0, r7                                    |         r0 = r7;
    0x00024e78 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00024e7c ldr r1, [pc, 0x9e0]                           |         r1 = *(0x25860);
    0x00024e80 mov r0, r4                                    |         r0 = r4;
    0x00024e84 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024e88 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
    0x00024e8c add r7, sp, 0x28                              |     r7 += s2;
    0x00024e90 mov r1, r7                                    |     r1 = r7;
    0x00024e94 mov r0, r6                                    |     r0 = r6;
    0x00024e98 bl 0x8114                                     |     r0 = statfs64 ();
    0x00024e9c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024ea0 bne 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024ea4 mov r0, r7                                    |     r0 = r7;
    0x00024ea8 bl 0x1867c                                    |     fcn_0001867c (r0);
    0x00024eac subs r8, r0, 0                                |     r8 -= s2;
                                                             |     if (r8 == s2) {
    0x00024eb0 beq 0x24f80                                   |         goto label_26;
                                                             |     }
    0x00024eb4 mov r1, r8                                    |     r1 = r8;
    0x00024eb8 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00024ebc bl 0x8144                                     |     r0 = fcn_00008144 ();
    0x00024ec0 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00024ec4 bne 0x24bc4                                   |         goto label_4;
                                                             |     }
                                                             | label_29:
    0x00024ec8 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00024ecc tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00024ed0 beq 0x24f20                                   |         
    0x00024ed4 ldr r3, [pc, 0x948]                           |         r3 = *(0x25820);
    0x00024ed8 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00024edc ldr r6, [r3]                                  |         r6 = *(0x25820);
    0x00024ee0 bl 0x8204                                     |         getpid ();
    0x00024ee4 ldr r3, [pc, 0x97c]                           |         r3 = *(0x25864);
    0x00024ee8 ldr r1, [pc, 0x97c]                           |         r1 = *(0x25868);
    0x00024eec add r3, pc, r3                                |         r3 = pc + r3;
    0x00024ef0 str r3, [sp]                                  |         *(sp) = r3;
    0x00024ef4 ldr r3, [pc, 0x974]                           |         r3 = *(0x2586c);
    0x00024ef8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00024efc add r3, pc, r3                                |         r3 = pc + r3;
    0x00024f00 mov r2, r0                                    |         r2 = r0;
    0x00024f04 mov r0, r6                                    |         r0 = r6;
    0x00024f08 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00024f0c ldr r1, [pc, 0x960]                           |         r1 = *(0x25870);
    0x00024f10 mov r2, r8                                    |         r2 = r8;
    0x00024f14 add r1, pc, r1                                |         r1 = pc + r1;
                                                             | label_8:
    0x00024f18 mov r0, r4                                    |         r0 = r4;
    0x00024f1c bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
                                                             | label_7:
    0x00024f20 mov r0, r4                                    |     r0 = r4;
    0x00024f24 bl 0x1b4e4                                    |     r0 = fcn_0001b4e4 (r0);
    0x00024f28 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00024f2c bne 0x24bc4                                   |         goto label_4;
                                                             |     }
    0x00024f30 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00024f34 str r7, [sp, 0x20]                            |     var_20h = r7;
    0x00024f38 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00024f3c bne 0x25110                                   |         goto label_30;
                                                             |     }
    0x00024f40 ldr r3, [pc, 0x930]                           |     
    0x00024f44 ldr r1, [pc, 0x930]                           |     r1 = *(0x25878);
    0x00024f48 ldr r0, [pc, 0x930]                           |     r0 = *(0x2587c);
    0x00024f4c add r3, pc, r3                                |     r3 = pc + r3;
    0x00024f50 add r3, r3, 0x46                              |     r3 = 0x258ba;
    0x00024f54 ldr r2, [pc, 0x928]                           |     r2 = *(0x25880);
    0x00024f58 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024f5c add r0, pc, r0                                |     r0 = pc + r0;
    0x00024f60 b 0x24b08                                     |     goto label_2;
                                                             | label_28:
    0x00024f64 mov r1, sb                                    |     r1 = sb;
    0x00024f68 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x00024f6c bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x00024f70 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00024f74 beq 0x24d88                                   |         goto label_5;
                                                             |     }
    0x00024f78 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00024f7c beq 0x24dac                                   |         goto label_6;
                                                             |     }
                                                             | label_26:
    0x00024f80 add r2, sp, 0x20                              |     r2 += var_20h;
    0x00024f84 mov r1, r6                                    |     r1 = r6;
    0x00024f88 mov r0, r4                                    |     r0 = r4;
    0x00024f8c bl 0x82e8                                     |     r0 = fcn_000082e8 ();
    0x00024f90 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 < r0) {
    0x00024f94 blt 0x24bc4                                   |         goto label_4;
                                                             |     }
    0x00024f98 cmp r7, 1                                     |     
                                                             |     if (r7 != 1) {
    0x00024f9c beq 0x24fac                                   |         
    0x00024fa0 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00024fa4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00024fa8 bne 0x25008                                   |             goto label_31;
                                                             |         }
                                                             |     }
    0x00024fac ldr r3, [pc, 0x86c]                           |     
    0x00024fb0 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00024fb4 ldr r3, [r3]                                  |     r3 = *(0x2581c);
    0x00024fb8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00024fbc beq 0x24f20                                   |         goto label_7;
                                                             |     }
    0x00024fc0 ldr r3, [pc, 0x85c]                           |     r3 = *(0x25820);
    0x00024fc4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00024fc8 ldr r7, [r3]                                  |     r7 = *(0x25820);
    0x00024fcc bl 0x8204                                     |     getpid ();
    0x00024fd0 ldr r3, [pc, 0x8b0]                           |     r3 = *(0x25884);
    0x00024fd4 ldr r1, [pc, 0x8b0]                           |     r1 = *(0x25888);
    0x00024fd8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024fdc str r3, [sp]                                  |     *(sp) = r3;
    0x00024fe0 ldr r3, [pc, 0x8a8]                           |     r3 = *(0x2588c);
    0x00024fe4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00024fe8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00024fec mov r2, r0                                    |     r2 = r0;
    0x00024ff0 mov r0, r7                                    |     r0 = r7;
    0x00024ff4 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00024ff8 ldr r1, [pc, 0x894]                           |     r1 = *(0x25890);
    0x00024ffc mov r2, r6                                    |     r2 = r6;
    0x00025000 add r1, pc, r1                                |     r1 = pc + r1;
    0x00025004 b 0x24f18                                     |     goto label_8;
                                                             | label_31:
    0x00025008 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0002500c cmp r3, r0                                    |     
                                                             |     if (r3 == r0) {
    0x00025010 beq 0x25100                                   |         goto label_32;
                                                             |     }
    0x00025014 mov r1, 0                                     |     r1 = 0;
    0x00025018 bl 0x8594                                     |     fcn_00008594 ();
    0x0002501c mov r1, 0                                     |     r1 = 0;
    0x00025020 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00025024 bl 0x8870                                     |     fcn_00008870 ();
    0x00025028 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x0002502c ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00025030 bl 0x893c                                     |     fcn_0000893c ();
    0x00025034 ldr r3, [pc, 0x7e4]                           |     
    0x00025038 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0002503c ldr r3, [r3]                                  |     r3 = *(0x2581c);
    0x00025040 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025044 bne 0x250b0                                   |         goto label_33;
                                                             |     }
    0x00025048 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x0002504c beq 0x25098                                   |         
    0x00025050 ldr r3, [pc, 0x7cc]                           |         r3 = *(0x25820);
    0x00025054 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00025058 ldr r6, [r3]                                  |         r6 = *(0x25820);
    0x0002505c bl 0x8204                                     |         getpid ();
    0x00025060 ldr r3, [pc, 0x830]                           |         r3 = *(0x25894);
    0x00025064 ldr r1, [pc, 0x830]                           |         r1 = *(0x25898);
    0x00025068 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002506c str r3, [sp]                                  |         *(sp) = r3;
    0x00025070 ldr r3, [pc, 0x828]                           |         r3 = *(0x2589c);
    0x00025074 add r1, pc, r1                                |         r1 = pc + r1;
    0x00025078 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002507c mov r2, r0                                    |         r2 = r0;
    0x00025080 mov r0, r6                                    |         r0 = r6;
    0x00025084 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00025088 ldr r1, [pc, 0x814]                           |         r1 = *(0x258a0);
    0x0002508c mov r0, r4                                    |         r0 = r4;
    0x00025090 add r1, pc, r1                                |         r1 = pc + r1;
    0x00025094 bl 0x24190                                    |         r0 = fcn_00024190 (r0);
                                                             |     }
    0x00025098 bl 0x8f6c                                     |     r0 = errno_location ();
    0x0002509c ldr r7, [r0]                                  |     r7 = *(r0);
    0x000250a0 rsb r7, r7, 0                                 |     r7 -= ;
                                                             | label_9:
    0x000250a4 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x000250a8 beq 0x24f20                                   |         goto label_7;
                                                             |     }
    0x000250ac b 0x24bc4                                     |     goto label_4;
                                                             | label_33:
    0x000250b0 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000250b4 beq 0x25100                                   |         
    0x000250b8 ldr r3, [pc, 0x764]                           |         r3 = *(0x25820);
    0x000250bc ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000250c0 ldr r6, [r3]                                  |         r6 = *(0x25820);
    0x000250c4 bl 0x8204                                     |         getpid ();
    0x000250c8 ldr r3, [pc, 0x7d8]                           |         r3 = *(0x258a4);
    0x000250cc ldr r1, [pc, 0x7d8]                           |         r1 = *(0x258a8);
    0x000250d0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000250d4 str r3, [sp]                                  |         *(sp) = r3;
    0x000250d8 ldr r3, [pc, 0x7d0]                           |         r3 = *(0x258ac);
    0x000250dc add r1, pc, r1                                |         r1 = pc + r1;
    0x000250e0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000250e4 mov r2, r0                                    |         r2 = r0;
    0x000250e8 mov r0, r6                                    |         r0 = r6;
    0x000250ec bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000250f0 ldr r1, [pc, 0x7bc]                           |         r1 = *(0x258b0);
    0x000250f4 mov r0, r4                                    |         r0 = r4;
    0x000250f8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000250fc bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
                                                             | label_32:
    0x00025100 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00025104 orr r3, r3, 0x200000                          |     r3 |= 0x200000;
    0x00025108 str r3, [r4, 0x6c]                            |     *((r4 + 0x6c)) = r3;
    0x0002510c b 0x250a4                                     |     goto label_9;
                                                             | label_30:
    0x00025110 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00025114 tst r3, 0x400000                              |     
                                                             |     if ((r3 & 0x400000) == 0) {
    0x00025118 bne 0x25140                                   |         
    0x0002511c ldr r3, [pc, 0x794]                           |         
    0x00025120 ldr r1, [pc, 0x794]                           |         r1 = *(0x258b8);
    0x00025124 ldr r0, [pc, 0x794]                           |         r0 = *(0x258bc);
    0x00025128 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002512c add r3, r3, 0x46                              |         r3 = 0x258fa;
    0x00025130 mov r2, 0x194                                 |         r2 = 0x194;
    0x00025134 add r1, pc, r1                                |         r1 = pc + r1;
    0x00025138 add r0, pc, r0                                |         r0 = pc + r0;
    0x0002513c b 0x24b08                                     |         goto label_2;
                                                             |     }
    0x00025140 mov r0, r4                                    |     r0 = r4;
    0x00025144 bl 0x8f84                                     |     r0 = fcn_00008f84 ();
    0x00025148 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002514c beq 0x254b0                                   |         goto label_16;
                                                             |     }
    0x00025150 ldr r3, [pc, 0x6c8]                           |     r3 = *(0x2581c);
    0x00025154 ldr r6, [r5, r3]                              |     r6 = *((r5 + r3));
    0x00025158 ldr r3, [r6]                                  |     r3 = *(r6);
    0x0002515c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00025160 beq 0x251ac                                   |         
    0x00025164 ldr r3, [pc, 0x6b8]                           |         r3 = *(0x25820);
    0x00025168 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0002516c ldr r7, [r3]                                  |         r7 = *(0x25820);
    0x00025170 bl 0x8204                                     |         getpid ();
    0x00025174 ldr r3, [pc, 0x748]                           |         r3 = *(0x258c0);
    0x00025178 ldr r1, [pc, 0x748]                           |         r1 = *(0x258c4);
    0x0002517c add r3, pc, r3                                |         r3 = pc + r3;
    0x00025180 str r3, [sp]                                  |         *(sp) = r3;
    0x00025184 ldr r3, [pc, 0x740]                           |         r3 = *(0x258c8);
    0x00025188 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002518c add r3, pc, r3                                |         r3 = pc + r3;
    0x00025190 mov r2, r0                                    |         r2 = r0;
    0x00025194 mov r0, r7                                    |         r0 = r7;
    0x00025198 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0002519c ldr r1, [pc, 0x72c]                           |         r1 = *(0x258cc);
    0x000251a0 mov r0, r4                                    |         r0 = r4;
    0x000251a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000251a8 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
    0x000251ac mov r0, r4                                    |     r0 = r4;
    0x000251b0 bl 0x8f48                                     |     r0 = fcn_00008f48 ();
    0x000251b4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000251b8 bne 0x25278                                   |         
    0x000251bc ldr r3, [r6]                                  |         r3 = *(r6);
    0x000251c0 tst r3, 0x200                                 |         
                                                             |         if ((r3 & 0x200) != 0) {
    0x000251c4 beq 0x25270                                   |             
    0x000251c8 ldr r3, [pc, 0x654]                           |             r3 = *(0x25820);
    0x000251cc ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x000251d0 ldr r7, [r3]                                  |             r7 = *(0x25820);
    0x000251d4 bl 0x8204                                     |             getpid ();
    0x000251d8 ldr r3, [pc, 0x6f4]                           |             r3 = *(0x258d0);
    0x000251dc ldr r1, [pc, 0x6f4]                           |             r1 = *(0x258d4);
    0x000251e0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000251e4 str r3, [sp]                                  |             *(sp) = r3;
    0x000251e8 ldr r3, [pc, 0x6ec]                           |             r3 = *(0x258d8);
    0x000251ec add r1, pc, r1                                |             r1 = pc + r1;
    0x000251f0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000251f4 mov r2, r0                                    |             r2 = r0;
    0x000251f8 mov r0, r7                                    |             r0 = r7;
    0x000251fc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00025200 ldr r0, [r4, 0x10]                            |             r0 = *((r4 + 0x10));
    0x00025204 bl 0x81d4                                     |             fcn_000081d4 ();
    0x00025208 ldr r1, [pc, 0x6d0]                           |             r1 = *(0x258dc);
    0x0002520c add r1, pc, r1                                |             r1 = pc + r1;
    0x00025210 mov r2, r0                                    |             r2 = r0;
                                                             | label_11:
    0x00025214 mov r0, r4                                    |             r0 = r4;
    0x00025218 bl 0x24190                                    |             fcn_00024190 (r0);
                                                             | label_15:
    0x0002521c ldr r3, [r6]                                  |             r3 = *(r6);
    0x00025220 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) == 0) {
    0x00025224 beq 0x25270                                   |                 goto label_10;
                                                             |             }
    0x00025228 ldr r3, [pc, 0x5f4]                           |             r3 = *(0x25820);
    0x0002522c ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00025230 ldr r6, [r3]                                  |             r6 = *(0x25820);
    0x00025234 bl 0x8204                                     |             getpid ();
    0x00025238 ldr r3, [pc, 0x6a4]                           |             r3 = *(0x258e0);
    0x0002523c ldr r1, [pc, 0x6a4]                           |             r1 = *(0x258e4);
    0x00025240 add r3, pc, r3                                |             r3 = pc + r3;
    0x00025244 str r3, [sp]                                  |             *(sp) = r3;
    0x00025248 ldr r3, [pc, 0x69c]                           |             r3 = *(0x258e8);
    0x0002524c add r1, pc, r1                                |             r1 = pc + r1;
    0x00025250 add r3, pc, r3                                |             r3 = pc + r3;
    0x00025254 mov r2, r0                                    |             r2 = r0;
    0x00025258 mov r0, r6                                    |             r0 = r6;
    0x0002525c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00025260 ldr r1, [pc, 0x688]                           |             r1 = *(0x258ec);
    0x00025264 mov r0, r4                                    |             r0 = r4;
    0x00025268 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002526c bl 0x24190                                    |             fcn_00024190 (r0);
                                                             |         }
                                                             | label_10:
    0x00025270 mvn r7, 0                                     |         r7 = ~0;
    0x00025274 b 0x24bc4                                     |         goto label_4;
                                                             |     }
    0x00025278 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x0002527c tst r3, 0x800                                 |     
                                                             |     if ((r3 & 0x800) != 0) {
    0x00025280 bne 0x2548c                                   |         goto label_34;
                                                             |     }
                                                             | label_12:
    0x00025284 add r1, sp, 0x1c                              |     r1 += var_1ch;
    0x00025288 mov r0, r4                                    |     r0 = r4;
    0x0002528c bl 0x8810                                     |     r0 = fcn_00008810 ();
    0x00025290 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00025294 bne 0x24bc4                                   |         goto label_4;
                                                             |     }
    0x00025298 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0002529c bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x000252a0 mov r7, r0                                    |     r7 = r0;
    0x000252a4 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x000252a8 bl 0x8c90                                     |     r0 = fcn_00008c90 ();
    0x000252ac mov r8, r0                                    |     r8 = r0;
    0x000252b0 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x000252b4 bl 0x911c                                     |     r0 = fcn_0000911c ();
    0x000252b8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000252bc beq 0x25324                                   |         
    0x000252c0 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x000252c4 bl 0x911c                                     |         fcn_0000911c ();
    0x000252c8 ldr r3, [r6]                                  |         r3 = *(r6);
    0x000252cc tst r3, 0x200                                 |         
    0x000252d0 mov r8, r0                                    |         r8 = r0;
                                                             |         if ((r3 & 0x200) == 0) {
    0x000252d4 beq 0x25324                                   |             goto label_35;
                                                             |         }
    0x000252d8 ldr r3, [pc, 0x544]                           |         r3 = *(0x25820);
    0x000252dc ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000252e0 ldr sb, [r3]                                  |         sb = *(0x25820);
    0x000252e4 bl 0x8204                                     |         getpid ();
    0x000252e8 ldr r3, [pc, 0x604]                           |         r3 = *(0x258f0);
    0x000252ec ldr r1, [pc, 0x604]                           |         r1 = *(0x258f4);
    0x000252f0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000252f4 str r3, [sp]                                  |         *(sp) = r3;
    0x000252f8 ldr r3, [pc, 0x5fc]                           |         r3 = *(0x258f8);
    0x000252fc add r1, pc, r1                                |         r1 = pc + r1;
    0x00025300 add r3, pc, r3                                |         r3 = pc + r3;
    0x00025304 mov r2, r0                                    |         r2 = r0;
    0x00025308 mov r0, sb                                    |         r0 = sb;
    0x0002530c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00025310 ldr r1, [pc, 0x5e8]                           |         r1 = *(0x258fc);
    0x00025314 mov r2, r8                                    |         r2 = r8;
    0x00025318 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002531c mov r0, r4                                    |         r0 = r4;
    0x00025320 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
                                                             | label_35:
    0x00025324 mov r1, r8                                    |     r1 = r8;
    0x00025328 mov r3, 0                                     |     r3 = 0;
    0x0002532c mov r2, r7                                    |     r2 = r7;
    0x00025330 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00025334 bl 0x8330                                     |     r0 = fcn_00008330 ();
    0x00025338 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x0002533c bne 0x25538                                   |         goto label_36;
                                                             |     }
    0x00025340 mov r2, r8                                    |     r2 = r8;
    0x00025344 mov r1, r7                                    |     r1 = r7;
    0x00025348 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x0002534c bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x00025350 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x00025354 beq 0x25438                                   |         
    0x00025358 mov r0, r4                                    |         r0 = r4;
    0x0002535c bl 0x8558                                     |         r0 = fcn_00008558 ();
    0x00025360 mov sl, r0                                    |         sl = r0;
    0x00025364 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00025368 bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x0002536c cmp r0, 0                                     |         
    0x00025370 cmpne sl, 0                                   |         __asm ("cmpne sl, 0");
    0x00025374 mov sb, r0                                    |         sb = r0;
                                                             |         if (r0 != 0) {
    0x00025378 beq 0x25388                                   |             
    0x0002537c mov r1, sl                                    |             r1 = sl;
    0x00025380 bl 0x8d38                                     |             r0 = fcn_00008d38 ();
    0x00025384 mov sb, r0                                    |             sb = r0;
                                                             |         }
    0x00025388 cmp sb, 0                                     |         
                                                             |         if (sb == 0) {
    0x0002538c beq 0x25438                                   |             goto label_37;
                                                             |         }
    0x00025390 ldr r1, [pc, 0x56c]                           |         r1 = *(0x25900);
    0x00025394 mov r2, 0                                     |         r2 = 0;
    0x00025398 mov r3, 0                                     |         r3 = 0;
    0x0002539c strd r2, r3, [sp, 0x80]                       |         __asm ("strd r2, r3, [var_80h]");
    0x000253a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000253a4 mov r2, 9                                     |         r2 = 9;
    0x000253a8 mov r0, sb                                    |         r0 = sb;
    0x000253ac bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x000253b0 subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl != r0) {
    0x000253b4 bne 0x25438                                   |             goto label_37;
                                                             |         }
    0x000253b8 mov r0, r8                                    |         r0 = r8;
    0x000253bc bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x000253c0 subs fp, r0, 0                                |         
                                                             |         if (fp == r0) {
    0x000253c4 beq 0x25438                                   |             goto label_37;
                                                             |         }
    0x000253c8 mov r0, r8                                    |         r0 = r8;
    0x000253cc bl 0x87bc                                     |         r0 = fcn_000087bc ();
    0x000253d0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000253d4 beq 0x25410                                   |             
    0x000253d8 ldr r1, [pc, 0x528]                           |             r1 = *(0x25904);
    0x000253dc add r3, sp, 0x28                              |             r3 += s2;
    0x000253e0 add r2, sp, 0x24                              |             r2 += var_24h;
    0x000253e4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000253e8 bl 0x84a4                                     |             r0 = fcn_000084a4 ();
    0x000253ec cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000253f0 bne 0x25410                                   |                 goto label_38;
                                                             |             }
    0x000253f4 add r2, sp, 0x80                              |             r2 += var_80h;
    0x000253f8 ldr r1, [sp, 0x28]                            |             r1 = s2;
    0x000253fc ldr r0, [sp, 0x24]                            |             r0 = var_24h;
    0x00025400 bl 0x18084                                    |             r0 = fcn_00018084 (r0, r1);
    0x00025404 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00025408 bne 0x25438                                   |                 goto label_37;
                                                             |             }
    0x0002540c mov sl, 0x10                                  |             sl = 0x10;
                                                             |         }
                                                             | label_38:
    0x00025410 mov r2, 0                                     |         r2 = 0;
    0x00025414 mov r3, 0                                     |         r3 = 0;
    0x00025418 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x0002541c str sl, [sp, 8]                               |         var_8h = sl;
    0x00025420 ldrd r2, r3, [sp, 0x80]                       |         __asm ("ldrd r2, r3, [var_80h]");
    0x00025424 mov r1, fp                                    |         r1 = fp;
    0x00025428 mov r0, sb                                    |         r0 = sb;
    0x0002542c bl 0x38050                                    |         r0 = fcn_00038050 (r0, r1, r2, r3);
    0x00025430 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00025434 bne 0x25538                                   |             goto label_36;
                                                             |         }
                                                             |     }
                                                             | label_37:
    0x00025438 ldr r3, [r6]                                  |     r3 = *(r6);
    0x0002543c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00025440 beq 0x25270                                   |         goto label_10;
                                                             |     }
    0x00025444 ldr r3, [pc, 0x3d8]                           |     r3 = *(0x25820);
    0x00025448 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0002544c ldr r8, [r3]                                  |     r8 = *(0x25820);
    0x00025450 bl 0x8204                                     |     getpid ();
    0x00025454 ldr r3, [pc, 0x4b0]                           |     r3 = *(0x25908);
    0x00025458 ldr r1, [pc, 0x4b0]                           |     r1 = *(0x2590c);
    0x0002545c add r3, pc, r3                                |     r3 = pc + r3;
    0x00025460 str r3, [sp]                                  |     *(sp) = r3;
    0x00025464 ldr r3, [pc, 0x4a8]                           |     r3 = *(0x25910);
    0x00025468 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002546c add r3, pc, r3                                |     r3 = pc + r3;
    0x00025470 mov r2, r0                                    |     r2 = r0;
    0x00025474 mov r0, r8                                    |     r0 = r8;
    0x00025478 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0002547c ldr r1, [pc, 0x494]                           |     r1 = *(0x25914);
    0x00025480 mov r2, r7                                    |     r2 = r7;
    0x00025484 add r1, pc, r1                                |     r1 = pc + r1;
    0x00025488 b 0x25214                                     |     goto label_11;
                                                             | label_34:
    0x0002548c ldr r1, [pc, 0x488]                           |     r1 = *(0x25918);
    0x00025490 mov r0, r4                                    |     r0 = r4;
    0x00025494 add r1, pc, r1                                |     r1 = pc + r1;
    0x00025498 bl 0x24250                                    |     r0 = fcn_00024250 (r0, r1);
    0x0002549c subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x000254a0 bne 0x24bc4                                   |         goto label_4;
                                                             |     }
    0x000254a4 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x000254a8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000254ac beq 0x25284                                   |         goto label_12;
                                                             |     }
                                                             | label_16:
    0x000254b0 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x000254b4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000254b8 beq 0x25788                                   |         goto label_39;
                                                             |     }
                                                             | label_17:
    0x000254bc ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x000254c0 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x000254c4 beq 0x254d4                                   |         
    0x000254c8 mov r1, 1                                     |         r1 = 1;
    0x000254cc mov r0, r4                                    |         r0 = r4;
    0x000254d0 bl 0x8e94                                     |         fcn_00008e94 ();
                                                             |     }
    0x000254d4 mov r0, r4                                    |     r0 = r4;
    0x000254d8 bl 0x8858                                     |     r0 = fcn_00008858 ();
    0x000254dc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000254e0 beq 0x25514                                   |         
    0x000254e4 ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x000254e8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000254ec beq 0x25514                                   |             goto label_20;
                                                             |         }
    0x000254f0 bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x000254f4 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 == r0) {
    0x000254f8 beq 0x25514                                   |             goto label_20;
                                                             |         }
    0x000254fc bl 0x34f4c                                    |         r0 = fcn_00034f4c (r0);
    0x00025500 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00025504 bne 0x257d8                                   |             goto label_40;
                                                             |         }
                                                             | label_19:
    0x00025508 mov r1, 0                                     |         r1 = 0;
    0x0002550c mov r0, r4                                    |         r0 = r4;
    0x00025510 bl 0x8e94                                     |         fcn_00008e94 ();
                                                             |     }
                                                             | label_20:
    0x00025514 ldr r3, [r4, 0x6c]                            |     r3 = *((r4 + 0x6c));
    0x00025518 ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x0002551c orr r3, r3, 0x1000000                         |     r3 |= 0x1000000;
    0x00025520 str r3, [r4, 0x6c]                            |     *((r4 + 0x6c)) = r3;
    0x00025524 mov r0, r4                                    |     r0 = r4;
    0x00025528 bl 0x85e8                                     |     r0 = fcn_000085e8 ();
    0x0002552c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025530 bne 0x24ac0                                   |         goto label_13;
                                                             |     }
    0x00025534 b 0x24b64                                     |     goto label_14;
                                                             | label_36:
    0x00025538 mov r0, r8                                    |     r0 = r8;
    0x0002553c bl 0x87bc                                     |     r0 = fcn_000087bc ();
    0x00025540 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x00025544 beq 0x2521c                                   |         goto label_15;
                                                             |     }
    0x00025548 mov r0, 2                                     |     r0 = 2;
    0x0002554c bl 0x8c60                                     |     fcn_00008c60 ();
    0x00025550 add r1, sp, 0x20                              |     r1 += var_20h;
    0x00025554 mov r2, r0                                    |     r2 = r0;
    0x00025558 mov r0, r8                                    |     r0 = r8;
    0x0002555c bl 0x8e28                                     |     r0 = fcn_00008e28 ();
    0x00025560 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x00025564 bne 0x2521c                                   |         goto label_15;
                                                             |     }
    0x00025568 ldr r2, [sp, 0x20]                            |     r2 = var_20h;
    0x0002556c ldr r3, [r6]                                  |     r3 = *(r6);
    0x00025570 tst r2, 0x10                                  |     
    0x00025574 and r3, r3, 0x200                             |     r3 &= 0x200;
                                                             |     if ((r2 & 0x10) == 0) {
    0x00025578 beq 0x255d0                                   |         goto label_41;
                                                             |     }
    0x0002557c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00025580 beq 0x254b0                                   |         goto label_16;
                                                             |     }
    0x00025584 ldr r3, [pc, 0x298]                           |     r3 = *(0x25820);
    0x00025588 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0002558c ldr r6, [r3]                                  |     r6 = *(0x25820);
    0x00025590 bl 0x8204                                     |     getpid ();
    0x00025594 ldr r3, [pc, 0x384]                           |     r3 = *(0x2591c);
    0x00025598 ldr r1, [pc, 0x384]                           |     r1 = *(0x25920);
    0x0002559c add r3, pc, r3                                |     r3 = pc + r3;
    0x000255a0 str r3, [sp]                                  |     *(sp) = r3;
    0x000255a4 ldr r3, [pc, 0x37c]                           |     r3 = *(0x25924);
    0x000255a8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000255ac add r3, pc, r3                                |     r3 = pc + r3;
    0x000255b0 mov r2, r0                                    |     r2 = r0;
    0x000255b4 mov r0, r6                                    |     r0 = r6;
    0x000255b8 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x000255bc ldr r1, [pc, 0x368]                           |     r1 = *(0x25928);
    0x000255c0 mov r0, r4                                    |     r0 = r4;
    0x000255c4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000255c8 bl 0x24190                                    |     fcn_00024190 (r0);
    0x000255cc b 0x254b0                                     |     goto label_16;
                                                             | label_41:
    0x000255d0 tst r2, 0x68                                  |     
                                                             |     if ((r2 & 0x68) == 0) {
    0x000255d4 beq 0x2521c                                   |         goto label_15;
                                                             |     }
    0x000255d8 cmp r3, 0                                     |     
    0x000255dc str r8, [sp, 0x28]                            |     s2 = r8;
                                                             |     if (r3 != 0) {
    0x000255e0 beq 0x2562c                                   |         
    0x000255e4 ldr r3, [pc, 0x238]                           |         r3 = *(0x25820);
    0x000255e8 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000255ec ldr sb, [r3]                                  |         sb = *(0x25820);
    0x000255f0 bl 0x8204                                     |         getpid ();
    0x000255f4 ldr r3, [pc, 0x334]                           |         r3 = *(0x2592c);
    0x000255f8 ldr r1, [pc, 0x334]                           |         r1 = *(0x25930);
    0x000255fc add r3, pc, r3                                |         r3 = pc + r3;
    0x00025600 str r3, [sp]                                  |         *(sp) = r3;
    0x00025604 ldr r3, [pc, 0x32c]                           |         r3 = *(0x25934);
    0x00025608 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002560c add r3, pc, r3                                |         r3 = pc + r3;
    0x00025610 mov r2, r0                                    |         r2 = r0;
    0x00025614 mov r0, sb                                    |         r0 = sb;
    0x00025618 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0002561c ldr r1, [pc, 0x318]                           |         r1 = *(0x25938);
    0x00025620 mov r0, r4                                    |         r0 = r4;
    0x00025624 add r1, pc, r1                                |         r1 = pc + r1;
    0x00025628 bl 0x24190                                    |         fcn_00024190 (r0);
                                                             |     }
    0x0002562c mov r0, r4                                    |     r0 = r4;
    0x00025630 bl 0x8258                                     |     r0 = fcn_00008258 ();
    0x00025634 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl == r0) {
    0x00025638 beq 0x25780                                   |         goto label_42;
                                                             |     }
    0x0002563c bl 0x8378                                     |     getuid ();
    0x00025640 bl 0x19300                                    |     fcn_00019300 (r0);
    0x00025644 mov r1, sl                                    |     r1 = sl;
    0x00025648 mov sb, r0                                    |     sb = r0;
    0x0002564c mov r0, r4                                    |     r0 = r4;
    0x00025650 bl 0x85e8                                     |     r0 = fcn_000085e8 ();
    0x00025654 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00025658 beq 0x25780                                   |         goto label_42;
                                                             |     }
    0x0002565c cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x00025660 bne 0x256c8                                   |         goto label_43;
                                                             |     }
    0x00025664 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00025668 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002566c beq 0x2521c                                   |         goto label_15;
                                                             |     }
    0x00025670 ldr r3, [pc, 0x1ac]                           |     r3 = *(0x25820);
    0x00025674 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00025678 ldr r8, [r3]                                  |     r8 = *(0x25820);
    0x0002567c bl 0x8204                                     |     getpid ();
    0x00025680 ldr r3, [pc, 0x2b8]                           |     r3 = *(0x2593c);
    0x00025684 ldr r1, [pc, 0x2b8]                           |     r1 = *(0x25940);
    0x00025688 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002568c str r3, [sp]                                  |     *(sp) = r3;
    0x00025690 ldr r3, [pc, 0x2b0]                           |     r3 = *(0x25944);
    0x00025694 add r1, pc, r1                                |     r1 = pc + r1;
    0x00025698 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002569c mov r2, r0                                    |     r2 = r0;
    0x000256a0 mov r0, r8                                    |     r0 = r8;
    0x000256a4 bl 0x8798                                     |     r0 = fprintf (r0, r1, r2, r3)
    0x000256a8 bl 0x8378                                     |     getuid ();
    0x000256ac ldr r1, [pc, 0x298]                           |     r1 = *(0x25948);
    0x000256b0 mov r2, r7                                    |     r2 = r7;
    0x000256b4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000256b8 mov r3, r0                                    |     r3 = r0;
    0x000256bc mov r0, r4                                    |     r0 = r4;
    0x000256c0 bl 0x24190                                    |     fcn_00024190 (r0);
    0x000256c4 b 0x2521c                                     |     goto label_15;
                                                             | label_43:
    0x000256c8 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x000256cc bl 0x87bc                                     |     r0 = fcn_000087bc ();
    0x000256d0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000256d4 beq 0x25714                                   |         
    0x000256d8 ldr r1, [pc, 0x270]                           |         r1 = *(0x2594c);
    0x000256dc add r3, sp, 0x80                              |         r3 += var_80h;
    0x000256e0 add r2, sp, 0x28                              |         r2 += s2;
    0x000256e4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000256e8 bl 0x84a4                                     |         r0 = fcn_000084a4 ();
    0x000256ec cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000256f0 bne 0x25714                                   |             goto label_44;
                                                             |         }
    0x000256f4 ldr r2, [sp, 0x80]                            |         r2 = var_80h;
    0x000256f8 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x000256fc beq 0x25714                                   |             goto label_44;
                                                             |         }
    0x00025700 ldr r1, [sp, 0x28]                            |         r1 = s2;
    0x00025704 mov r0, sb                                    |         r0 = sb;
    0x00025708 bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x0002570c clz r8, r0                                    |         r8 &= r0;
    0x00025710 lsr r8, r8, 5                                 |         r8 >>= 5;
                                                             |     }
                                                             | label_44:
    0x00025714 mov r0, sb                                    |     r0 = sb;
    0x00025718 bl 0x91c4                                     |     free (r0);
    0x0002571c cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00025720 beq 0x2521c                                   |         goto label_15;
                                                             |     }
    0x00025724 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00025728 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0002572c beq 0x254b0                                   |         goto label_16;
                                                             |     }
    0x00025730 ldr r3, [pc, 0xec]                            |     r3 = *(0x25820);
    0x00025734 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00025738 ldr r6, [r3]                                  |     r6 = *(0x25820);
    0x0002573c bl 0x8204                                     |     getpid ();
    0x00025740 ldr r3, [pc, 0x20c]                           |     r3 = *(0x25950);
    0x00025744 ldr r1, [pc, 0x20c]                           |     r1 = *(0x25954);
    0x00025748 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002574c str r3, [sp]                                  |     *(sp) = r3;
    0x00025750 ldr r3, [pc, 0x204]                           |     r3 = *(0x25958);
    0x00025754 add r1, pc, r1                                |     r1 = pc + r1;
    0x00025758 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002575c mov r2, r0                                    |     r2 = r0;
    0x00025760 mov r0, r6                                    |     r0 = r6;
    0x00025764 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00025768 ldr r1, [pc, 0x1f0]                           |     r1 = *(0x2595c);
    0x0002576c mov r2, r7                                    |     r2 = r7;
    0x00025770 add r1, pc, r1                                |     r1 = pc + r1;
    0x00025774 mov r0, r4                                    |     r0 = r4;
    0x00025778 bl 0x24190                                    |     fcn_00024190 (r0);
    0x0002577c b 0x254b0                                     |     goto label_16;
                                                             | label_42:
    0x00025780 ldr r7, [pc, 0x88]                            |     r7 = *(0x2580c);
    0x00025784 b 0x24bc4                                     |     goto label_4;
                                                             | label_39:
    0x00025788 ldr r3, [r4, 0x44]                            |     r3 = *((r4 + 0x44));
    0x0002578c tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x00025790 bne 0x257bc                                   |         goto label_45;
                                                             |     }
                                                             | label_18:
    0x00025794 ldr r2, [r4, 0x70]                            |     r2 = *((r4 + 0x70));
    0x00025798 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0002579c bne 0x254bc                                   |         goto label_17;
                                                             |     }
    0x000257a0 ldr r1, [pc, 0x1bc]                           |     r1 = *(0x25960);
    0x000257a4 mov r0, r4                                    |     r0 = r4;
    0x000257a8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000257ac bl 0x1c654                                    |     r0 = fcn_0001c654 (r0, r1);
    0x000257b0 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x000257b4 beq 0x254bc                                   |         goto label_17;
                                                             |     }
    0x000257b8 b 0x24bc4                                     |     goto label_4;
                                                             | label_45:
    0x000257bc ldr r1, [pc, 0x1a4]                           |     r1 = *(0x25964);
    0x000257c0 mov r0, r4                                    |     r0 = r4;
    0x000257c4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000257c8 bl 0x24250                                    |     r0 = fcn_00024250 (r0, r1);
    0x000257cc subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x000257d0 bne 0x24bc4                                   |         goto label_4;
                                                             |     }
    0x000257d4 b 0x25794                                     |     goto label_18;
                                                             | label_40:
    0x000257d8 mov r0, r5                                    |     r0 = r5;
    0x000257dc bl 0x37f8c                                    |     r0 = fcn_00037f8c (r0);
    0x000257e0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000257e4 bne 0x25508                                   |         goto label_19;
                                                             |     }
    0x000257e8 b 0x25514                                     |     goto label_20;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1b92c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_context_set_syscall_status ()        | void mnt_context_set_syscall_status (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0001b92c ldr r3, [pc, 0x84]                        |     r3 = *(0x1b9b4);
    0x0001b930 push {r0, r1, r4, r5, r6, lr}             |     
    0x0001b934 subs r4, r0, 0                            |     r4 = r0 - 0;
    0x0001b938 add r3, pc, r3                            |     r3 = pc + r3;
                                                         |     if (r4 != r0) {
    0x0001b93c mvneq r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r4 != r0) {
    0x0001b940 beq 0x1b9b0                               |         
    0x0001b944 ldr r2, [pc, 0x70]                        |         
    0x0001b948 mov r5, r1                                |         r5 = r1;
    0x0001b94c ldr r2, [r3, r2]                          |         r2 = *((r3 + r2));
    0x0001b950 ldr r2, [r2]                              |         r2 = *(0x1b9b8);
    0x0001b954 tst r2, 0x200                             |         
                                                         |         if ((r2 & 0x200) != 0) {
    0x0001b958 beq 0x1b9a8                               |             
    0x0001b95c ldr r2, [pc, 0x5c]                        |             r2 = *(0x1b9bc);
    0x0001b960 ldr r3, [r3, r2]                          |             r3 = *((r3 + r2));
    0x0001b964 ldr r6, [r3]                              |             r6 = *(r3);
    0x0001b968 bl 0x8204                                 |             getpid ();
    0x0001b96c ldr r3, [pc, 0x50]                        |             r3 = *(0x1b9c0);
    0x0001b970 ldr r1, [pc, 0x50]                        |             r1 = *(0x1b9c4);
    0x0001b974 add r3, pc, r3                            |             r3 = pc + r3;
    0x0001b978 str r3, [sp]                              |             *(sp) = r3;
    0x0001b97c ldr r3, [pc, 0x48]                        |             r3 = *(0x1b9c8);
    0x0001b980 add r1, pc, r1                            |             r1 = pc + r1;
    0x0001b984 add r3, pc, r3                            |             r3 = pc + r3;
    0x0001b988 mov r2, r0                                |             r2 = r0;
    0x0001b98c mov r0, r6                                |             r0 = r6;
    0x0001b990 bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x0001b994 ldr r1, [pc, 0x34]                        |             r1 = *(0x1b9cc);
    0x0001b998 mov r2, r5                                |             r2 = r5;
    0x0001b99c add r1, pc, r1                            |             r1 = pc + r1;
    0x0001b9a0 mov r0, r4                                |             r0 = r4;
    0x0001b9a4 bl 0x1a538                                |             fcn_0001a538 (r0);
                                                         |         }
    0x0001b9a8 mov r0, 0                                 |         r0 = 0;
    0x0001b9ac str r5, [r4, 0x8c]                        |         *((r4 + 0x8c)) = r5;
                                                         |     }
    0x0001b9b0 add sp, sp, 8                             |     
    0x0001b9b4 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/lib/libmount.so.1.1.0 @ 0x1c124 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.mnt_context_set_target_ns ()                         | void mnt_context_set_target_ns (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0001c124 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}         |     
    0x0001c128 ldr r7, [pc, 0x1f0]                                   |     r7 = *(0x1c31c);
    0x0001c12c subs r5, r0, 0                                        |     r5 = r0 - 0;
    0x0001c130 add r7, pc, r7                                        |     r7 = pc + r7;
                                                                     |     if (r5 != r0) {
    0x0001c134 mvneq r4, 0x15                                        |         r4 = ~0x15;
                                                                     |     }
                                                                     |     if (r5 == r0) {
    0x0001c138 beq 0x1c1b8                                           |         goto label_2;
                                                                     |     }
    0x0001c13c ldr r3, [pc, 0x1e0]                                   |     r3 = *(0x1c320);
    0x0001c140 mov r4, r1                                            |     r4 = r1;
    0x0001c144 ldr sb, [r7, r3]                                      |     sb = *((r7 + r3));
    0x0001c148 ldr r3, [sb]                                          |     r3 = *(sb);
    0x0001c14c tst r3, 0x200                                         |     
                                                                     |     if ((r3 & 0x200) != 0) {
    0x0001c150 beq 0x1c1a0                                           |         
    0x0001c154 ldr r3, [pc, 0x1cc]                                   |         r3 = *(0x1c324);
    0x0001c158 ldr r3, [r7, r3]                                      |         r3 = *((r7 + r3));
    0x0001c15c ldr r6, [r3]                                          |         r6 = *(0x1c324);
    0x0001c160 bl 0x8204                                             |         getpid ();
    0x0001c164 ldr r3, [pc, 0x1c0]                                   |         r3 = *(0x1c328);
    0x0001c168 ldr r1, [pc, 0x1c0]                                   |         r1 = *(0x1c32c);
    0x0001c16c add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001c170 str r3, [sp]                                          |         *(sp) = r3;
    0x0001c174 ldr r3, [pc, 0x1b8]                                   |         r3 = *(0x1c330);
    0x0001c178 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001c17c add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001c180 mov r2, r0                                            |         r2 = r0;
    0x0001c184 mov r0, r6                                            |         r0 = r6;
    0x0001c188 bl 0x8798                                             |         fprintf (r0, r1, r2, r3)
    0x0001c18c ldr r1, [pc, 0x1a4]                                   |         r1 = *(0x1c334);
    0x0001c190 mov r2, r4                                            |         r2 = r4;
    0x0001c194 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001c198 mov r0, r5                                            |         r0 = r5;
    0x0001c19c bl 0x1a538                                            |         fcn_0001a538 (r0);
                                                                     |     }
    0x0001c1a0 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0001c1a4 bne 0x1c1c4                                           |         goto label_3;
                                                                     |     }
    0x0001c1a8 add r0, r5, 0x90                                      |     r0 = r5 + 0x90;
    0x0001c1ac bl 0x1a684                                            |     fcn_0001a684 (r0);
    0x0001c1b0 add r0, r5, 0x98                                      |     r0 = r5 + 0x98;
    0x0001c1b4 bl 0x1a684                                            |     fcn_0001a684 (r0);
                                                                     |     do {
                                                                     | label_2:
    0x0001c1b8 mov r0, r4                                            |         r0 = r4;
    0x0001c1bc add sp, sp, 0xc                                       |         
    0x0001c1c0 pop {r4, r5, r6, r7, r8, sb, pc}                      |         
                                                                     | label_3:
    0x0001c1c4 bl 0x8f6c                                             |         errno_location ();
    0x0001c1c8 mov r8, 0                                             |         r8 = 0;
    0x0001c1cc str r8, [r0]                                          |         *(r0) = r8;
    0x0001c1d0 ldr r3, [r5, 0x90]                                    |         r3 = *((r5 + 0x90));
    0x0001c1d4 mov r6, r0                                            |         r6 = r0;
    0x0001c1d8 cmn r3, 1                                             |         
                                                                     |         if (r3 != 1) {
    0x0001c1dc bne 0x1c20c                                           |             goto label_4;
                                                                     |         }
    0x0001c1e0 ldr r0, [pc, 0x154]                                   |         r0 = *(0x1c338);
    0x0001c1e4 mov r1, 0x80000                                       |         r1 = 0x80000;
    0x0001c1e8 add r0, pc, r0                                        |         r0 = pc + r0;
    0x0001c1ec bl 0x8ba0                                             |         r0 = open64 ();
    0x0001c1f0 cmn r0, 1                                             |         
    0x0001c1f4 str r0, [r5, 0x90]                                    |         *((r5 + 0x90)) = r0;
                                                                     |         if (r0 == 1) {
    0x0001c1f8 strne r8, [r5, 0x94]                                  |             *((r5 + 0x94)) = r8;
                                                                     |         }
                                                                     |         if (r0 != 1) {
    0x0001c1fc bne 0x1c20c                                           |             goto label_4;
                                                                     |         }
                                                                     | label_0:
    0x0001c200 ldr r4, [r6]                                          |         r4 = *(r6);
                                                                     | label_1:
    0x0001c204 rsb r4, r4, 0                                         |         r4 -= ;
    0x0001c208 b 0x1c1b8                                             |         
                                                                     |     } while (1);
                                                                     | label_4:
    0x0001c20c mov r1, 0x80000                                       |     r1 = 0x80000;
    0x0001c210 mov r0, r4                                            |     r0 = r4;
    0x0001c214 bl 0x8ba0                                             |     r0 = open64 ();
    0x0001c218 cmn r0, 1                                             |     
    0x0001c21c mov r8, r0                                            |     r8 = r0;
                                                                     |     if (r0 == 1) {
    0x0001c220 beq 0x1c200                                           |         goto label_0;
                                                                     |     }
    0x0001c224 ldr r3, [sb]                                          |     r3 = *(sb);
    0x0001c228 tst r3, 0x200                                         |     
                                                                     |     if ((r3 & 0x200) != 0) {
    0x0001c22c beq 0x1c278                                           |         
    0x0001c230 ldr r3, [pc, 0xf0]                                    |         r3 = *(0x1c324);
    0x0001c234 ldr r3, [r7, r3]                                      |         r3 = *((r7 + r3));
    0x0001c238 ldr r4, [r3]                                          |         r4 = *(0x1c324);
    0x0001c23c bl 0x8204                                             |         getpid ();
    0x0001c240 ldr r3, [pc, 0xf8]                                    |         r3 = *(0x1c33c);
    0x0001c244 ldr r1, [pc, 0xf8]                                    |         r1 = *(0x1c340);
    0x0001c248 add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001c24c str r3, [sp]                                          |         *(sp) = r3;
    0x0001c250 ldr r3, [pc, 0xf0]                                    |         r3 = *(0x1c344);
    0x0001c254 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001c258 add r3, pc, r3                                        |         r3 = pc + r3;
    0x0001c25c mov r2, r0                                            |         r2 = r0;
    0x0001c260 mov r0, r4                                            |         r0 = r4;
    0x0001c264 bl 0x8798                                             |         fprintf (r0, r1, r2, r3)
    0x0001c268 ldr r1, [pc, 0xdc]                                    |         r1 = *(0x1c348);
    0x0001c26c mov r0, r5                                            |         r0 = r5;
    0x0001c270 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001c274 bl 0x1a538                                            |         fcn_0001a538 (r0);
                                                                     |     }
    0x0001c278 mov r1, 0x20000                                       |     r1 = 0x20000;
    0x0001c27c mov r0, r8                                            |     r0 = r8;
    0x0001c280 bl 0x8c00                                             |     r0 = setns ();
    0x0001c284 cmp r0, 0                                             |     
    0x0001c288 beq 0x1c2f8                                           |     
                                                                     |     while (r4 != r0) {
    0x0001c28c ldr r3, [sb]                                          |         r3 = *(sb);
    0x0001c290 ldr r4, [r6]                                          |         r4 = *(r6);
    0x0001c294 tst r3, 0x200                                         |         
                                                                     |         if ((r3 & 0x200) != 0) {
    0x0001c298 beq 0x1c2e8                                           |             
    0x0001c29c ldr r3, [pc, 0x84]                                    |             r3 = *(0x1c324);
    0x0001c2a0 ldr r3, [r7, r3]                                      |             r3 = *((r7 + r3));
    0x0001c2a4 ldr r7, [r3]                                          |             r7 = *(0x1c324);
    0x0001c2a8 bl 0x8204                                             |             getpid ();
    0x0001c2ac ldr r3, [pc, 0x9c]                                    |             r3 = *(0x1c34c);
    0x0001c2b0 ldr r1, [pc, 0x9c]                                    |             r1 = *(0x1c350);
    0x0001c2b4 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0001c2b8 str r3, [sp]                                          |             *(sp) = r3;
    0x0001c2bc ldr r3, [pc, 0x94]                                    |             r3 = *(0x1c354);
    0x0001c2c0 add r1, pc, r1                                        |             r1 = pc + r1;
    0x0001c2c4 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0001c2c8 mov r2, r0                                            |             r2 = r0;
    0x0001c2cc mov r0, r7                                            |             r0 = r7;
    0x0001c2d0 bl 0x8798                                             |             fprintf (r0, r1, r2, r3)
    0x0001c2d4 ldr r1, [pc, 0x80]                                    |             r1 = *(0x1c358);
    0x0001c2d8 ldr r2, [r6]                                          |             r2 = *(r6);
    0x0001c2dc add r1, pc, r1                                        |             r1 = pc + r1;
    0x0001c2e0 mov r0, r5                                            |             r0 = r5;
    0x0001c2e4 bl 0x1a538                                            |             fcn_0001a538 (r0);
                                                                     |         }
    0x0001c2e8 mov r0, r8                                            |         r0 = r8;
    0x0001c2ec bl 0x917c                                             |         close (r0);
    0x0001c2f0 str r4, [r6]                                          |         *(r6) = r4;
    0x0001c2f4 b 0x1c204                                             |         goto label_1;
    0x0001c2f8 mov r1, 0x20000                                       |         r1 = 0x20000;
    0x0001c2fc ldr r0, [r5, 0x90]                                    |         r0 = *((r5 + 0x90));
    0x0001c300 bl 0x8c00                                             |         r0 = setns ();
    0x0001c304 subs r4, r0, 0                                        |         r4 = r0 - 0;
    0x0001c308 bne 0x1c28c                                           |         
                                                                     |     }
    0x0001c30c add r0, r5, 0x98                                      |     r0 = r5 + 0x98;
    0x0001c310 bl 0x1a684                                            |     fcn_0001a684 (r0);
    0x0001c314 str r8, [r5, 0x98]                                    |     *((r5 + 0x98)) = r8;
    0x0001c318 str r4, [r5, 0x9c]                                    |     *((r5 + 0x9c)) = r4;
    0x0001c31c b 0x1c1b8                                             |     goto label_2;
                                                                     | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1c464 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.mnt_context_switch_ns ()                             | void mnt_context_switch_ns (uint32_t arg1, uint32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0001c464 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}         |     
    0x0001c468 ldr r7, [pc, 0x190]                                   |     r7 = *(0x1c5fc);
    0x0001c46c cmp r1, 0                                             |     
    0x0001c470 cmpne r0, 0                                           |     __asm ("cmpne r0, 0");
    0x0001c474 add r7, pc, r7                                        |     r7 = pc + r7;
                                                                     |     if (r1 == 0) {
    0x0001c478 beq 0x1c5bc                                           |         goto label_1;
                                                                     |     }
    0x0001c47c ldr r6, [r0, 0xa0]                                    |     r6 = *((r0 + 0xa0));
    0x0001c480 cmp r1, r6                                            |     
                                                                     |     if (r1 == r6) {
    0x0001c484 beq 0x1c5f4                                           |         goto label_2;
                                                                     |     }
    0x0001c488 ldr r3, [r1]                                          |     r3 = *(r1);
    0x0001c48c cmn r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001c490 beq 0x1c5f4                                           |         goto label_2;
                                                                     |     }
    0x0001c494 mov r4, r0                                            |     r4 = r0;
    0x0001c498 ldr r3, [r4, 0x50]                                    |     r3 = *((r4 + 0x50));
    0x0001c49c ldr r0, [r6, 4]                                       |     r0 = *((r6 + 4));
    0x0001c4a0 mov r5, r1                                            |     r5 = r1;
    0x0001c4a4 cmp r0, r3                                            |     
                                                                     |     if (r0 != r3) {
    0x0001c4a8 beq 0x1c4bc                                           |         
    0x0001c4ac bl 0x8d8c                                             |         fcn_00008d8c ();
    0x0001c4b0 ldr r0, [r4, 0x50]                                    |         r0 = *((r4 + 0x50));
    0x0001c4b4 str r0, [r6, 4]                                       |         *((r6 + 4)) = r0;
    0x0001c4b8 bl 0x884c                                             |         fcn_0000884c ();
                                                                     |     }
    0x0001c4bc ldr r3, [pc, 0x140]                                   |     r3 = *(0x1c600);
    0x0001c4c0 ldr r8, [r7, r3]                                      |     r8 = *((r7 + r3));
    0x0001c4c4 ldr r3, [r8]                                          |     r3 = *(r8);
    0x0001c4c8 tst r3, 0x200                                         |     
                                                                     |     if ((r3 & 0x200) == 0) {
    0x0001c4cc beq 0x1c540                                           |         goto label_3;
                                                                     |     }
    0x0001c4d0 ldr r3, [pc, 0x130]                                   |     r3 = *(0x1c604);
    0x0001c4d4 ldr r3, [r7, r3]                                      |     r3 = *((r7 + r3));
    0x0001c4d8 ldr sb, [r3]                                          |     sb = *(0x1c604);
    0x0001c4dc bl 0x8204                                             |     getpid ();
    0x0001c4e0 ldr r3, [pc, 0x124]                                   |     r3 = *(0x1c608);
    0x0001c4e4 ldr r1, [pc, 0x124]                                   |     r1 = *(0x1c60c);
    0x0001c4e8 add r3, pc, r3                                        |     r3 = pc + r3;
    0x0001c4ec str r3, [sp]                                          |     *(sp) = r3;
    0x0001c4f0 ldr r3, [pc, 0x11c]                                   |     r3 = *(0x1c610);
    0x0001c4f4 add r1, pc, r1                                        |     r1 = pc + r1;
    0x0001c4f8 add r3, pc, r3                                        |     r3 = pc + r3;
    0x0001c4fc mov r2, r0                                            |     r2 = r0;
    0x0001c500 mov r0, sb                                            |     r0 = sb;
    0x0001c504 bl 0x8798                                             |     fprintf (r0, r1, r2, r3)
    0x0001c508 mov r0, r4                                            |     r0 = r4;
    0x0001c50c bl 0x84bc                                             |     r0 = fcn_000084bc ();
    0x0001c510 cmp r5, r0                                            |     
                                                                     |     if (r5 == r0) {
    0x0001c514 beq 0x1c5c4                                           |         goto label_4;
                                                                     |     }
    0x0001c518 mov r0, r4                                            |     r0 = r4;
    0x0001c51c bl 0x8618                                             |     r0 = fcn_00008618 ();
    0x0001c520 cmp r5, r0                                            |     
                                                                     |     if (r5 == r0) {
    0x0001c524 beq 0x1c5d0                                           |         goto label_5;
                                                                     |     }
    0x0001c528 ldr r2, [pc, 0xe8]                                    |     r2 = *(0x1c614);
    0x0001c52c add r2, pc, r2                                        |     r2 = pc + r2;
                                                                     |     do {
                                                                     | label_0:
    0x0001c530 ldr r1, [pc, 0xe4]                                    |         r1 = *(0x1c618);
    0x0001c534 mov r0, r4                                            |         r0 = r4;
    0x0001c538 add r1, pc, r1                                        |         r1 = pc + r1;
    0x0001c53c bl 0x1a538                                            |         fcn_0001a538 (r0);
                                                                     | label_3:
    0x0001c540 mov r1, 0x20000                                       |         r1 = 0x20000;
    0x0001c544 ldr r0, [r5]                                          |         r0 = *(r5);
    0x0001c548 bl 0x8c00                                             |         r0 = setns ();
    0x0001c54c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001c550 beq 0x1c5dc                                           |             goto label_6;
                                                                     |         }
    0x0001c554 bl 0x8f6c                                             |         errno_location ();
    0x0001c558 ldr r3, [r8]                                          |         r3 = *(r8);
    0x0001c55c tst r3, 0x200                                         |         
    0x0001c560 mov r5, r0                                            |         r5 = r0;
    0x0001c564 ldr r6, [r0]                                          |         r6 = *(r0);
                                                                     |         if ((r3 & 0x200) != 0) {
    0x0001c568 beq 0x1c5b8                                           |             
    0x0001c56c ldr r3, [pc, 0x94]                                    |             r3 = *(0x1c604);
    0x0001c570 ldr r3, [r7, r3]                                      |             r3 = *((r7 + r3));
    0x0001c574 ldr r7, [r3]                                          |             r7 = *(0x1c604);
    0x0001c578 bl 0x8204                                             |             getpid ();
    0x0001c57c ldr r3, [pc, 0x9c]                                    |             r3 = *(0x1c61c);
    0x0001c580 ldr r1, [pc, 0x9c]                                    |             r1 = *(0x1c620);
    0x0001c584 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0001c588 str r3, [sp]                                          |             *(sp) = r3;
    0x0001c58c ldr r3, [pc, 0x94]                                    |             r3 = *(0x1c624);
    0x0001c590 add r1, pc, r1                                        |             r1 = pc + r1;
    0x0001c594 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0001c598 mov r2, r0                                            |             r2 = r0;
    0x0001c59c mov r0, r7                                            |             r0 = r7;
    0x0001c5a0 bl 0x8798                                             |             fprintf (r0, r1, r2, r3)
    0x0001c5a4 ldr r1, [pc, 0x80]                                    |             r1 = *(0x1c628);
    0x0001c5a8 ldr r2, [r5]                                          |             r2 = *(r5);
    0x0001c5ac add r1, pc, r1                                        |             r1 = pc + r1;
    0x0001c5b0 mov r0, r4                                            |             r0 = r4;
    0x0001c5b4 bl 0x1a538                                            |             fcn_0001a538 (r0);
                                                                     |         }
    0x0001c5b8 str r6, [r5]                                          |         *(r5) = r6;
                                                                     | label_1:
    0x0001c5bc mov r6, 0                                             |         r6 = 0;
    0x0001c5c0 b 0x1c5f4                                             |         goto label_2;
                                                                     | label_4:
    0x0001c5c4 ldr r2, [pc, 0x64]                                    |         r2 = *(0x1c62c);
    0x0001c5c8 add r2, pc, r2                                        |         r2 = pc + r2;
    0x0001c5cc b 0x1c530                                             |         
                                                                     |     } while (1);
                                                                     | label_5:
    0x0001c5d0 ldr r2, [pc, 0x5c]                                    |     r2 = *(0x1c630);
    0x0001c5d4 add r2, pc, r2                                        |     r2 = pc + r2;
    0x0001c5d8 b 0x1c530                                             |     goto label_0;
                                                                     | label_6:
    0x0001c5dc ldr r0, [r4, 0x50]                                    |     r0 = *((r4 + 0x50));
    0x0001c5e0 str r5, [r4, 0xa0]                                    |     *((r4 + 0xa0)) = r5;
    0x0001c5e4 bl 0x8d8c                                             |     fcn_00008d8c ();
    0x0001c5e8 ldr r0, [r5, 4]                                       |     r0 = *((r5 + 4));
    0x0001c5ec str r0, [r4, 0x50]                                    |     *((r4 + 0x50)) = r0;
    0x0001c5f0 bl 0x884c                                             |     fcn_0000884c ();
                                                                     | label_2:
    0x0001c5f4 mov r0, r6                                            |     r0 = r6;
    0x0001c5f8 add sp, sp, 0xc                                       |     
    0x0001c5fc pop {r4, r5, r6, r7, r8, sb, 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/lib/libmount.so.1.1.0 @ 0x26930 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_context_umount ()            | void mnt_context_umount (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
    0x00026930 ldr r3, [pc, 0x19c]               |     r3 = *(0x26ad0);
    0x00026934 push {r0, r1, r4, r5, r6, lr}     |     
    0x00026938 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0002693c add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r4 != r0) {
    0x00026940 bne 0x26968                       |         goto label_2;
                                                 |     }
    0x00026944 ldr r3, [pc, 0x18c]               |     
    0x00026948 ldr r1, [pc, 0x18c]               |     r1 = *(0x26ad8);
    0x0002694c ldr r0, [pc, 0x18c]               |     r0 = *(0x26adc);
    0x00026950 ldr r2, [pc, 0x18c]               |     r2 = *(0x26ae0);
    0x00026954 add r3, pc, r3                    |     r3 = pc + r3;
    0x00026958 add r3, r3, 0xa3                  |     r3 = 0x26b77;
    0x0002695c add r1, pc, r1                    |     r1 = pc + r1;
    0x00026960 add r0, pc, r0                    |     r0 = pc + r0;
                                                 |     do {
                                                 | label_0:
    0x00026964 bl 0x908c                         |         assert ();
                                                 | label_2:
    0x00026968 ldr r2, [r4, 0x10]                |         r2 = *((r4 + 0x10));
    0x0002696c cmp r2, 0                         |         
                                                 |         if (r2 != 0) {
    0x00026970 bne 0x26998                       |             goto label_3;
                                                 |         }
    0x00026974 ldr r3, [pc, 0x16c]               |         
    0x00026978 ldr r1, [pc, 0x16c]               |         r1 = *(0x26ae8);
    0x0002697c ldr r0, [pc, 0x16c]               |         r0 = *(0x26aec);
    0x00026980 add r3, pc, r3                    |         r3 = pc + r3;
    0x00026984 add r3, r3, 0xa3                  |         r3 = 0x26b87;
    0x00026988 mov r2, 0x3e8                     |         r2 = 0x3e8;
    0x0002698c add r1, pc, r1                    |         r1 = pc + r1;
    0x00026990 add r0, pc, r0                    |         r0 = pc + r0;
    0x00026994 b 0x26964                         |         
                                                 |     } while (1);
                                                 | label_3:
    0x00026998 ldr r2, [r4, 0x78]                |     r2 = *((r4 + 0x78));
    0x0002699c cmp r2, 1                         |     
                                                 |     if (r2 != 1) {
    0x000269a0 beq 0x269c8                       |         
    0x000269a4 ldr r3, [pc, 0x148]               |         
    0x000269a8 ldr r1, [pc, 0x148]               |         r1 = *(0x26af4);
    0x000269ac ldr r0, [pc, 0x148]               |         r0 = *(0x26af8);
    0x000269b0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000269b4 add r3, r3, 0xa3                  |         r3 = 0x26b93;
    0x000269b8 ldr r2, [pc, 0x140]               |         r2 = *(0x26afc);
    0x000269bc add r1, pc, r1                    |         r1 = pc + r1;
    0x000269c0 add r0, pc, r0                    |         r0 = pc + r0;
    0x000269c4 b 0x26964                         |         goto label_0;
                                                 |     }
    0x000269c8 ldr r2, [r4, 0x8c]                |     r2 = *((r4 + 0x8c));
    0x000269cc cmp r2, 1                         |     
                                                 |     if (r2 != 1) {
    0x000269d0 beq 0x269f8                       |         
    0x000269d4 ldr r3, [pc, 0x128]               |         
    0x000269d8 ldr r1, [pc, 0x128]               |         r1 = *(0x26b04);
    0x000269dc ldr r0, [pc, 0x128]               |         r0 = *(0x26b08);
    0x000269e0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000269e4 add r3, r3, 0xa3                  |         r3 = 0x26ba3;
    0x000269e8 ldr r2, [pc, 0x120]               |         r2 = *(0x26b0c);
    0x000269ec add r1, pc, r1                    |         r1 = pc + r1;
    0x000269f0 add r0, pc, r0                    |         r0 = pc + r0;
    0x000269f4 b 0x26964                         |         goto label_0;
                                                 |     }
    0x000269f8 ldr r2, [pc, 0x114]               |     
    0x000269fc ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x00026a00 ldr r2, [r2]                      |     r2 = *(0x26b10);
    0x00026a04 tst r2, 0x200                     |     
                                                 |     if ((r2 & 0x200) != 0) {
    0x00026a08 beq 0x26a60                       |         
    0x00026a0c ldr r2, [pc, 0x104]               |         r2 = *(0x26b14);
    0x00026a10 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x00026a14 ldr r5, [r3]                      |         r5 = *(r3);
    0x00026a18 bl 0x8204                         |         getpid ();
    0x00026a1c ldr r3, [pc, 0xf8]                |         r3 = *(0x26b18);
    0x00026a20 ldr r1, [pc, 0xf8]                |         r1 = *(0x26b1c);
    0x00026a24 add r3, pc, r3                    |         r3 = pc + r3;
    0x00026a28 str r3, [sp]                      |         *(sp) = r3;
    0x00026a2c ldr r3, [pc, 0xf0]                |         r3 = *(0x26b20);
    0x00026a30 add r1, pc, r1                    |         r1 = pc + r1;
    0x00026a34 add r3, pc, r3                    |         r3 = pc + r3;
    0x00026a38 mov r2, r0                        |         r2 = r0;
    0x00026a3c mov r0, r5                        |         r0 = r5;
    0x00026a40 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00026a44 mov r0, r4                        |         r0 = r4;
    0x00026a48 bl 0x84b0                         |         fcn_000084b0 ();
    0x00026a4c ldr r1, [pc, 0xd4]                |         r1 = *(0x26b24);
    0x00026a50 add r1, pc, r1                    |         r1 = pc + r1;
    0x00026a54 mov r2, r0                        |         r2 = r0;
    0x00026a58 mov r0, r4                        |         r0 = r4;
    0x00026a5c bl 0x24190                        |         fcn_00024190 (r0);
                                                 |     }
    0x00026a60 mov r0, r4                        |     r0 = r4;
    0x00026a64 bl 0x872c                         |     r0 = fcn_0000872c ();
    0x00026a68 subs r6, r0, 0                    |     r6 = r0 - 0;
                                                 |     if (r6 != r0) {
    0x00026a6c bne 0x26a80                       |         goto label_4;
                                                 |     }
                                                 | label_1:
    0x00026a70 ldr r5, [pc, 0xb4]                |     r5 = *(0x26b28);
                                                 |     do {
    0x00026a74 mov r0, r5                        |         r0 = r5;
    0x00026a78 add sp, sp, 8                     |         
    0x00026a7c pop {r4, r5, r6, pc}              |         
                                                 | label_4:
    0x00026a80 mov r0, r4                        |         r0 = r4;
    0x00026a84 bl 0x8e10                         |         r0 = fcn_00008e10 ();
    0x00026a88 subs r5, r0, 0                    |         r5 = r0 - 0;
                                                 |         if (r5 == r0) {
    0x00026a8c bne 0x26abc                       |             
    0x00026a90 mov r0, r4                        |             r0 = r4;
    0x00026a94 bl 0x1cd54                        |             r0 = fcn_0001cd54 (r0);
    0x00026a98 subs r5, r0, 0                    |             r5 = r0 - 0;
                                                 |             if (r5 != r0) {
    0x00026a9c bne 0x26abc                       |                 goto label_5;
                                                 |             }
    0x00026aa0 mov r0, r4                        |             r0 = r4;
    0x00026aa4 bl 0x8510                         |             r0 = fcn_00008510 ();
    0x00026aa8 subs r5, r0, 0                    |             r5 = r0 - 0;
                                                 |             if (r5 != r0) {
    0x00026aac bne 0x26abc                       |                 goto label_5;
                                                 |             }
    0x00026ab0 mov r0, r4                        |             r0 = r4;
    0x00026ab4 bl 0x1e508                        |             r0 = fcn_0001e508 (r0);
    0x00026ab8 mov r5, r0                        |             r5 = r0;
                                                 |         }
                                                 | label_5:
    0x00026abc mov r1, r6                        |         r1 = r6;
    0x00026ac0 mov r0, r4                        |         r0 = r4;
    0x00026ac4 bl 0x85e8                         |         r0 = fcn_000085e8 ();
    0x00026ac8 cmp r0, 0                         |         
    0x00026acc bne 0x26a74                       |         
                                                 |     } while (r0 != 0);
    0x00026ad0 b 0x26a70                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x1bf3c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_context_wait_for_children ()                 | void mnt_context_wait_for_children (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001bf3c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001bf40 ldr r8, [pc, 0x1b0]                               |     r8 = *(0x1c0f4);
    0x0001bf44 subs r4, r0, 0                                    |     r4 -= arg_0h;
    0x0001bf48 add r8, pc, r8                                    |     r8 = pc + r8;
    0x0001bf4c sub sp, sp, 0x24                                  |     
                                                                 |     if (r4 == arg_0h) {
    0x0001bf50 beq 0x1c0f0                                       |         goto label_2;
                                                                 |     }
    0x0001bf54 mov r7, r2                                        |     r7 = r2;
    0x0001bf58 mov r6, r1                                        |     r6 = r1;
    0x0001bf5c bl 0x87d4                                         |     r0 = fcn_000087d4 ();
    0x0001bf60 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001bf64 bne 0x1c0d4                                       |         goto label_3;
                                                                 |     }
    0x0001bf68 ldr r3, [pc, 0x18c]                               |     
    0x0001bf6c ldr r1, [pc, 0x18c]                               |     r1 = *(0x1c0fc);
    0x0001bf70 ldr r0, [pc, 0x18c]                               |     r0 = *(0x1c100);
    0x0001bf74 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001bf78 add r3, r3, 0x53                                  |     r3 = 0x1c14b;
    0x0001bf7c ldr r2, [pc, 0x184]                               |     r2 = *(0x1c104);
    0x0001bf80 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001bf84 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001bf88 bl 0x908c                                         |     assert ();
                                                                 | label_0:
    0x0001bf8c ldr sb, [r0, r5, lsl 2]                           |     offset_0 = r5 << 2;
                                                                 |     sb = *((r0 + offset_0));
    0x0001bf90 lsl r3, r5, 2                                     |     r3 = r5 << 2;
    0x0001bf94 cmp sb, 0                                         |     
    0x0001bf98 str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     if (sb == 0) {
    0x0001bf9c beq 0x1c0a4                                       |         goto label_4;
                                                                 |     }
    0x0001bfa0 mov r3, 0                                         |     r3 = 0;
    0x0001bfa4 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0001bfa8 ldr r3, [pc, 0x15c]                               |     r3 = *(0x1c108);
    0x0001bfac ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001bfb0 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 |     do {
    0x0001bfb4 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0001bfb8 ldr r3, [r3]                                      |         r3 = *(r3);
    0x0001bfbc tst r3, 0x200                                     |         
                                                                 |         if ((r3 & 0x200) != 0) {
    0x0001bfc0 beq 0x1c010                                       |             
    0x0001bfc4 ldr r3, [pc, 0x144]                               |             r3 = *(0x1c10c);
    0x0001bfc8 ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x0001bfcc ldr fp, [r3]                                      |             fp = *(0x1c10c);
    0x0001bfd0 bl 0x8204                                         |             getpid ();
    0x0001bfd4 ldr r3, [pc, 0x138]                               |             r3 = *(0x1c110);
    0x0001bfd8 mov r1, sl                                        |             r1 = sl;
    0x0001bfdc add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001bfe0 str r3, [sp]                                      |             *(sp) = r3;
    0x0001bfe4 ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0001bfe8 mov r2, r0                                        |             r2 = r0;
    0x0001bfec mov r0, fp                                        |             r0 = fp;
    0x0001bff0 bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
    0x0001bff4 ldr r1, [pc, 0x11c]                               |             r1 = *(0x1c114);
    0x0001bff8 str sb, [sp]                                      |             *(sp) = sb;
    0x0001bffc add r2, r5, 1                                     |             r2 = r5 + 1;
    0x0001c000 ldr r3, [r4, 0x84]                                |             r3 = *((r4 + 0x84));
    0x0001c004 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0001c008 mov r0, r4                                        |             r0 = r4;
    0x0001c00c bl 0x1a538                                        |             r0 = fcn_0001a538 (r0);
                                                                 |         }
    0x0001c010 bl 0x8f6c                                         |         errno_location ();
    0x0001c014 mov r2, 0                                         |         r2 = 0;
    0x0001c018 add r1, sp, 0x1c                                  |         r1 += var_1ch;
    0x0001c01c str r2, [r0]                                      |         *(r0) = r2;
    0x0001c020 mov fp, r0                                        |         
    0x0001c024 mov r0, sb                                        |         r0 = sb;
    0x0001c028 bl 0x7ee0                                         |         r0 = waitpid ();
    0x0001c02c cmn r0, 1                                         |         
                                                                 |         if (r0 != 1) {
    0x0001c030 bne 0x1c04c                                       |             goto label_5;
                                                                 |         }
    0x0001c034 ldr r3, [fp]                                      |         r3 = *(fp);
    0x0001c038 cmp r3, 4                                         |         
    0x0001c03c beq 0x1bfb4                                       |         
                                                                 |     } while (r3 == 4);
    0x0001c040 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0001c044 bne 0x1c054                                       |         
    0x0001c048 b 0x1c094                                         |         goto label_6;
                                                                 | label_5:
    0x0001c04c cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x0001c050 beq 0x1c060                                       |             goto label_7;
                                                                 |         }
                                                                 |     }
    0x0001c054 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0001c058 add r3, r3, 1                                     |     r3++;
    0x0001c05c str r3, [r6]                                      |     *(r6) = r3;
                                                                 | label_7:
    0x0001c060 cmp r7, 0                                         |     
    0x0001c064 cmnne r0, 1                                       |     __asm ("cmnne r0, 1");
                                                                 |     if (r7 != 0) {
    0x0001c068 beq 0x1c094                                       |         
    0x0001c06c ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x0001c070 ldr r3, [r7]                                      |         r3 = *(r7);
    0x0001c074 tst r2, 0x7f                                      |         
                                                                 |         if ((r2 & 0x7f) == 0) {
    0x0001c078 addne r3, r3, 1                                   |             r3++;
                                                                 |         }
                                                                 |         if ((r2 & 0x7f) == 0) {
    0x0001c07c bne 0x1c090                                       |             
    0x0001c080 asr r2, r2, 8                                     |             r2 >>= 8;
    0x0001c084 and r2, r2, 0xff                                  |             r2 &= 0xff;
    0x0001c088 cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x0001c08c addne r3, r3, 1                                   |                 r3++;
                                                                 |                 goto label_8;
                                                                 |             }
                                                                 |         }
                                                                 | label_8:
    0x0001c090 str r3, [r7]                                      |         *(r7) = r3;
                                                                 |     }
                                                                 | label_6:
    0x0001c094 ldr r3, [r4, 0x80]                                |     r3 = *((r4 + 0x80));
    0x0001c098 ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x0001c09c mov r2, 0                                         |     r2 = 0;
    0x0001c0a0 str r2, [r3, r1]                                  |     *((r3 + r1)) = r2;
                                                                 | label_4:
    0x0001c0a4 add r5, r5, 1                                     |     r5++;
                                                                 | label_1:
    0x0001c0a8 ldr r3, [r4, 0x84]                                |     r3 = *((r4 + 0x84));
    0x0001c0ac ldr r0, [r4, 0x80]                                |     r0 = *((r4 + 0x80));
    0x0001c0b0 cmp r3, r5                                        |     
                                                                 |     if (r3 > r5) {
    0x0001c0b4 bgt 0x1bf8c                                       |         goto label_0;
                                                                 |     }
    0x0001c0b8 mov r5, 0                                         |     r5 = 0;
    0x0001c0bc str r5, [r4, 0x84]                                |     *((r4 + 0x84)) = r5;
    0x0001c0c0 bl 0x91c4                                         |     free (r0);
    0x0001c0c4 mov r0, r5                                        |     r0 = r5;
    0x0001c0c8 str r5, [r4, 0x80]                                |     *((r4 + 0x80)) = r5;
                                                                 |     do {
    0x0001c0cc add sp, sp, 0x24                                  |         
    0x0001c0d0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_3:
    0x0001c0d4 ldr r3, [pc, 0x40]                                |         r3 = *(0x1c118);
    0x0001c0d8 ldr sl, [pc, 0x40]                                |         sl = *(0x0001c120);
    0x0001c0dc add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001c0e0 mov r5, 0                                         |         r5 = 0;
    0x0001c0e4 str r3, [sp, 0x14]                                |         var_14h = r3;
    0x0001c0e8 add sl, pc, sl                                    |         sl = pc + sl;
    0x0001c0ec b 0x1c0a8                                         |         goto label_1;
                                                                 | label_2:
    0x0001c0f0 mvn r0, 0x15                                      |         r0 = ~0x15;
    0x0001c0f4 b 0x1c0cc                                         |         
                                                                 |     } 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/lib/libmount.so.1.1.0 @ 0x12db8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_diff_tables ()                           | void mnt_diff_tables (uint32_t arg1, uint32_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_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00012db8 cmp r1, 0                                     |     
    0x00012dbc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012dc0 ldr sb, [pc, 0x45c]                           |     sb = "TOBER";
    0x00012dc4 mov r8, r2                                    |     r8 = r2;
    0x00012dc8 clz r2, r2                                    |     r2 &= r2;
    0x00012dcc lsr r2, r2, 5                                 |     r2 >>= 5;
                                                             |     if (r1 != 0) {
    0x00012dd0 moveq r2, 1                                   |         r2 = 1;
                                                             |     }
    0x00012dd4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012dd8 moveq r2, 1                                   |         r2 = 1;
                                                             |     }
    0x00012ddc cmp r2, 0                                     |     
    0x00012de0 add sb, pc, sb                                |     sb = pc + sb;
    0x00012de4 sub sp, sp, 0x2c                              |     
                                                             |     if (r2 == 0) {
    0x00012de8 mvnne r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x00012dec bne 0x130a0                                   |         goto label_7;
                                                             |     }
    0x00012df0 ldr r3, [pc, 0x430]                           |     
    0x00012df4 str r1, [sp, 8]                               |     var_8h = r1;
    0x00012df8 ldr r3, [sb, r3]                              |     r3 = *((sb + r3));
    0x00012dfc mov r4, r0                                    |     r4 = r0;
    0x00012e00 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00012e04 ldr r3, [r3]                                  |     r3 = "TOBER";
    0x00012e08 tst r3, 0x400                                 |     
                                                             |     if ((r3 & 0x400) != 0) {
    0x00012e0c beq 0x12e58                                   |         
    0x00012e10 ldr r3, [pc, 0x414]                           |         r3 = *(0x13228);
    0x00012e14 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00012e18 ldr r5, [r3]                                  |         r5 = *(0x13228);
    0x00012e1c bl 0x8204                                     |         getpid ();
    0x00012e20 ldr r3, [pc, 0x408]                           |         r3 = *(0x1322c);
    0x00012e24 ldr r1, [pc, 0x408]                           |         r1 = *(0x13230);
    0x00012e28 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012e2c str r3, [sp]                                  |         *(sp) = r3;
    0x00012e30 ldr r3, [pc, 0x400]                           |         r3 = *(0x13234);
    0x00012e34 add r1, pc, r1                                |         r1 = pc + r1;
    0x00012e38 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012e3c mov r2, r0                                    |         r2 = r0;
    0x00012e40 mov r0, r5                                    |         r0 = r5;
    0x00012e44 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00012e48 ldr r1, [pc, 0x3ec]                           |         r1 = *(0x13238);
    0x00012e4c mov r0, r4                                    |         r0 = r4;
    0x00012e50 add r1, pc, r1                                |         r1 = pc + r1;
    0x00012e54 bl 0x128d4                                    |         fcn_000128d4 (r0);
                                                             |     }
    0x00012e58 add r7, r4, 4                                 |     r7 = r4 + 4;
    0x00012e5c add sl, r4, 0xc                               |     sl = r4 + 0xc;
    0x00012e60 mov r6, 0                                     |     r6 = 0;
                                                             | label_1:
    0x00012e64 ldr r5, [r4, 4]                               |     r5 = *((r4 + 4));
    0x00012e68 cmp r5, r7                                    |     
                                                             |     if (r5 != r7) {
    0x00012e6c bne 0x12fd8                                   |         goto label_8;
                                                             |     }
    0x00012e70 mov r3, 0                                     |     r3 = 0;
    0x00012e74 str r3, [r4]                                  |     *(r4) = r3;
    0x00012e78 ldr r0, [sp, 8]                               |     r0 = var_8h;
    0x00012e7c bl 0x87f8                                     |     r0 = fcn_000087f8 ();
    0x00012e80 mov sl, r0                                    |     sl = r0;
    0x00012e84 mov r0, r8                                    |     r0 = r8;
    0x00012e88 bl 0x87f8                                     |     r0 = fcn_000087f8 ();
    0x00012e8c mov r6, r0                                    |     r6 = r0;
    0x00012e90 orrs r0, sl, r0                               |     r0 = sl | r0;
                                                             |     if (r0 == sl) {
    0x00012e94 beq 0x130a0                                   |         goto label_7;
                                                             |     }
    0x00012e98 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00012e9c ldr r3, [r3]                                  |     r3 = *(r3);
    0x00012ea0 tst r3, 0x400                                 |     
                                                             |     if ((r3 & 0x400) != 0) {
    0x00012ea4 beq 0x12ef8                                   |         
    0x00012ea8 ldr r3, [pc, 0x37c]                           |         r3 = *(0x13228);
    0x00012eac ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00012eb0 ldr r7, [r3]                                  |         r7 = *(0x13228);
    0x00012eb4 bl 0x8204                                     |         getpid ();
    0x00012eb8 ldr r3, [pc, 0x380]                           |         r3 = *(0x1323c);
    0x00012ebc ldr r1, [pc, 0x380]                           |         r1 = *(0x13240);
    0x00012ec0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012ec4 str r3, [sp]                                  |         *(sp) = r3;
    0x00012ec8 ldr r3, [pc, 0x378]                           |         r3 = *(0x13244);
    0x00012ecc add r1, pc, r1                                |         r1 = pc + r1;
    0x00012ed0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012ed4 mov r2, r0                                    |         r2 = r0;
    0x00012ed8 mov r0, r7                                    |         r0 = r7;
    0x00012edc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00012ee0 ldr r1, [pc, 0x364]                           |         r1 = *(0x13248);
    0x00012ee4 mov r3, sl                                    |         r3 = sl;
    0x00012ee8 mov r2, r6                                    |         r2 = r6;
    0x00012eec add r1, pc, r1                                |         r1 = pc + r1;
    0x00012ef0 mov r0, r4                                    |         r0 = r4;
    0x00012ef4 bl 0x128d4                                    |         fcn_000128d4 (r0);
                                                             |     }
    0x00012ef8 add r7, sp, 0x1c                              |     r7 += var_1ch;
    0x00012efc mov r1, 0                                     |     r1 = 0;
    0x00012f00 mov r0, r7                                    |     r0 = r7;
    0x00012f04 bl 0x8588                                     |     fcn_00008588 ();
    0x00012f08 adds r3, r6, 0                                |     r3 = r6 + 0;
                                                             |     if (r3 == r6) {
    0x00012f0c movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00012f10 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00012f14 movne r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00012f18 cmp r3, 0                                     |     
    0x00012f1c add fp, sp, 0x18                              |     
                                                             |     if (r3 != 0) {
    0x00012f20 bne 0x13028                                   |         goto label_9;
                                                             |     }
    0x00012f24 cmp sl, 0                                     |     
    0x00012f28 clz r6, r6                                    |     r6 &= r6;
    0x00012f2c lsr r6, r6, 5                                 |     r6 >>= 5;
                                                             |     if (sl != 0) {
    0x00012f30 moveq r6, 0                                   |         r6 = 0;
                                                             |     }
    0x00012f34 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00012f38 bne 0x130b8                                   |         goto label_10;
                                                             |     }
                                                             | label_3:
    0x00012f3c mov r2, fp                                    |     r2 = fp;
    0x00012f40 mov r1, r7                                    |     r1 = r7;
    0x00012f44 mov r0, r8                                    |     r0 = r8;
    0x00012f48 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00012f4c subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl == r0) {
    0x00012f50 beq 0x130d4                                   |         goto label_11;
                                                             |     }
    0x00012f54 mov r1, 0                                     |     r1 = 0;
    0x00012f58 mov r0, r7                                    |     r0 = r7;
    0x00012f5c bl 0x8588                                     |     fcn_00008588 ();
                                                             |     do {
                                                             | label_0:
    0x00012f60 mov r2, fp                                    |         r2 = fp;
    0x00012f64 mov r1, r7                                    |         r1 = r7;
    0x00012f68 ldr r0, [sp, 8]                               |         r0 = var_8h;
    0x00012f6c bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00012f70 subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl != r0) {
    0x00012f74 bne 0x13040                                   |             goto label_2;
                                                             |         }
    0x00012f78 ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00012f7c bl 0x8c90                                     |         r0 = fcn_00008c90 ();
    0x00012f80 mov r6, r0                                    |         r6 = r0;
    0x00012f84 ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00012f88 bl 0x81d4                                     |         fcn_000081d4 ();
    0x00012f8c mov r3, sl                                    |         r3 = sl;
    0x00012f90 mov r1, r6                                    |         r1 = r6;
    0x00012f94 mov r2, r0                                    |         r2 = r0;
    0x00012f98 mov r0, r8                                    |         r0 = r8;
    0x00012f9c bl 0x8330                                     |         r0 = fcn_00008330 ();
    0x00012fa0 cmp r0, 0                                     |         
    0x00012fa4 bne 0x12f60                                   |         
                                                             |     } while (r0 != 0);
    0x00012fa8 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00012fac bl 0x8c24                                     |     fcn_00008c24 ();
    0x00012fb0 ldr sl, [r4, 4]                               |     sl = *((r4 + 4));
    0x00012fb4 str r0, [sp, 0x10]                            |     var_10h = r0;
                                                             | label_4:
    0x00012fb8 cmp r5, sl                                    |     
                                                             |     if (r5 != sl) {
    0x00012fbc bne 0x13198                                   |         goto label_12;
                                                             |     }
                                                             | label_6:
    0x00012fc0 mov r3, 2                                     |     r3 = 2;
    0x00012fc4 mov r2, 0                                     |     r2 = 0;
    0x00012fc8 ldr r1, [sp, 0x18]                            |     r1 = var_18h;
    0x00012fcc mov r0, r4                                    |     r0 = r4;
    0x00012fd0 bl 0x12994                                    |     fcn_00012994 (r0, r1);
    0x00012fd4 b 0x12f60                                     |     goto label_0;
                                                             | label_8:
    0x00012fd8 ldm r5, {r2, r3}                              |     r2 = *(r5);
                                                             |     r3 = *((r5 + 4));
    0x00012fdc ldr r0, [r5, -4]                              |     r0 = *((r5 - 4));
    0x00012fe0 str r3, [r2, 4]                               |     *((r2 + 4)) = r3;
    0x00012fe4 str r2, [r3]                                  |     *(r3) = r2;
    0x00012fe8 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00012fec str r5, [r4, 0x10]                            |     *((r4 + 0x10)) = r5;
    0x00012ff0 str r3, [r5, 4]                               |     *((r5 + 4)) = r3;
    0x00012ff4 str sl, [r5]                                  |     *(r5) = sl;
    0x00012ff8 str r5, [r3]                                  |     *(r3) = r5;
    0x00012ffc bl 0x8960                                     |     fcn_00008960 ();
    0x00013000 ldr r0, [r5, -8]                              |     r0 = *((r5 - 8));
    0x00013004 bl 0x8960                                     |     fcn_00008960 ();
    0x00013008 str r6, [r5, -8]                              |     *((r5 - 8)) = r6;
    0x0001300c str r6, [r5, -4]                              |     *((r5 - 4)) = r6;
    0x00013010 str r6, [r5, -0xc]                            |     *((r5 - 0xc)) = r6;
    0x00013014 b 0x12e64                                     |     goto label_1;
                                                             |     do {
    0x00013018 mov r3, 1                                     |         r3 = 1;
    0x0001301c ldr r2, [sp, 0x18]                            |         r2 = var_18h;
    0x00013020 mov r0, r4                                    |         r0 = r4;
    0x00013024 bl 0x12994                                    |         fcn_00012994 (r0, r1);
                                                             | label_9:
    0x00013028 mov r1, r7                                    |         r1 = r7;
    0x0001302c mov r2, fp                                    |         r2 = fp;
    0x00013030 mov r0, r8                                    |         r0 = r8;
    0x00013034 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00013038 subs r1, r0, 0                                |         r1 = r0 - 0;
    0x0001303c beq 0x13018                                   |         
                                                             |     } while (r1 == r0);
                                                             | label_2:
    0x00013040 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00013044 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00013048 tst r3, 0x400                                 |     
                                                             |     if ((r3 & 0x400) != 0) {
    0x0001304c beq 0x1309c                                   |         
    0x00013050 ldr r3, [pc, 0x1d4]                           |         r3 = *(0x13228);
    0x00013054 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00013058 ldr r5, [r3]                                  |         r5 = *(0x13228);
    0x0001305c bl 0x8204                                     |         getpid ();
    0x00013060 ldr r3, [pc, 0x1e8]                           |         r3 = *(0x1324c);
    0x00013064 ldr r1, [pc, 0x1e8]                           |         r1 = *(0x13250);
    0x00013068 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001306c str r3, [sp]                                  |         *(sp) = r3;
    0x00013070 ldr r3, [pc, 0x1e0]                           |         r3 = *(0x13254);
    0x00013074 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013078 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001307c mov r2, r0                                    |         r2 = r0;
    0x00013080 mov r0, r5                                    |         r0 = r5;
    0x00013084 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00013088 ldr r1, [pc, 0x1cc]                           |         r1 = *(0x13258);
    0x0001308c ldr r2, [r4]                                  |         r2 = *(r4);
    0x00013090 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013094 mov r0, r4                                    |         r0 = r4;
    0x00013098 bl 0x128d4                                    |         fcn_000128d4 (r0);
                                                             |     }
    0x0001309c ldr r0, [r4]                                  |     r0 = *(r4);
                                                             | label_7:
    0x000130a0 add sp, sp, 0x2c                              |     
    0x000130a4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             |     do {
    0x000130a8 mov r3, 2                                     |         r3 = 2;
    0x000130ac ldr r1, [sp, 0x18]                            |         r1 = var_18h;
    0x000130b0 mov r0, r4                                    |         r0 = r4;
    0x000130b4 bl 0x12994                                    |         fcn_00012994 (r0, r1);
                                                             | label_10:
    0x000130b8 mov r2, fp                                    |         r2 = fp;
    0x000130bc mov r1, r7                                    |         r1 = r7;
    0x000130c0 ldr r0, [sp, 8]                               |         r0 = var_8h;
    0x000130c4 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x000130c8 subs r2, r0, 0                                |         r2 = r0 - 0;
    0x000130cc beq 0x130a8                                   |         
                                                             |     } while (r2 == r0);
    0x000130d0 b 0x13040                                     |     goto label_2;
                                                             | label_11:
    0x000130d4 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000130d8 bl 0x8c90                                     |     r0 = fcn_00008c90 ();
    0x000130dc mov r6, r0                                    |     r6 = r0;
    0x000130e0 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000130e4 bl 0x81d4                                     |     fcn_000081d4 ();
    0x000130e8 mov r3, sl                                    |     r3 = sl;
    0x000130ec mov r1, r6                                    |     r1 = r6;
    0x000130f0 mov r2, r0                                    |     r2 = r0;
    0x000130f4 ldr r0, [sp, 8]                               |     r0 = var_8h;
    0x000130f8 bl 0x8330                                     |     r0 = fcn_00008330 ();
    0x000130fc subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00013100 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x00013104 beq 0x13184                                   |         goto label_13;
                                                             |     }
    0x00013108 bl 0x8bdc                                     |     fcn_00008bdc ();
    0x0001310c str r0, [sp, 0x14]                            |     var_14h = r0;
    0x00013110 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00013114 bl 0x8bdc                                     |     fcn_00008bdc ();
    0x00013118 str r0, [sp, 0x10]                            |     var_10h = r0;
    0x0001311c mov r0, r6                                    |     r0 = r6;
    0x00013120 bl 0x7fe8                                     |     r0 = fcn_00007fe8 ();
    0x00013124 mov sl, r0                                    |     sl = r0;
    0x00013128 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x0001312c bl 0x7fe8                                     |     fcn_00007fe8 ();
    0x00013130 ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x00013134 ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x00013138 cmp r2, 0                                     |     
    0x0001313c cmpne r1, 0                                   |     __asm ("cmpne r1, 0");
    0x00013140 mov r3, r0                                    |     r3 = r0;
                                                             |     if (r2 != 0) {
    0x00013144 beq 0x13160                                   |         
    0x00013148 str r0, [sp, 0x10]                            |         var_10h = r0;
    0x0001314c mov r0, r2                                    |         r0 = r2;
    0x00013150 bl 0x8cb4                                     |         strcmp (r0, r1);
    0x00013154 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00013158 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001315c bne 0x13180                                   |             goto label_14;
                                                             |         }
                                                             |     }
    0x00013160 cmp sl, 0                                     |     
    0x00013164 cmpne r3, 0                                   |     __asm ("cmpne r3, 0");
                                                             |     if (sl == 0) {
    0x00013168 beq 0x12f3c                                   |         goto label_3;
                                                             |     }
    0x0001316c mov r1, r3                                    |     r1 = r3;
    0x00013170 mov r0, sl                                    |     r0 = sl;
    0x00013174 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00013178 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001317c beq 0x12f3c                                   |         goto label_3;
                                                             |     }
                                                             | label_14:
    0x00013180 mov r3, 4                                     |     r3 = 4;
                                                             | label_13:
    0x00013184 ldr r2, [sp, 0x18]                            |     r2 = var_18h;
    0x00013188 mov r1, r6                                    |     r1 = r6;
    0x0001318c mov r0, r4                                    |     r0 = r4;
    0x00013190 bl 0x12994                                    |     fcn_00012994 (r0, r1);
    0x00013194 b 0x12f3c                                     |     goto label_3;
                                                             | label_12:
    0x00013198 ldr r2, [sl, -0xc]                            |     r2 = *((sl - 0xc));
    0x0001319c cmp r2, 1                                     |     
    0x000131a0 beq 0x131ac                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_5:
    0x000131a4 ldr sl, [sl]                                  |         sl = *(sl);
    0x000131a8 b 0x12fb8                                     |         goto label_4;
    0x000131ac ldr r0, [sl, -4]                              |         r0 = *((sl - 4));
    0x000131b0 cmp r0, 0                                     |         
    0x000131b4 beq 0x131a4                                   |         
                                                             |     }
    0x000131b8 bl 0x8c24                                     |     fcn_00008c24 ();
    0x000131bc ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x000131c0 cmp r3, r0                                    |     
                                                             |     if (r3 != r0) {
    0x000131c4 bne 0x131a4                                   |         goto label_5;
                                                             |     }
    0x000131c8 ldr r0, [sl, -4]                              |     r0 = *((sl - 4));
    0x000131cc bl 0x8c90                                     |     r0 = fcn_00008c90 ();
    0x000131d0 cmp r0, 0                                     |     
    0x000131d4 cmpeq r6, 0                                   |     __asm ("cmpeq r6, 0");
                                                             |     if (r0 == 0) {
    0x000131d8 beq 0x131f8                                   |         goto label_15;
                                                             |     }
    0x000131dc cmp r0, 0                                     |     
    0x000131e0 cmpne r6, 0                                   |     __asm ("cmpne r6, 0");
                                                             |     if (r0 == 0) {
    0x000131e4 beq 0x131a4                                   |         goto label_5;
                                                             |     }
    0x000131e8 mov r1, r6                                    |     r1 = r6;
    0x000131ec bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000131f0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000131f4 bne 0x131a4                                   |         goto label_5;
                                                             |     }
                                                             | label_15:
    0x000131f8 cmp sl, 0xc                                   |     
    0x000131fc ldr r0, [sp, 0x18]                            |     r0 = var_18h;
                                                             |     if (sl == 0xc) {
    0x00013200 beq 0x12fc0                                   |         goto label_6;
                                                             |     }
    0x00013204 bl 0x827c                                     |     fcn_0000827c ();
    0x00013208 ldr r0, [sl, -8]                              |     r0 = *((sl - 8));
    0x0001320c bl 0x8960                                     |     fcn_00008960 ();
    0x00013210 ldr r2, [sp, 0x18]                            |     r2 = var_18h;
    0x00013214 mov r3, 3                                     |     r3 = 3;
    0x00013218 str r3, [sl, -0xc]                            |     *((sl - 0xc)) = r3;
    0x0001321c str r2, [sl, -8]                              |     *((sl - 8)) = r2;
    0x00013220 b 0x12f60                                     |     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/lib/libmount.so.1.1.0 @ 0x9cd4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_free_cache ()                            | void mnt_free_cache (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
    0x00009cd4 ldr r3, [pc, 0xe0]                            |     r3 = *(0x9db8);
    0x00009cd8 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x00009cdc subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00009ce0 add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     if (r4 == r0) {
    0x00009ce4 beq 0x9db4                                    |         goto label_0;
                                                             |     }
    0x00009ce8 ldr r2, [pc, 0xd0]                            |     
    0x00009cec ldr r2, [r3, r2]                              |     r2 = *((r3 + r2));
    0x00009cf0 ldr r2, [r2]                                  |     r2 = *(0x9dbc);
    0x00009cf4 tst r2, 4                                     |     
                                                             |     if ((r2 & 4) != 0) {
    0x00009cf8 beq 0x9d48                                    |         
    0x00009cfc ldr r2, [pc, 0xc0]                            |         r2 = *(0x9dc0);
    0x00009d00 ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x00009d04 ldr r5, [r3]                                  |         r5 = *(r3);
    0x00009d08 bl 0x8204                                     |         getpid ();
    0x00009d0c ldr r3, [pc, 0xb4]                            |         r3 = *(0x9dc4);
    0x00009d10 ldr r1, [pc, 0xb4]                            |         r1 = *(0x9dc8);
    0x00009d14 add r3, pc, r3                                |         r3 = pc + r3;
    0x00009d18 str r3, [sp]                                  |         *(sp) = r3;
    0x00009d1c ldr r3, [pc, 0xac]                            |         r3 = *(0x9dcc);
    0x00009d20 add r1, pc, r1                                |         r1 = pc + r1;
    0x00009d24 add r3, pc, r3                                |         r3 = pc + r3;
    0x00009d28 mov r2, r0                                    |         r2 = r0;
    0x00009d2c mov r0, r5                                    |         r0 = r5;
    0x00009d30 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00009d34 ldr r1, [pc, 0x98]                            |         r1 = *(0x9dd0);
    0x00009d38 ldr r2, [r4, 0xc]                             |         r2 = *((r4 + 0xc));
    0x00009d3c add r1, pc, r1                                |         r1 = pc + r1;
    0x00009d40 mov r0, r4                                    |         r0 = r4;
    0x00009d44 bl 0x94bc                                     |         fcn_000094bc (r0);
                                                             |     }
    0x00009d48 mov r6, 0                                     |     r6 = 0;
    0x00009d4c mov r8, 0xc                                   |     r8 = 0xc;
                                                             |     do {
    0x00009d50 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00009d54 ldr r5, [r4]                                  |         r5 = *(r4);
    0x00009d58 cmp r3, r6                                    |         
                                                             |         if (r3 <= r6) {
    0x00009d5c bhi 0x9d88                                    |             
    0x00009d60 mov r0, r5                                    |             r0 = r5;
    0x00009d64 bl 0x91c4                                     |             free (r0);
    0x00009d68 ldr r0, [r4, 0x10]                            |             r0 = *((r4 + 0x10));
    0x00009d6c cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00009d70 beq 0x9d78                                    |                 
    0x00009d74 bl 0x85a0                                     |                 blkid_put_cache ();
                                                             |             }
    0x00009d78 mov r0, r4                                    |             r0 = r4;
    0x00009d7c add sp, sp, 8                                 |             
    0x00009d80 pop {r4, r5, r6, r7, r8, lr}                  |             
    0x00009d84 b 0x91c4                                      |             void (*0x91c4)() ();
                                                             |         }
    0x00009d88 mul r7, r8, r6                                |         r7 = r8 * r6;
    0x00009d8c add r3, r5, r7                                |         r3 = r5 + r7;
    0x00009d90 ldr r0, [r3, 4]                               |         r0 = *((r3 + 4));
    0x00009d94 ldr r3, [r5, r7]                              |         r3 = *((r5 + r7));
    0x00009d98 cmp r0, r3                                    |         
                                                             |         if (r0 != r3) {
    0x00009d9c beq 0x9da4                                    |             
    0x00009da0 bl 0x91c4                                     |             free (r0);
                                                             |         }
    0x00009da4 ldr r0, [r5, r7]                              |         r0 = *((r5 + r7));
    0x00009da8 bl 0x91c4                                     |         free (r0);
    0x00009dac add r6, r6, 1                                 |         r6++;
    0x00009db0 b 0x9d50                                      |         
                                                             |     } while (1);
                                                             | label_0:
    0x00009db4 add sp, sp, 8                                 |     
    0x00009db8 pop {r4, r5, r6, r7, r8, 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/lib/libmount.so.1.1.0 @ 0x1c360 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_free_context ()                  | void mnt_free_context (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0001c360 push {r0, r1, r2, r4, r5, lr}         |     
    0x0001c364 ldr r5, [pc, 0xcc]                    |     r5 = *(0x1c434);
    0x0001c368 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0001c36c add r5, pc, r5                        |     r5 = pc + r5;
                                                     |     if (r4 != r0) {
    0x0001c370 beq 0x1c430                           |         
    0x0001c374 bl 0x85d0                             |         fcn_000085d0 ();
    0x0001c378 ldr r0, [r4, 8]                       |         r0 = *((r4 + 8));
    0x0001c37c bl 0x91c4                             |         free (r0);
    0x0001c380 ldr r0, [r4, 0xc]                     |         r0 = *((r4 + 0xc));
    0x0001c384 bl 0x91c4                             |         free (r0);
    0x0001c388 ldr r0, [r4, 0x14]                    |         r0 = *((r4 + 0x14));
    0x0001c38c bl 0x8bb8                             |         fcn_00008bb8 ();
    0x0001c390 ldr r0, [r4, 0x50]                    |         r0 = *((r4 + 0x50));
    0x0001c394 bl 0x8d8c                             |         fcn_00008d8c ();
    0x0001c398 mov r0, r4                            |         r0 = r4;
    0x0001c39c bl 0x20480                            |         fcn_00020480 (r0);
    0x0001c3a0 ldr r0, [r4, 0x54]                    |         r0 = *((r4 + 0x54));
    0x0001c3a4 bl 0x8fb4                             |         fcn_00008fb4 ();
    0x0001c3a8 ldr r0, [r4, 0x58]                    |         r0 = *((r4 + 0x58));
    0x0001c3ac bl 0x8ad4                             |         fcn_00008ad4 ();
    0x0001c3b0 mov r1, 0                             |         r1 = 0;
    0x0001c3b4 mov r0, r4                            |         r0 = r4;
    0x0001c3b8 bl 0x8930                             |         fcn_00008930 ();
    0x0001c3bc ldr r0, [r4, 0x80]                    |         r0 = *((r4 + 0x80));
    0x0001c3c0 bl 0x91c4                             |         free (r0);
    0x0001c3c4 ldr r3, [pc, 0x70]                    |         
    0x0001c3c8 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0001c3cc ldr r3, [r3]                          |         r3 = *(0x1c438);
    0x0001c3d0 tst r3, 0x200                         |         
                                                     |         if ((r3 & 0x200) != 0) {
    0x0001c3d4 beq 0x1c420                           |             
    0x0001c3d8 ldr r3, [pc, 0x60]                    |             r3 = *(0x1c43c);
    0x0001c3dc ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0001c3e0 ldr r5, [r3]                          |             r5 = *(0x1c43c);
    0x0001c3e4 bl 0x8204                             |             getpid ();
    0x0001c3e8 ldr r3, [pc, 0x54]                    |             r3 = *(0x1c440);
    0x0001c3ec ldr r1, [pc, 0x54]                    |             r1 = *(0x1c444);
    0x0001c3f0 add r3, pc, r3                        |             r3 = pc + r3;
    0x0001c3f4 str r3, [sp]                          |             *(sp) = r3;
    0x0001c3f8 ldr r3, [pc, 0x4c]                    |             r3 = *(0x1c448);
    0x0001c3fc add r1, pc, r1                        |             r1 = pc + r1;
    0x0001c400 add r3, pc, r3                        |             r3 = pc + r3;
    0x0001c404 mov r2, r0                            |             r2 = r0;
    0x0001c408 mov r0, r5                            |             r0 = r5;
    0x0001c40c bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x0001c410 ldr r1, [pc, 0x38]                    |             r1 = *(0x1c44c);
    0x0001c414 mov r0, r4                            |             r0 = r4;
    0x0001c418 add r1, pc, r1                        |             r1 = pc + r1;
    0x0001c41c bl 0x1a538                            |             fcn_0001a538 (r0);
                                                     |         }
    0x0001c420 mov r0, r4                            |         r0 = r4;
    0x0001c424 add sp, sp, 0xc                       |         
    0x0001c428 pop {r4, r5, lr}                      |         
    0x0001c42c b 0x91c4                              |         void (*0x91c4)() ();
                                                     |     }
    0x0001c430 add sp, sp, 0xc                       |     
    0x0001c434 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0xaa8c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_free_fs ()                       | void mnt_free_fs (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000aa8c ldr r3, [pc, 0x8c]                    |     r3 = *(0xab1c);
    0x0000aa90 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000aa94 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0000aa98 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r4 != r0) {
    0x0000aa9c beq 0xab18                            |         
    0x0000aaa0 ldr r2, [pc, 0x7c]                    |         
    0x0000aaa4 ldr r2, [r3, r2]                      |         r2 = *((r3 + r2));
    0x0000aaa8 ldr r2, [r2]                          |         r2 = *(0xab20);
    0x0000aaac tst r2, 0x40                          |         
                                                     |         if ((r2 & 0x40) != 0) {
    0x0000aab0 beq 0xab00                            |             
    0x0000aab4 ldr r2, [pc, 0x6c]                    |             r2 = *(0xab24);
    0x0000aab8 ldr r3, [r3, r2]                      |             r3 = *((r3 + r2));
    0x0000aabc ldr r5, [r3]                          |             r5 = *(r3);
    0x0000aac0 bl 0x8204                             |             getpid ();
    0x0000aac4 ldr r3, [pc, 0x60]                    |             r3 = *(0xab28);
    0x0000aac8 ldr r1, [pc, 0x60]                    |             r1 = *(0xab2c);
    0x0000aacc add r3, pc, r3                        |             r3 = pc + r3;
    0x0000aad0 str r3, [sp]                          |             *(sp) = r3;
    0x0000aad4 ldr r3, [pc, 0x58]                    |             r3 = *(0xab30);
    0x0000aad8 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000aadc add r3, pc, r3                        |             r3 = pc + r3;
    0x0000aae0 mov r2, r0                            |             r2 = r0;
    0x0000aae4 mov r0, r5                            |             r0 = r5;
    0x0000aae8 bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x0000aaec ldr r1, [pc, 0x44]                    |             r1 = *(0xab34);
    0x0000aaf0 ldr r2, [r4, 8]                       |             r2 = *((r4 + 8));
    0x0000aaf4 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000aaf8 mov r0, r4                            |             r0 = r4;
    0x0000aafc bl 0xa8f0                             |             fcn_0000a8f0 (r0);
                                                     |         }
    0x0000ab00 mov r0, r4                            |         r0 = r4;
    0x0000ab04 bl 0x80e4                             |         fcn_000080e4 ();
    0x0000ab08 mov r0, r4                            |         r0 = r4;
    0x0000ab0c add sp, sp, 0xc                       |         
    0x0000ab10 pop {r4, r5, lr}                      |         
    0x0000ab14 b 0x91c4                              |         void (*0x91c4)() ();
                                                     |     }
    0x0000ab18 add sp, sp, 0xc                       |     
    0x0000ab1c pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0xc984 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_free_lock ()                     | void mnt_free_lock (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000c984 ldr r3, [pc, 0xb0]                    |     r3 = *(0xca38);
    0x0000c988 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000c98c subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0000c990 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r4 == r0) {
    0x0000c994 beq 0xca34                            |         goto label_0;
                                                     |     }
    0x0000c998 ldr r2, [pc, 0xa0]                    |     
    0x0000c99c ldr r2, [r3, r2]                      |     r2 = *((r3 + r2));
    0x0000c9a0 ldr r2, [r2]                          |     r2 = *(0xca3c);
    0x0000c9a4 tst r2, 0x10                          |     
                                                     |     if ((r2 & 0x10) == 0) {
    0x0000c9a8 beq 0xca08                            |         goto label_1;
                                                     |     }
    0x0000c9ac ldr r2, [pc, 0x90]                    |     r2 = *(0xca40);
    0x0000c9b0 ldr r3, [r3, r2]                      |     r3 = *((r3 + r2));
    0x0000c9b4 ldr r5, [r3]                          |     r5 = *(r3);
    0x0000c9b8 bl 0x8204                             |     getpid ();
    0x0000c9bc ldr r3, [pc, 0x84]                    |     r3 = *(0xca44);
    0x0000c9c0 ldr r1, [pc, 0x84]                    |     r1 = *(0xca48);
    0x0000c9c4 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000c9c8 str r3, [sp]                          |     *(sp) = r3;
    0x0000c9cc ldr r3, [pc, 0x7c]                    |     r3 = *(0xca4c);
    0x0000c9d0 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000c9d4 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000c9d8 mov r2, r0                            |     r2 = r0;
    0x0000c9dc mov r0, r5                            |     r0 = r5;
    0x0000c9e0 bl 0x8798                             |     fprintf (r0, r1, r2, r3)
    0x0000c9e4 ldrb r3, [r4, 0xc]                    |     r3 = *((r4 + 0xc));
    0x0000c9e8 tst r3, 1                             |     
                                                     |     if ((r3 & 1) != 0) {
    0x0000c9ec bne 0xca28                            |         goto label_2;
                                                     |     }
    0x0000c9f0 ldr r2, [pc, 0x5c]                    |     r2 = *(0xca50);
    0x0000c9f4 add r2, pc, r2                        |     r2 = pc + r2;
                                                     |     do {
    0x0000c9f8 ldr r1, [pc, 0x58]                    |         r1 = *(0xca54);
    0x0000c9fc mov r0, r4                            |         r0 = r4;
    0x0000ca00 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000ca04 bl 0xc708                             |         fcn_0000c708 (r0);
                                                     | label_1:
    0x0000ca08 ldr r0, [r4]                          |         r0 = *(r4);
    0x0000ca0c bl 0x91c4                             |         free (r0);
    0x0000ca10 ldr r0, [r4, 4]                       |         r0 = *((r4 + 4));
    0x0000ca14 bl 0x91c4                             |         free (r0);
    0x0000ca18 mov r0, r4                            |         r0 = r4;
    0x0000ca1c add sp, sp, 0xc                       |         
    0x0000ca20 pop {r4, r5, lr}                      |         
    0x0000ca24 b 0x91c4                              |         void (*0x91c4)() ();
                                                     | label_2:
    0x0000ca28 ldr r2, [pc, 0x2c]                    |         r2 = *(0xca58);
    0x0000ca2c add r2, pc, r2                        |         r2 = pc + r2;
    0x0000ca30 b 0xc9f8                              |         
                                                     |     } while (1);
                                                     | label_0:
    0x0000ca34 add sp, sp, 0xc                       |     
    0x0000ca38 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x12bd0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_free_tabdiff ()                          | void mnt_free_tabdiff (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
    0x00012bd0 ldr r3, [pc, 0xc4]                            |     r3 = *(0x12c98);
    0x00012bd4 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x00012bd8 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00012bdc add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     if (r4 == r0) {
    0x00012be0 beq 0x12c94                                   |         goto label_1;
                                                             |     }
    0x00012be4 ldr r2, [pc, 0xb4]                            |     
    0x00012be8 ldr r2, [r3, r2]                              |     r2 = *((r3 + r2));
    0x00012bec ldr r2, [r2]                                  |     r2 = "_03d:_02d";
    0x00012bf0 tst r2, 0x400                                 |     
                                                             |     if ((r2 & 0x400) != 0) {
    0x00012bf4 beq 0x12c40                                   |         
    0x00012bf8 ldr r2, [pc, 0xa4]                            |         r2 = *(0x12ca0);
    0x00012bfc ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x00012c00 ldr r5, [r3]                                  |         r5 = *(r3);
    0x00012c04 bl 0x8204                                     |         getpid ();
    0x00012c08 ldr r3, [pc, 0x98]                            |         r3 = *(0x12ca4);
    0x00012c0c ldr r1, [pc, 0x98]                            |         r1 = *(0x12ca8);
    0x00012c10 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012c14 str r3, [sp]                                  |         *(sp) = r3;
    0x00012c18 ldr r3, [pc, 0x90]                            |         r3 = *(0x12cac);
    0x00012c1c add r1, pc, r1                                |         r1 = pc + r1;
    0x00012c20 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012c24 mov r2, r0                                    |         r2 = r0;
    0x00012c28 mov r0, r5                                    |         r0 = r5;
    0x00012c2c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00012c30 ldr r1, [pc, 0x7c]                            |         r1 = *(0x12cb0);
    0x00012c34 mov r0, r4                                    |         r0 = r4;
    0x00012c38 add r1, pc, r1                                |         r1 = pc + r1;
    0x00012c3c bl 0x128d4                                    |         fcn_000128d4 (r0);
                                                             |     }
    0x00012c40 add r7, r4, 4                                 |     r7 = r4 + 4;
                                                             | label_0:
    0x00012c44 ldr r5, [r4, 4]                               |     r5 = *((r4 + 4));
    0x00012c48 sub r6, r5, 0xc                               |     r6 = r5 - 0xc;
                                                             |     do {
    0x00012c4c cmp r5, r7                                    |         
                                                             |         if (r5 == r7) {
    0x00012c50 bne 0x12c64                                   |             
    0x00012c54 mov r0, r4                                    |             r0 = r4;
    0x00012c58 add sp, sp, 0xc                               |             
    0x00012c5c pop {r4, r5, r6, r7, lr}                      |             
    0x00012c60 b 0x91c4                                      |             void (*0x91c4)() ();
                                                             |         }
    0x00012c64 cmp r6, 0                                     |         
    0x00012c68 beq 0x12c4c                                   |         
                                                             |     } while (r6 == 0);
    0x00012c6c ldm r5, {r2, r3}                              |     r2 = *(r5);
                                                             |     r3 = *((r5 + 4));
    0x00012c70 ldr r0, [r5, -4]                              |     r0 = *((r5 - 4));
    0x00012c74 str r3, [r2, 4]                               |     *((r2 + 4)) = r3;
    0x00012c78 str r2, [r3]                                  |     *(r3) = r2;
    0x00012c7c bl 0x8960                                     |     fcn_00008960 ();
    0x00012c80 ldr r0, [r5, -8]                              |     r0 = *((r5 - 8));
    0x00012c84 bl 0x8960                                     |     fcn_00008960 ();
    0x00012c88 mov r0, r6                                    |     r0 = r6;
    0x00012c8c bl 0x91c4                                     |     free (r0);
    0x00012c90 b 0x12c44                                     |     goto label_0;
                                                             | label_1:
    0x00012c94 add sp, sp, 0xc                               |     
    0x00012c98 pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0xfb88 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_free_table ()                    | void mnt_free_table (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000fb88 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000fb8c ldr r5, [pc, 0x9c]                    |     r5 = *(0xfc2c);
    0x0000fb90 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0000fb94 add r5, pc, r5                        |     r5 = pc + r5;
                                                     |     if (r4 != r0) {
    0x0000fb98 beq 0xfc28                            |         
    0x0000fb9c bl 0x812c                             |         fcn_0000812c ();
    0x0000fba0 ldr r3, [pc, 0x8c]                    |         
    0x0000fba4 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000fba8 ldr r3, [r3]                          |         r3 = *(0xfc30);
    0x0000fbac tst r3, 0x20                          |         
                                                     |         if ((r3 & 0x20) != 0) {
    0x0000fbb0 beq 0xfc00                            |             
    0x0000fbb4 ldr r3, [pc, 0x7c]                    |             r3 = *(0xfc34);
    0x0000fbb8 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0000fbbc ldr r5, [r3]                          |             r5 = *(0xfc34);
    0x0000fbc0 bl 0x8204                             |             getpid ();
    0x0000fbc4 ldr r3, [pc, 0x70]                    |             r3 = *(0xfc38);
    0x0000fbc8 ldr r1, [pc, 0x70]                    |             r1 = *(0xfc3c);
    0x0000fbcc add r3, pc, r3                        |             r3 = pc + r3;
    0x0000fbd0 str r3, [sp]                          |             *(sp) = r3;
    0x0000fbd4 ldr r3, [pc, 0x68]                    |             r3 = *(0xfc40);
    0x0000fbd8 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000fbdc add r3, pc, r3                        |             r3 = pc + r3;
    0x0000fbe0 mov r2, r0                            |             r2 = r0;
    0x0000fbe4 mov r0, r5                            |             r0 = r5;
    0x0000fbe8 bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x0000fbec ldr r1, [pc, 0x54]                    |             r1 = *(0xfc44);
    0x0000fbf0 ldr r2, [r4, 8]                       |             r2 = *((r4 + 8));
    0x0000fbf4 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000fbf8 mov r0, r4                            |             r0 = r4;
    0x0000fbfc bl 0xf520                             |             fcn_0000f520 (r0);
                                                     |         }
    0x0000fc00 ldr r0, [r4, 0x18]                    |         r0 = *((r4 + 0x18));
    0x0000fc04 bl 0x8d8c                             |         fcn_00008d8c ();
    0x0000fc08 ldr r0, [r4, 0x10]                    |         r0 = *((r4 + 0x10));
    0x0000fc0c bl 0x91c4                             |         free (r0);
    0x0000fc10 ldr r0, [r4, 0x14]                    |         r0 = *((r4 + 0x14));
    0x0000fc14 bl 0x91c4                             |         free (r0);
    0x0000fc18 mov r0, r4                            |         r0 = r4;
    0x0000fc1c add sp, sp, 0xc                       |         
    0x0000fc20 pop {r4, r5, lr}                      |         
    0x0000fc24 b 0x91c4                              |         void (*0x91c4)() ();
                                                     |     }
    0x0000fc28 add sp, sp, 0xc                       |     
    0x0000fc2c pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x161b4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_free_update ()               | void mnt_free_update (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x000161b4 ldr r3, [pc, 0xa0]                |     r3 = *(0x16258);
    0x000161b8 push {r0, r1, r2, r4, r5, lr}     |     
    0x000161bc subs r4, r0, 0                    |     r4 = r0 - 0;
    0x000161c0 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r4 != r0) {
    0x000161c4 beq 0x16254                       |         
    0x000161c8 ldr r2, [pc, 0x90]                |         
    0x000161cc ldr r2, [r3, r2]                  |         r2 = *((r3 + r2));
    0x000161d0 ldr r2, [r2]                      |         r2 = "sbin:_sbin_fs.d:_sbin_fs";
    0x000161d4 tst r2, 0x80                      |         
                                                 |         if ((r2 & 0x80) != 0) {
    0x000161d8 beq 0x16224                       |             
    0x000161dc ldr r2, [pc, 0x80]                |             r2 = *(0x16260);
    0x000161e0 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x000161e4 ldr r5, [r3]                      |             r5 = *(r3);
    0x000161e8 bl 0x8204                         |             getpid ();
    0x000161ec ldr r3, [pc, 0x74]                |             r3 = *(0x16264);
    0x000161f0 ldr r1, [pc, 0x74]                |             r1 = *(0x16268);
    0x000161f4 add r3, pc, r3                    |             r3 = pc + r3;
    0x000161f8 str r3, [sp]                      |             *(sp) = r3;
    0x000161fc ldr r3, [pc, 0x6c]                |             r3 = *(0x1626c);
    0x00016200 add r1, pc, r1                    |             r1 = pc + r1;
    0x00016204 add r3, pc, r3                    |             r3 = pc + r3;
    0x00016208 mov r2, r0                        |             r2 = r0;
    0x0001620c mov r0, r5                        |             r0 = r5;
    0x00016210 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00016214 ldr r1, [pc, 0x58]                |             r1 = *(0x16270);
    0x00016218 mov r0, r4                        |             r0 = r4;
    0x0001621c add r1, pc, r1                    |             r1 = pc + r1;
    0x00016220 bl 0x15798                        |             fcn_00015798 (r0);
                                                 |         }
    0x00016224 ldr r0, [r4, 4]                   |         r0 = *((r4 + 4));
    0x00016228 bl 0x8960                         |         fcn_00008960 ();
    0x0001622c ldr r0, [r4, 0x18]                |         r0 = *((r4 + 0x18));
    0x00016230 bl 0x8bb8                         |         fcn_00008bb8 ();
    0x00016234 ldr r0, [r4]                      |         r0 = *(r4);
    0x00016238 bl 0x91c4                         |         free (r0);
    0x0001623c ldr r0, [r4, 8]                   |         r0 = *((r4 + 8));
    0x00016240 bl 0x91c4                         |         free (r0);
    0x00016244 mov r0, r4                        |         r0 = r4;
    0x00016248 add sp, sp, 0xc                   |         
    0x0001624c pop {r4, r5, lr}                  |         
    0x00016250 b 0x91c4                          |         void (*0x91c4)() ();
                                                 |     }
    0x00016254 add sp, sp, 0xc                   |     
    0x00016258 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0xbc7c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.mnt_fs_print_debug ()        | uint32_t mnt_fs_print_debug (uint32_t arg1, uint32_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0000bc7c cmp r1, 0                     |     
    0x0000bc80 cmpne r0, 0                   |     __asm ("cmpne r0, 0");
                                             |     if (r1 != 0) {
    0x0000bc84 beq 0xc060                    |         
    0x0000bc88 push {r4, r5, r6, lr}         |         
    0x0000bc8c mov r4, r0                    |         r4 = r0;
    0x0000bc90 ldr r0, [pc, 0x3d0]           |         r0 = *(0xc064);
    0x0000bc94 mov r5, r1                    |         r5 = r1;
    0x0000bc98 add r0, pc, r0                |         r0 = pc + r0;
    0x0000bc9c bl 0x90c8                     |         fputs (r0, r1);
    0x0000bca0 mov r0, r4                    |         r0 = r4;
    0x0000bca4 bl 0x8c90                     |         fcn_00008c90 ();
    0x0000bca8 ldr r1, [pc, 0x3bc]           |         r1 = *(0xc068);
    0x0000bcac add r1, pc, r1                |         r1 = pc + r1;
    0x0000bcb0 mov r2, r0                    |         r2 = r0;
    0x0000bcb4 mov r0, r5                    |         r0 = r5;
    0x0000bcb8 bl 0x8798                     |         fprintf (r0, r1, r2)
    0x0000bcbc mov r0, r4                    |         r0 = r4;
    0x0000bcc0 bl 0x81d4                     |         fcn_000081d4 ();
    0x0000bcc4 ldr r1, [pc, 0x3a4]           |         r1 = *(0xc06c);
    0x0000bcc8 add r1, pc, r1                |         r1 = pc + r1;
    0x0000bccc mov r2, r0                    |         r2 = r0;
    0x0000bcd0 mov r0, r5                    |         r0 = r5;
    0x0000bcd4 bl 0x8798                     |         fprintf (r0, r1, r2)
    0x0000bcd8 mov r0, r4                    |         r0 = r4;
    0x0000bcdc bl 0x8de0                     |         fcn_00008de0 ();
    0x0000bce0 ldr r1, [pc, 0x38c]           |         r1 = *(0xc070);
    0x0000bce4 add r1, pc, r1                |         r1 = pc + r1;
    0x0000bce8 mov r2, r0                    |         r2 = r0;
    0x0000bcec mov r0, r5                    |         r0 = r5;
    0x0000bcf0 bl 0x8798                     |         fprintf (r0, r1, r2)
    0x0000bcf4 mov r0, r4                    |         r0 = r4;
    0x0000bcf8 bl 0x86fc                     |         r0 = fcn_000086fc ();
    0x0000bcfc cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bd00 beq 0xbd20                    |             
    0x0000bd04 mov r0, r4                    |             r0 = r4;
    0x0000bd08 bl 0x86fc                     |             fcn_000086fc ();
    0x0000bd0c ldr r1, [pc, 0x364]           |             r1 = *(0xc074);
    0x0000bd10 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bd14 mov r2, r0                    |             r2 = r0;
    0x0000bd18 mov r0, r5                    |             r0 = r5;
    0x0000bd1c bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bd20 mov r0, r4                    |         r0 = r4;
    0x0000bd24 bl 0x8bdc                     |         r0 = fcn_00008bdc ();
    0x0000bd28 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bd2c beq 0xbd4c                    |             
    0x0000bd30 mov r0, r4                    |             r0 = r4;
    0x0000bd34 bl 0x8bdc                     |             fcn_00008bdc ();
    0x0000bd38 ldr r1, [pc, 0x33c]           |             r1 = *(0xc078);
    0x0000bd3c add r1, pc, r1                |             r1 = pc + r1;
    0x0000bd40 mov r2, r0                    |             r2 = r0;
    0x0000bd44 mov r0, r5                    |             r0 = r5;
    0x0000bd48 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bd4c mov r0, r4                    |         r0 = r4;
    0x0000bd50 bl 0x7fe8                     |         r0 = fcn_00007fe8 ();
    0x0000bd54 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bd58 beq 0xbd78                    |             
    0x0000bd5c mov r0, r4                    |             r0 = r4;
    0x0000bd60 bl 0x7fe8                     |             fcn_00007fe8 ();
    0x0000bd64 ldr r1, [pc, 0x314]           |             r1 = *(0xc07c);
    0x0000bd68 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bd6c mov r2, r0                    |             r2 = r0;
    0x0000bd70 mov r0, r5                    |             r0 = r5;
    0x0000bd74 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bd78 mov r0, r4                    |         r0 = r4;
    0x0000bd7c bl 0x87bc                     |         r0 = fcn_000087bc ();
    0x0000bd80 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bd84 beq 0xbda4                    |             
    0x0000bd88 mov r0, r4                    |             r0 = r4;
    0x0000bd8c bl 0x87bc                     |             fcn_000087bc ();
    0x0000bd90 ldr r1, [pc, 0x2ec]           |             r1 = *(0xc080);
    0x0000bd94 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bd98 mov r2, r0                    |             r2 = r0;
    0x0000bd9c mov r0, r5                    |             r0 = r5;
    0x0000bda0 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bda4 mov r0, r4                    |         r0 = r4;
    0x0000bda8 bl 0x8180                     |         r0 = fcn_00008180 ();
    0x0000bdac cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bdb0 beq 0xbdd0                    |             
    0x0000bdb4 mov r0, r4                    |             r0 = r4;
    0x0000bdb8 bl 0x8180                     |             fcn_00008180 ();
    0x0000bdbc ldr r1, [pc, 0x2c4]           |             r1 = *(0xc084);
    0x0000bdc0 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bdc4 mov r2, r0                    |             r2 = r0;
    0x0000bdc8 mov r0, r5                    |             r0 = r5;
    0x0000bdcc bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bdd0 mov r0, r4                    |         r0 = r4;
    0x0000bdd4 bl 0x8af8                     |         r0 = fcn_00008af8 ();
    0x0000bdd8 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bddc beq 0xbdfc                    |             
    0x0000bde0 mov r0, r4                    |             r0 = r4;
    0x0000bde4 bl 0x8af8                     |             fcn_00008af8 ();
    0x0000bde8 ldr r1, [pc, 0x29c]           |             r1 = *(0xc088);
    0x0000bdec add r1, pc, r1                |             r1 = pc + r1;
    0x0000bdf0 mov r2, r0                    |             r2 = r0;
    0x0000bdf4 mov r0, r5                    |             r0 = r5;
    0x0000bdf8 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bdfc mov r0, r4                    |         r0 = r4;
    0x0000be00 bl 0x8f54                     |         r0 = fcn_00008f54 ();
    0x0000be04 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000be08 beq 0xbe28                    |             
    0x0000be0c mov r0, r4                    |             r0 = r4;
    0x0000be10 bl 0x8f54                     |             fcn_00008f54 ();
    0x0000be14 ldr r1, [pc, 0x274]           |             r1 = *(0xc08c);
    0x0000be18 add r1, pc, r1                |             r1 = pc + r1;
    0x0000be1c mov r2, r0                    |             r2 = r0;
    0x0000be20 mov r0, r5                    |             r0 = r5;
    0x0000be24 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000be28 mov r0, r4                    |         r0 = r4;
    0x0000be2c bl 0x87e0                     |         r0 = fcn_000087e0 ();
    0x0000be30 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000be34 beq 0xbe54                    |             
    0x0000be38 mov r0, r4                    |             r0 = r4;
    0x0000be3c bl 0x87e0                     |             fcn_000087e0 ();
    0x0000be40 ldr r1, [pc, 0x24c]           |             r1 = *(0xc090);
    0x0000be44 add r1, pc, r1                |             r1 = pc + r1;
    0x0000be48 mov r2, r0                    |             r2 = r0;
    0x0000be4c mov r0, r5                    |             r0 = r5;
    0x0000be50 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000be54 mov r0, r4                    |         r0 = r4;
    0x0000be58 bl 0x8b7c                     |         r0 = fcn_00008b7c ();
    0x0000be5c orrs r3, r0, r1               |         r3 = r0 | r1;
                                             |         if (r3 != r0) {
    0x0000be60 beq 0xbe84                    |             
    0x0000be64 mov r0, r4                    |             r0 = r4;
    0x0000be68 bl 0x8b7c                     |             fcn_00008b7c ();
    0x0000be6c mov r3, r1                    |             r3 = r1;
    0x0000be70 ldr r1, [pc, 0x220]           |             r1 = *(0xc094);
    0x0000be74 mov r2, r0                    |             r2 = r0;
    0x0000be78 add r1, pc, r1                |             r1 = pc + r1;
    0x0000be7c mov r0, r5                    |             r0 = r5;
    0x0000be80 bl 0x8798                     |             fprintf (r0, r1, r2, r3)
                                             |         }
    0x0000be84 mov r0, r4                    |         r0 = r4;
    0x0000be88 bl 0x8f9c                     |         r0 = fcn_00008f9c ();
    0x0000be8c orrs r3, r0, r1               |         r3 = r0 | r1;
                                             |         if (r3 != r0) {
    0x0000be90 beq 0xbeb4                    |             
    0x0000be94 mov r0, r4                    |             r0 = r4;
    0x0000be98 bl 0x8f9c                     |             fcn_00008f9c ();
    0x0000be9c mov r3, r1                    |             r3 = r1;
    0x0000bea0 ldr r1, [pc, 0x1f4]           |             r1 = *(0xc098);
    0x0000bea4 mov r2, r0                    |             r2 = r0;
    0x0000bea8 add r1, pc, r1                |             r1 = pc + r1;
    0x0000beac mov r0, r5                    |             r0 = r5;
    0x0000beb0 bl 0x8798                     |             fprintf (r0, r1, r2, r3)
                                             |         }
    0x0000beb4 mov r0, r4                    |         r0 = r4;
    0x0000beb8 bl 0x8fe4                     |         r0 = fcn_00008fe4 ();
    0x0000bebc cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bec0 beq 0xbee0                    |             
    0x0000bec4 mov r0, r4                    |             r0 = r4;
    0x0000bec8 bl 0x8fe4                     |             fcn_00008fe4 ();
    0x0000becc ldr r1, [pc, 0x1cc]           |             r1 = *(0xc09c);
    0x0000bed0 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bed4 mov r2, r0                    |             r2 = r0;
    0x0000bed8 mov r0, r5                    |             r0 = r5;
    0x0000bedc bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bee0 mov r0, r4                    |         r0 = r4;
    0x0000bee4 bl 0x911c                     |         r0 = fcn_0000911c ();
    0x0000bee8 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000beec beq 0xbf0c                    |             
    0x0000bef0 mov r0, r4                    |             r0 = r4;
    0x0000bef4 bl 0x911c                     |             fcn_0000911c ();
    0x0000bef8 ldr r1, [pc, 0x1a4]           |             r1 = *(0xc0a0);
    0x0000befc add r1, pc, r1                |             r1 = pc + r1;
    0x0000bf00 mov r2, r0                    |             r2 = r0;
    0x0000bf04 mov r0, r5                    |             r0 = r5;
    0x0000bf08 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bf0c mov r0, r4                    |         r0 = r4;
    0x0000bf10 bl 0x8c48                     |         r0 = fcn_00008c48 ();
    0x0000bf14 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bf18 beq 0xbf38                    |             
    0x0000bf1c mov r0, r4                    |             r0 = r4;
    0x0000bf20 bl 0x8c48                     |             fcn_00008c48 ();
    0x0000bf24 ldr r1, [pc, 0x17c]           |             r1 = *(0xc0a4);
    0x0000bf28 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bf2c mov r2, r0                    |             r2 = r0;
    0x0000bf30 mov r0, r5                    |             r0 = r5;
    0x0000bf34 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bf38 mov r0, r4                    |         r0 = r4;
    0x0000bf3c bl 0x9050                     |         r0 = fcn_00009050 ();
    0x0000bf40 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bf44 beq 0xbf64                    |             
    0x0000bf48 mov r0, r4                    |             r0 = r4;
    0x0000bf4c bl 0x9050                     |             fcn_00009050 ();
    0x0000bf50 ldr r1, [pc, 0x154]           |             r1 = *(0xc0a8);
    0x0000bf54 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bf58 mov r2, r0                    |             r2 = r0;
    0x0000bf5c mov r0, r5                    |             r0 = r5;
    0x0000bf60 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bf64 mov r0, r4                    |         r0 = r4;
    0x0000bf68 bl 0x8c24                     |         r0 = fcn_00008c24 ();
    0x0000bf6c cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bf70 beq 0xbf90                    |             
    0x0000bf74 mov r0, r4                    |             r0 = r4;
    0x0000bf78 bl 0x8c24                     |             fcn_00008c24 ();
    0x0000bf7c ldr r1, [pc, 0x12c]           |             r1 = *(0xc0ac);
    0x0000bf80 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bf84 mov r2, r0                    |             r2 = r0;
    0x0000bf88 mov r0, r5                    |             r0 = r5;
    0x0000bf8c bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bf90 mov r0, r4                    |         r0 = r4;
    0x0000bf94 bl 0x8b34                     |         r0 = fcn_00008b34 ();
    0x0000bf98 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000bf9c beq 0xbfbc                    |             
    0x0000bfa0 mov r0, r4                    |             r0 = r4;
    0x0000bfa4 bl 0x8b34                     |             fcn_00008b34 ();
    0x0000bfa8 ldr r1, [pc, 0x104]           |             r1 = *(0xc0b0);
    0x0000bfac add r1, pc, r1                |             r1 = pc + r1;
    0x0000bfb0 mov r2, r0                    |             r2 = r0;
    0x0000bfb4 mov r0, r5                    |             r0 = r5;
    0x0000bfb8 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000bfbc mov r0, r4                    |         r0 = r4;
    0x0000bfc0 bl 0x7ed4                     |         r0 = fcn_00007ed4 ();
    0x0000bfc4 orrs r3, r0, r1               |         r3 = r0 | r1;
                                             |         if (r3 != r0) {
    0x0000bfc8 beq 0xc000                    |             
    0x0000bfcc mov r0, r4                    |             r0 = r4;
    0x0000bfd0 bl 0x7ed4                     |             fcn_00007ed4 ();
    0x0000bfd4 bl 0x8294                     |             r0 = gnu_dev_major ();
    0x0000bfd8 mov r6, r0                    |             r6 = r0;
    0x0000bfdc mov r0, r4                    |             r0 = r4;
    0x0000bfe0 bl 0x7ed4                     |             fcn_00007ed4 ();
    0x0000bfe4 bl 0x8570                     |             gnu_dev_minor ();
    0x0000bfe8 ldr r1, [pc, 0xc8]            |             r1 = *(0xc0b4);
    0x0000bfec mov r2, r6                    |             r2 = r6;
    0x0000bff0 add r1, pc, r1                |             r1 = pc + r1;
    0x0000bff4 mov r3, r0                    |             r3 = r0;
    0x0000bff8 mov r0, r5                    |             r0 = r5;
    0x0000bffc bl 0x8798                     |             fprintf (r0, r1, r2, r3)
                                             |         }
    0x0000c000 mov r0, r4                    |         r0 = r4;
    0x0000c004 bl 0x8fa8                     |         r0 = fcn_00008fa8 ();
    0x0000c008 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000c00c beq 0xc02c                    |             
    0x0000c010 mov r0, r4                    |             r0 = r4;
    0x0000c014 bl 0x8fa8                     |             fcn_00008fa8 ();
    0x0000c018 ldr r1, [pc, 0x9c]            |             r1 = *(0xc0b8);
    0x0000c01c add r1, pc, r1                |             r1 = pc + r1;
    0x0000c020 mov r2, r0                    |             r2 = r0;
    0x0000c024 mov r0, r5                    |             r0 = r5;
    0x0000c028 bl 0x8798                     |             fprintf (r0, r1, r2)
                                             |         }
    0x0000c02c mov r0, r4                    |         r0 = r4;
    0x0000c030 bl 0x86d8                     |         r0 = fcn_000086d8 ();
    0x0000c034 cmp r0, 0                     |         
    0x0000c038 popeq {r4, r5, r6, pc}        |         
    0x0000c03c mov r0, r4                    |         r0 = r4;
    0x0000c040 bl 0x86d8                     |         fcn_000086d8 ();
    0x0000c044 ldr r1, [pc, 0x74]            |         r1 = *(0xc0bc);
    0x0000c048 add r1, pc, r1                |         r1 = pc + r1;
    0x0000c04c mov r2, r0                    |         r2 = r0;
    0x0000c050 mov r0, r5                    |         r0 = r5;
    0x0000c054 bl 0x8798                     |         fprintf (r0, r1, r2)
    0x0000c058 mov r0, 0                     |         r0 = 0;
    0x0000c05c pop {r4, r5, r6, pc}          |         
                                             |     }
    0x0000c060 mvn r0, 0x15                  |     r0 = ~0x15;
    0x0000c064 bx lr                         |     return r0;
                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0xa2c0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_get_fstype ()                        | void mnt_get_fstype (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     char * src;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0000a2c0 push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x0000a2c4 ldr r8, [pc, 0x1b0]                       |     r8 = *(0xa478);
    0x0000a2c8 ldr r3, [pc, 0x1b0]                       |     r3 = *(0xa47c);
    0x0000a2cc add r8, pc, r8                            |     r8 = pc + r8;
    0x0000a2d0 ldr sb, [r8, r3]                          |     sb = *(0xa478);
    0x0000a2d4 sub sp, sp, 0x14                          |     
    0x0000a2d8 ldr r3, [sb]                              |     r3 = *(0xa478);
    0x0000a2dc mov r5, r0                                |     r5 = r0;
    0x0000a2e0 tst r3, 4                                 |     
    0x0000a2e4 mov r7, r1                                |     r7 = r1;
    0x0000a2e8 mov r4, r2                                |     r4 = r2;
                                                         |     if ((r3 & 4) != 0) {
    0x0000a2ec beq 0xa33c                                |         
    0x0000a2f0 ldr r3, [pc, 0x18c]                       |         r3 = *(0xa480);
    0x0000a2f4 ldr r3, [r8, r3]                          |         r3 = *((r8 + r3));
    0x0000a2f8 ldr r6, [r3]                              |         r6 = *(0xa480);
    0x0000a2fc bl 0x8204                                 |         getpid ();
    0x0000a300 ldr r3, [pc, 0x180]                       |         r3 = *(0xa484);
    0x0000a304 ldr r1, [pc, 0x180]                       |         r1 = *(0xa488);
    0x0000a308 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000a30c str r3, [sp]                              |         *(sp) = r3;
    0x0000a310 ldr r3, [pc, 0x178]                       |         r3 = *(0xa48c);
    0x0000a314 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000a318 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000a31c mov r2, r0                                |         r2 = r0;
    0x0000a320 mov r0, r6                                |         r0 = r6;
    0x0000a324 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x0000a328 ldr r1, [pc, 0x164]                       |         r1 = *(0xa490);
    0x0000a32c mov r2, r5                                |         r2 = r5;
    0x0000a330 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000a334 mov r0, r4                                |         r0 = r4;
    0x0000a338 bl 0x94bc                                 |         fcn_000094bc (r0);
                                                         |     }
    0x0000a33c cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x0000a340 beq 0xa394                                |         goto label_2;
                                                         |     }
    0x0000a344 add r3, sp, 0x10                          |     r3 += var_10h;
    0x0000a348 mov r2, 0                                 |     r2 = 0;
    0x0000a34c str r2, [r3, -4]!                         |     *((r3 -= 4)) = r2;
    0x0000a350 ldr r2, [pc, 0x140]                       |     r2 = *(0xa494);
    0x0000a354 mov r1, r5                                |     r1 = r5;
    0x0000a358 add r2, pc, r2                            |     r2 = pc + r2;
    0x0000a35c mov r0, r4                                |     r0 = r4;
    0x0000a360 bl 0xa1f0                                 |     fcn_0000a1f0 (r0, r1);
    0x0000a364 cmp r7, 0                                 |     
                                                         |     if (r7 != 0) {
    0x0000a368 beq 0xa37c                                |         
    0x0000a36c cmn r0, 2                                 |         
                                                         |         if (r0 == 2) {
    0x0000a370 movne r3, 0                               |             r3 = 0;
                                                         |         }
                                                         |         if (r0 != 2) {
    0x0000a374 moveq r3, 1                               |             r3 = 1;
                                                         |         }
    0x0000a378 str r3, [r7]                              |         *(r7) = r3;
                                                         |     }
    0x0000a37c cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0000a380 ldreq r4, [sp, 0xc]                       |         r4 = src;
                                                         |     }
    0x0000a384 movne r4, 0                               |     r4 = 0;
                                                         |     while (r6 == r0) {
                                                         | label_0:
    0x0000a388 mov r0, r4                                |         r0 = r4;
    0x0000a38c add sp, sp, 0x14                          |         
    0x0000a390 pop {r4, r5, r6, r7, r8, sb, pc}          |         
                                                         | label_2:
    0x0000a394 mov r0, r5                                |         r0 = r5;
    0x0000a398 bl 0x8150                                 |         r0 = blkid_new_probe_from_filename ();
    0x0000a39c subs r6, r0, 0                            |         r6 = r0 - 0;
    0x0000a3a0 beq 0xa388                                |         
                                                         |     }
    0x0000a3a4 mov r1, 1                                 |     r1 = 1;
    0x0000a3a8 bl 0x8b70                                 |     blkid_probe_enable_superblocks ();
    0x0000a3ac mov r1, 0x20                              |     r1 = 0x20;
    0x0000a3b0 mov r0, r6                                |     r0 = r6;
    0x0000a3b4 bl 0x8dec                                 |     blkid_probe_set_superblocks_flags ();
    0x0000a3b8 mov r0, r6                                |     r0 = r6;
    0x0000a3bc bl 0x8234                                 |     blkid_do_safeprobe ();
    0x0000a3c0 ldr r3, [sb]                              |     r3 = *(sb);
    0x0000a3c4 tst r3, 4                                 |     
    0x0000a3c8 mov r5, r0                                |     r5 = r0;
                                                         |     if ((r3 & 4) != 0) {
    0x0000a3cc beq 0xa41c                                |         
    0x0000a3d0 ldr r3, [pc, 0xac]                        |         r3 = *(0xa480);
    0x0000a3d4 ldr r3, [r8, r3]                          |         r3 = *((r8 + r3));
    0x0000a3d8 ldr r8, [r3]                              |         r8 = *(0xa480);
    0x0000a3dc bl 0x8204                                 |         getpid ();
    0x0000a3e0 ldr r3, [pc, 0xb4]                        |         r3 = *(0xa498);
    0x0000a3e4 ldr r1, [pc, 0xb4]                        |         r1 = *(0xa49c);
    0x0000a3e8 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000a3ec str r3, [sp]                              |         *(sp) = r3;
    0x0000a3f0 ldr r3, [pc, 0xac]                        |         r3 = *(0xa4a0);
    0x0000a3f4 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000a3f8 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000a3fc mov r2, r0                                |         r2 = r0;
    0x0000a400 mov r0, r8                                |         r0 = r8;
    0x0000a404 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x0000a408 ldr r1, [pc, 0x98]                        |         r1 = *(0xa4a4);
    0x0000a40c mov r2, r5                                |         r2 = r5;
    0x0000a410 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000a414 mov r0, r4                                |         r0 = r4;
    0x0000a418 bl 0x94bc                                 |         fcn_000094bc (r0);
                                                         |     }
    0x0000a41c cmp r5, 0                                 |     
    0x0000a420 beq 0xa44c                                |     
                                                         |     while (r0 != 0) {
    0x0000a424 mov r4, 0                                 |         r4 = 0;
                                                         | label_1:
    0x0000a428 cmp r7, 0                                 |         
                                                         |         if (r7 != 0) {
    0x0000a42c beq 0xa440                                |             
    0x0000a430 cmn r5, 2                                 |             
                                                         |             if (r5 == 2) {
    0x0000a434 movne r5, 0                               |                 r5 = 0;
                                                         |             }
                                                         |             if (r5 != 2) {
    0x0000a438 moveq r5, 1                               |                 r5 = 1;
                                                         |             }
    0x0000a43c str r5, [r7]                              |             *(r7) = r5;
                                                         |         }
    0x0000a440 mov r0, r6                                |         r0 = r6;
    0x0000a444 bl 0x8a5c                                 |         blkid_free_probe ();
    0x0000a448 b 0xa388                                  |         goto label_0;
    0x0000a44c ldr r1, [pc, 0x58]                        |         r1 = *(0xa4a8);
    0x0000a450 mov r3, r5                                |         r3 = r5;
    0x0000a454 add r2, sp, 0xc                           |         r2 += src;
    0x0000a458 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000a45c mov r0, r6                                |         r0 = r6;
    0x0000a460 bl 0x83d8                                 |         r0 = blkid_probe_lookup_value ();
    0x0000a464 cmp r0, 0                                 |         
    0x0000a468 bne 0xa424                                |         
                                                         |     }
    0x0000a46c ldr r0, [sp, 0xc]                         |     r0 = src;
    0x0000a470 bl 0x8ae0                                 |     r0 = strdup (r0);
    0x0000a474 mov r4, r0                                |     r4 = r0;
    0x0000a478 b 0xa428                                  |     goto label_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/lib/libmount.so.1.1.0 @ 0x19c5c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_get_mountpoint ()                            | void mnt_get_mountpoint (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_74h;
                                                                 |     r0 = arg1;
    0x00019c5c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00019c60 ldr r6, [pc, 0x138]                               |     r6 = *(0x19d9c);
    0x00019c64 subs r5, r0, 0                                    |     r5 = r0 - 0;
    0x00019c68 add r6, pc, r6                                    |     r6 = pc + r6;
    0x00019c6c sub sp, sp, 0x74                                  |     
    0x00019c70 bne 0x19c7c                                       |     
                                                                 |     while (r4 == r0) {
                                                                 | label_1:
    0x00019c74 mov r4, 0                                         |         r4 = 0;
    0x00019c78 b 0x19d70                                         |         goto label_2;
    0x00019c7c bl 0x8ae0                                         |         r0 = strdup (r0);
    0x00019c80 subs r4, r0, 0                                    |         r4 = r0 - 0;
    0x00019c84 beq 0x19c74                                       |         
                                                                 |     }
    0x00019c88 ldrsb r3, [r4]                                    |     r3 = *(r4);
    0x00019c8c cmp r3, 0x2f                                      |     
                                                                 |     if (r3 == 0x2f) {
    0x00019c90 bne 0x19ca0                                       |         
    0x00019c94 ldrsb r3, [r4, 1]                                 |         r3 = *((r4 + 1));
    0x00019c98 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00019c9c beq 0x19d10                                       |             goto label_0;
                                                                 |         }
                                                                 |     }
    0x00019ca0 add r7, sp, 8                                     |     r7 += var_8h;
    0x00019ca4 mov r1, r7                                        |     r1 = r7;
    0x00019ca8 mov r0, r4                                        |     r0 = r4;
    0x00019cac bl 0x180e4                                        |     r0 = fcn_000180e4 (r0, r1);
    0x00019cb0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00019cb4 bne 0x19d94                                       |         goto label_3;
                                                                 |     }
    0x00019cb8 ldr fp, [pc, 0xe4]                                |     fp = "U";
    0x00019cbc ldrd r8, sb, [sp, 8]                              |     __asm ("ldrd r8, sb, [var_8h]");
    0x00019cc0 add fp, pc, fp                                    |     
                                                                 |     do {
    0x00019cc4 mov r0, r4                                        |         r0 = r4;
    0x00019cc8 bl 0x2a12c                                        |         r0 = fcn_0002a12c (r0);
    0x00019ccc subs sl, r0, 0                                    |         sl = r0 - 0;
                                                                 |         if (sl == r0) {
    0x00019cd0 beq 0x19d88                                       |             goto label_4;
                                                                 |         }
    0x00019cd4 ldrsb r3, [r4]                                    |         r3 = *(r4);
    0x00019cd8 mov r1, r7                                        |         r1 = r7;
    0x00019cdc cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00019ce0 moveq r0, fp                                      |             r0 = fp;
                                                                 |         }
                                                                 |         if (r3 == 0) {
    0x00019ce4 movne r0, r4                                      |             r0 = r4;
                                                                 |         }
    0x00019ce8 bl 0x180e4                                        |         r0 = fcn_000180e4 (r0, r1);
    0x00019cec cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00019cf0 bne 0x19d94                                       |             goto label_3;
                                                                 |         }
    0x00019cf4 ldrd r2, r3, [sp, 8]                              |         __asm ("ldrd r2, r3, [var_8h]");
    0x00019cf8 cmp sb, r3                                        |         
    0x00019cfc cmpeq r8, r2                                      |         __asm ("cmpeq r8, r2");
                                                                 |         if (sb != r3) {
    0x00019d00 beq 0x19d7c                                       |             
    0x00019d04 cmp r4, sl                                        |             
                                                                 |             if (r4 >= sl) {
    0x00019d08 movlo r3, 0x2f                                    |                 r3 = 0x2f;
                                                                 |             }
                                                                 |             if (r4 >= sl) {
    0x00019d0c strblo r3, [sl, -1]                               |                 *((sl - 1)) = r3;
                                                                 |             }
                                                                 | label_0:
    0x00019d10 ldr r3, [pc, 0x90]                                |             
    0x00019d14 ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x00019d18 ldr r3, [r3]                                      |             r3 = *(0x19da4);
    0x00019d1c tst r3, 0x100                                     |             
                                                                 |             if ((r3 & 0x100) != 0) {
    0x00019d20 beq 0x19d70                                       |                 
    0x00019d24 ldr r3, [pc, 0x80]                                |                 r3 = *(0x19da8);
    0x00019d28 ldr r3, [r6, r3]                                  |                 r3 = *((r6 + r3));
    0x00019d2c ldr r6, [r3]                                      |                 r6 = *(0x19da8);
    0x00019d30 bl 0x8204                                         |                 getpid ();
    0x00019d34 ldr r3, [pc, 0x74]                                |                 r3 = *(0x19dac);
    0x00019d38 ldr r1, [pc, 0x74]                                |                 r1 = *(0x19db0);
    0x00019d3c add r3, pc, r3                                    |                 r3 = pc + r3;
    0x00019d40 str r3, [sp]                                      |                 *(sp) = r3;
    0x00019d44 ldr r3, [pc, 0x6c]                                |                 r3 = *(0x19db4);
    0x00019d48 add r1, pc, r1                                    |                 r1 = pc + r1;
    0x00019d4c add r3, pc, r3                                    |                 r3 = pc + r3;
    0x00019d50 mov r2, r0                                        |                 r2 = r0;
    0x00019d54 mov r0, r6                                        |                 r0 = r6;
    0x00019d58 bl 0x8798                                         |                 fprintf (r0, r1, r2, r3)
    0x00019d5c ldr r0, [pc, 0x58]                                |                 r0 = *(0x19db8);
    0x00019d60 mov r2, r4                                        |                 r2 = r4;
    0x00019d64 mov r1, r5                                        |                 r1 = r5;
    0x00019d68 add r0, pc, r0                                    |                 r0 = pc + r0;
    0x00019d6c bl 0x17b10                                        |                 fcn_00017b10 ();
                                                                 |             }
                                                                 | label_2:
    0x00019d70 mov r0, r4                                        |             r0 = r4;
    0x00019d74 add sp, sp, 0x74                                  |             
    0x00019d78 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x00019d7c ldrsb r3, [r4, 1]                                 |         r3 = *((r4 + 1));
    0x00019d80 cmp r3, 0                                         |         
    0x00019d84 bne 0x19cc4                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_4:
    0x00019d88 mov r3, 0x2f                                      |     r3 = 0x2f;
    0x00019d8c strh r3, [r4]                                     |     *(r4) = r3;
    0x00019d90 b 0x19d10                                         |     goto label_0;
                                                                 | label_3:
    0x00019d94 mov r0, r4                                        |     r0 = r4;
    0x00019d98 bl 0x91c4                                         |     free (r0);
    0x00019d9c b 0x19c74                                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x196b0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_has_regular_mtab ()          | void mnt_has_regular_mtab (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_18h;
                                                 |     int32_t var_70h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000196b0 push {r4, r5, r6, r7, r8, lr}     |     
    0x000196b4 ldr r6, [pc, 0x22c]               |     r6 = *(0x198e4);
    0x000196b8 subs r7, r0, 0                    |     r7 = r0 - 0;
    0x000196bc add r6, pc, r6                    |     r6 = pc + r6;
    0x000196c0 sub sp, sp, 0x70                  |     
    0x000196c4 mov r5, r1                        |     r5 = r1;
                                                 |     if (r7 != r0) {
    0x000196c8 beq 0x196d8                       |         
    0x000196cc ldr r4, [r7]                      |         r4 = *(r7);
    0x000196d0 cmp r4, 0                         |         
                                                 |         if (r4 != 0) {
    0x000196d4 bne 0x198dc                       |             goto label_5;
                                                 |         }
                                                 |     }
    0x000196d8 bl 0x8abc                         |     fcn_00008abc ();
    0x000196dc cmp r5, 0                         |     
    0x000196e0 mov r4, r0                        |     r4 = r0;
                                                 |     if (r5 != 0) {
    0x000196e4 beq 0x196f0                       |         
                                                 | label_3:
    0x000196e8 mov r3, 0                         |         r3 = 0;
    0x000196ec str r3, [r5]                      |         *(r5) = r3;
                                                 |     }
    0x000196f0 cmp r7, 0                         |     
                                                 |     if (r7 != 0) {
    0x000196f4 beq 0x19704                       |         
                                                 | label_4:
    0x000196f8 ldr r3, [r7]                      |         r3 = *(r7);
    0x000196fc cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x00019700 streq r4, [r7]                    |             *(r7) = r4;
                                                 |             goto label_6;
                                                 |         }
                                                 |     }
                                                 | label_6:
    0x00019704 ldr r3, [pc, 0x1e0]               |     r3 = *(0x198e8);
    0x00019708 ldr r7, [r6, r3]                  |     r7 = *((r6 + r3));
    0x0001970c ldr r3, [r7]                      |     r3 = *(r7);
    0x00019710 tst r3, 0x100                     |     
                                                 |     if ((r3 & 0x100) != 0) {
    0x00019714 beq 0x19760                       |         
    0x00019718 ldr r3, [pc, 0x1d0]               |         r3 = *(0x198ec);
    0x0001971c ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x00019720 ldr r8, [r3]                      |         r8 = *(0x198ec);
    0x00019724 bl 0x8204                         |         getpid ();
    0x00019728 ldr r3, [pc, 0x1c4]               |         r3 = *(0x198f0);
    0x0001972c ldr r1, [pc, 0x1c4]               |         r1 = *(0x198f4);
    0x00019730 add r3, pc, r3                    |         r3 = pc + r3;
    0x00019734 str r3, [sp]                      |         *(sp) = r3;
    0x00019738 ldr r3, [pc, 0x1bc]               |         r3 = *(0x198f8);
    0x0001973c add r1, pc, r1                    |         r1 = pc + r1;
    0x00019740 add r3, pc, r3                    |         r3 = pc + r3;
    0x00019744 mov r2, r0                        |         r2 = r0;
    0x00019748 mov r0, r8                        |         r0 = r8;
    0x0001974c bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00019750 ldr r0, [pc, 0x1a8]               |         r0 = *(0x198fc);
    0x00019754 mov r1, r4                        |         r1 = r4;
    0x00019758 add r0, pc, r0                    |         r0 = pc + r0;
    0x0001975c bl 0x17b10                        |         fcn_00017b10 ();
                                                 |     }
    0x00019760 add r1, sp, 8                     |     r1 += var_8h;
    0x00019764 mov r0, r4                        |     r0 = r4;
    0x00019768 bl 0x8a98                         |     r0 = lstat64 ();
    0x0001976c subs r1, r0, 0                    |     r1 = r0 - 0;
                                                 |     if (r1 != r0) {
    0x00019770 bne 0x19804                       |         goto label_7;
                                                 |     }
    0x00019774 ldr r3, [sp, 0x18]                |     r3 = var_18h;
    0x00019778 and r3, r3, 0xf000                |     r3 &= 0xf000;
    0x0001977c cmp r3, 0x8000                    |     
                                                 |     if (r3 != fcn.00008000) {
    0x00019780 bne 0x19880                       |         goto label_8;
                                                 |     }
    0x00019784 cmp r5, 0                         |     
                                                 |     if (r5 != 0) {
    0x00019788 beq 0x197a0                       |         
    0x0001978c mov r0, r4                        |         r0 = r4;
    0x00019790 bl 0x17b9c                        |         r0 = fcn_00017b9c (r0, r1);
    0x00019794 clz r0, r0                        |         r0 &= r0;
    0x00019798 lsr r0, r0, 5                     |         r0 >>= 5;
    0x0001979c str r0, [r5]                      |         *(r5) = r0;
                                                 |     }
    0x000197a0 ldr r3, [r7]                      |     r3 = *(r7);
    0x000197a4 tst r3, 0x100                     |     
    0x000197a8 bne 0x197b8                       |     
                                                 |     while (1) {
                                                 | label_0:
    0x000197ac mov r0, 1                         |         r0 = 1;
                                                 | label_2:
    0x000197b0 add sp, sp, 0x70                  |         
    0x000197b4 pop {r4, r5, r6, r7, r8, pc}      |         
    0x000197b8 ldr r3, [pc, 0x130]               |         r3 = *(0x198ec);
    0x000197bc ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x000197c0 ldr r5, [r3]                      |         r5 = *(0x198ec);
    0x000197c4 bl 0x8204                         |         getpid ();
    0x000197c8 ldr r3, [pc, 0x134]               |         r3 = *(0x19900);
    0x000197cc ldr r1, [pc, 0x134]               |         r1 = *(0x19904);
    0x000197d0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000197d4 str r3, [sp]                      |         *(sp) = r3;
    0x000197d8 ldr r3, [pc, 0x12c]               |         r3 = *(0x19908);
    0x000197dc add r1, pc, r1                    |         r1 = pc + r1;
    0x000197e0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000197e4 mov r2, r0                        |         r2 = r0;
    0x000197e8 mov r0, r5                        |         r0 = r5;
    0x000197ec bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x000197f0 ldr r0, [pc, 0x118]               |         r0 = *(0x1990c);
    0x000197f4 mov r1, r4                        |         r1 = r4;
    0x000197f8 add r0, pc, r0                    |         r0 = pc + r0;
                                                 | label_1:
    0x000197fc bl 0x17b10                        |         fcn_00017b10 ();
    0x00019800 b 0x197ac                         |         
                                                 |     }
                                                 | label_7:
    0x00019804 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x00019808 beq 0x19880                       |         goto label_8;
                                                 |     }
    0x0001980c mov r1, 0                         |     r1 = 0;
    0x00019810 mov r0, r4                        |     r0 = r4;
    0x00019814 bl 0x17b9c                        |     r0 = fcn_00017b9c (r0, r1);
    0x00019818 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0001981c moveq r3, 1                       |         r3 = 1;
                                                 |     }
                                                 |     if (r0 == 0) {
    0x00019820 movne r3, 0                       |         r3 = 0;
                                                 |     }
    0x00019824 str r3, [r5]                      |     *(r5) = r3;
                                                 |     if (r0 != 0) {
    0x00019828 bne 0x19880                       |         goto label_8;
                                                 |     }
    0x0001982c ldr r3, [r7]                      |     r3 = *(r7);
    0x00019830 tst r3, 0x100                     |     
                                                 |     if ((r3 & 0x100) == 0) {
    0x00019834 beq 0x197ac                       |         goto label_0;
                                                 |     }
    0x00019838 ldr r3, [pc, 0xb0]                |     r3 = *(0x198ec);
    0x0001983c ldr r3, [r6, r3]                  |     r3 = *((r6 + r3));
    0x00019840 ldr r5, [r3]                      |     r5 = *(0x198ec);
    0x00019844 bl 0x8204                         |     getpid ();
    0x00019848 ldr r3, [pc, 0xc4]                |     r3 = *(0x19910);
    0x0001984c ldr r1, [pc, 0xc4]                |     r1 = *(0x19914);
    0x00019850 add r3, pc, r3                    |     r3 = pc + r3;
    0x00019854 str r3, [sp]                      |     *(sp) = r3;
    0x00019858 ldr r3, [pc, 0xbc]                |     r3 = *(0x19918);
    0x0001985c add r1, pc, r1                    |     r1 = pc + r1;
    0x00019860 add r3, pc, r3                    |     r3 = pc + r3;
    0x00019864 mov r2, r0                        |     r2 = r0;
    0x00019868 mov r0, r5                        |     r0 = r5;
    0x0001986c bl 0x8798                         |     fprintf (r0, r1, r2, r3)
    0x00019870 ldr r0, [pc, 0xa8]                |     r0 = *(0x1991c);
    0x00019874 mov r1, r4                        |     r1 = r4;
    0x00019878 add r0, pc, r0                    |     r0 = pc + r0;
    0x0001987c b 0x197fc                         |     goto label_1;
                                                 | label_8:
    0x00019880 ldr r0, [r7]                      |     r0 = *(r7);
    0x00019884 ands r0, r0, 0x100                |     r0 &= 0x100;
                                                 |     if (r0 == r0) {
    0x00019888 beq 0x197b0                       |         goto label_2;
                                                 |     }
    0x0001988c ldr r3, [pc, 0x5c]                |     r3 = *(0x198ec);
    0x00019890 ldr r3, [r6, r3]                  |     r3 = *((r6 + r3));
    0x00019894 ldr r5, [r3]                      |     r5 = *(0x198ec);
    0x00019898 bl 0x8204                         |     getpid ();
    0x0001989c ldr r3, [pc, 0x80]                |     r3 = *(0x19920);
    0x000198a0 ldr r1, [pc, 0x80]                |     r1 = *(0x19924);
    0x000198a4 add r3, pc, r3                    |     r3 = pc + r3;
    0x000198a8 str r3, [sp]                      |     *(sp) = r3;
    0x000198ac ldr r3, [pc, 0x78]                |     r3 = *(0x19928);
    0x000198b0 add r1, pc, r1                    |     r1 = pc + r1;
    0x000198b4 add r3, pc, r3                    |     r3 = pc + r3;
    0x000198b8 mov r2, r0                        |     r2 = r0;
    0x000198bc mov r0, r5                        |     r0 = r5;
    0x000198c0 bl 0x8798                         |     fprintf (r0, r1, r2, r3)
    0x000198c4 ldr r0, [pc, 0x64]                |     r0 = *(0x1992c);
    0x000198c8 mov r1, r4                        |     r1 = r4;
    0x000198cc add r0, pc, r0                    |     r0 = pc + r0;
    0x000198d0 bl 0x17b10                        |     fcn_00017b10 ();
    0x000198d4 mov r0, 0                         |     r0 = 0;
    0x000198d8 b 0x197b0                         |     goto label_2;
                                                 | label_5:
    0x000198dc cmp r1, 0                         |     
                                                 |     if (r1 != 0) {
    0x000198e0 bne 0x196e8                       |         goto label_3;
                                                 |     }
    0x000198e4 b 0x196f8                         |     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/lib/libmount.so.1.1.0 @ 0xc2b0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_init_debug ()                                | void mnt_init_debug (uint32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     char * * endptr;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
    0x0000c2b0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000c2b4 ldr r7, [pc, 0x390]                               |     r7 = *(0xc648);
    0x0000c2b8 ldr r3, [pc, 0x390]                               |     r3 = *(0xc64c);
    0x0000c2bc add r7, pc, r7                                    |     r7 = pc + r7;
    0x0000c2c0 ldr r4, [r7, r3]                                  |     r4 = *(0xc648);
    0x0000c2c4 sub sp, sp, 0x24                                  |     
    0x0000c2c8 ldr r8, [r4]                                      |     r8 = *(0xc648);
    0x0000c2cc cmp r8, 0                                         |     
                                                                 |     if (r8 != 0) {
    0x0000c2d0 bne 0xc5a4                                        |         goto label_7;
                                                                 |     }
    0x0000c2d4 cmp r0, 0                                         |     
    0x0000c2d8 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x0000c2dc bne 0xc2f0                                        |         
    0x0000c2e0 ldr r0, [pc, 0x36c]                               |         r0 = *(0xc650);
    0x0000c2e4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000c2e8 bl 0x815c                                         |         r0 = getenv (r0);
    0x0000c2ec mov r8, r0                                        |         r8 = r0;
                                                                 |     }
    0x0000c2f0 ldr r6, [r4]                                      |     r6 = *(r4);
    0x0000c2f4 ands r6, r6, 2                                    |     r6 &= 2;
                                                                 |     if (r6 != r6) {
    0x0000c2f8 bne 0xc3e4                                        |         goto label_8;
                                                                 |     }
    0x0000c2fc adds r3, r8, 0                                    |     r3 = r8 + 0;
                                                                 |     if (r3 == r8) {
    0x0000c300 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0000c304 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000c308 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0000c30c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000c310 beq 0xc3e0                                        |         goto label_9;
                                                                 |     }
    0x0000c314 add sb, sp, 0x1c                                  |     sb += endptr;
    0x0000c318 mov r2, r6                                        |     r2 = r6;
    0x0000c31c mov r1, sb                                        |     r1 = sb;
    0x0000c320 mov r0, r8                                        |     r0 = r8;
    0x0000c324 bl 0x8450                                         |     r0 = strtoul (r0, r1, r2);
    0x0000c328 mov r5, r0                                        |     r5 = r0;
    0x0000c32c ldr r0, [sp, 0x1c]                                |     r0 = endptr;
    0x0000c330 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c334 beq 0xc3e0                                        |         goto label_9;
                                                                 |     }
    0x0000c338 ldrsb r3, [r0]                                    |     r3 = *(r0);
    0x0000c33c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000c340 beq 0xc5ac                                        |         goto label_10;
                                                                 |     }
    0x0000c344 mov r0, r8                                        |     r0 = r8;
    0x0000c348 bl 0x8ae0                                         |     r0 = strdup (r0);
    0x0000c34c subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 == r0) {
    0x0000c350 beq 0xc3e0                                        |         goto label_9;
                                                                 |     }
    0x0000c354 ldr r3, [pc, 0x2fc]                               |     r3 = *(0xc654);
    0x0000c358 ldr sl, [pc, 0x2fc]                               |     sl = *(0x0000c65c);
    0x0000c35c ldr fp, [pc, 0x2fc]                               |     fp = *(0xc65c);
    0x0000c360 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000c364 mov r0, r5                                        |     r0 = r5;
    0x0000c368 add sl, pc, sl                                    |     sl = pc + sl;
    0x0000c36c str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     do {
    0x0000c370 mov r2, sb                                        |         r2 = sb;
    0x0000c374 ldr r1, [sp, 0xc]                                 |         r1 = var_ch;
    0x0000c378 bl 0x7f58                                         |         r0 = strtok_r ();
    0x0000c37c subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 == r0) {
    0x0000c380 beq 0xc3d4                                        |             goto label_11;
                                                                 |         }
    0x0000c384 mov r8, 0                                         |         r8 = 0;
                                                                 | label_0:
    0x0000c388 ldr r1, [r8, sl]                                  |         r1 = *((r8 + sl));
    0x0000c38c add r2, sl, r8                                    |         r2 = sl + r8;
    0x0000c390 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x0000c394 bne 0xc3a0                                        |             goto label_12;
                                                                 |         }
                                                                 | label_1:
    0x0000c398 ldr r0, [sp, 0x1c]                                |         r0 = endptr;
    0x0000c39c b 0xc370                                          |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x0000c3a0 mov r0, r3                                        |     r0 = r3;
    0x0000c3a4 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0000c3a8 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000c3ac bl 0x8cb4                                         |     strcmp (r0, r1);
    0x0000c3b0 add r8, r8, 0xc                                   |     r8 += 0xc;
    0x0000c3b4 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000c3b8 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0000c3bc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000c3c0 bne 0xc388                                        |         goto label_0;
                                                                 |     }
    0x0000c3c4 ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x0000c3c8 orr r6, r6, r3                                    |     r6 |= r3;
    0x0000c3cc cmp r6, fp                                        |     
                                                                 |     if (r6 != fp) {
    0x0000c3d0 bne 0xc398                                        |         goto label_1;
                                                                 |     }
                                                                 | label_11:
    0x0000c3d4 mov r0, r5                                        |     r0 = r5;
    0x0000c3d8 bl 0x91c4                                         |     free (r0);
    0x0000c3dc mov r5, r6                                        |     r5 = r6;
                                                                 |     do {
                                                                 | label_9:
    0x0000c3e0 str r5, [r4]                                      |         *(r4) = r5;
                                                                 | label_8:
    0x0000c3e4 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0000c3e8 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000c3ec moveq r3, 2                                       |             r3 = 2;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0000c3f0 streq r3, [r4]                                    |             *(r4) = r3;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0000c3f4 beq 0xc558                                        |             
    0x0000c3f8 bl 0x8378                                         |             r0 = getuid ();
    0x0000c3fc mov r5, r0                                        |             r5 = r0;
    0x0000c400 bl 0x8054                                         |             r0 = geteuid ();
    0x0000c404 cmp r5, r0                                        |             
                                                                 |             if (r5 == r0) {
    0x0000c408 beq 0xc5c8                                        |                 goto label_13;
                                                                 |             }
                                                                 | label_2:
    0x0000c40c ldr r3, [r4]                                      |             r3 = *(r4);
    0x0000c410 orr r3, r3, 0x1000000                             |             r3 |= 0x1000000;
    0x0000c414 str r3, [r4]                                      |             *(r4) = r3;
    0x0000c418 ldr r3, [pc, 0x244]                               |             r3 = *(0xc660);
    0x0000c41c ldr r3, [r7, r3]                                  |             r3 = *((r7 + r3));
    0x0000c420 ldr r5, [r3]                                      |             r5 = *(0xc660);
    0x0000c424 bl 0x8204                                         |             getpid ();
    0x0000c428 ldr r3, [pc, 0x238]                               |             r3 = *(0xc664);
    0x0000c42c ldr r1, [pc, 0x238]                               |             r1 = *(0xc668);
    0x0000c430 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000c434 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000c438 mov r2, r0                                        |             r2 = r0;
    0x0000c43c mov r0, r5                                        |             r0 = r5;
    0x0000c440 bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
                                                                 | label_3:
    0x0000c444 ldr r3, [r4]                                      |             r3 = *(r4);
    0x0000c448 orr r3, r3, 2                                     |             r3 |= 2;
    0x0000c44c str r3, [r4]                                      |             *(r4) = r3;
    0x0000c450 sub r3, r3, 2                                     |             r3 -= 2;
    0x0000c454 cmp r3, 1                                         |             
                                                                 |             if (r3 < 1) {
    0x0000c458 bls 0xc558                                        |                 goto label_14;
                                                                 |             }
    0x0000c45c mov r3, 0                                         |             r3 = 0;
    0x0000c460 add r0, sp, 0x18                                  |             r0 += var_18h;
    0x0000c464 str r3, [sp, 0x18]                                |             var_18h = r3;
    0x0000c468 str r3, [sp, 0x1c]                                |             endptr = r3;
    0x0000c46c bl 0x8090                                         |             fcn_00008090 ();
    0x0000c470 add r0, sp, 0x1c                                  |             r0 += endptr;
    0x0000c474 bl 0x8c3c                                         |             fcn_00008c3c ();
    0x0000c478 ldr r3, [r4]                                      |             r3 = *(r4);
    0x0000c47c tst r3, 2                                         |             
                                                                 |             if ((r3 & 2) != 0) {
    0x0000c480 beq 0xc4cc                                        |                 
    0x0000c484 ldr r3, [pc, 0x1d8]                               |                 r3 = *(0xc660);
    0x0000c488 ldr r3, [r7, r3]                                  |                 r3 = *((r7 + r3));
    0x0000c48c ldr r5, [r3]                                      |                 r5 = *(0xc660);
    0x0000c490 bl 0x8204                                         |                 getpid ();
    0x0000c494 ldr r3, [pc, 0x1d4]                               |                 r3 = *(0xc66c);
    0x0000c498 ldr r1, [pc, 0x1d4]                               |                 r1 = *(0xc670);
    0x0000c49c add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000c4a0 str r3, [sp]                                      |                 *(sp) = r3;
    0x0000c4a4 ldr r3, [pc, 0x1cc]                               |                 r3 = *(0xc674);
    0x0000c4a8 add r1, pc, r1                                    |                 r1 = pc + r1;
    0x0000c4ac add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000c4b0 mov r2, r0                                        |                 r2 = r0;
    0x0000c4b4 mov r0, r5                                        |                 r0 = r5;
    0x0000c4b8 bl 0x8798                                         |                 fprintf (r0, r1, r2, r3)
    0x0000c4bc ldr r0, [pc, 0x1b8]                               |                 r0 = *(0xc678);
    0x0000c4c0 ldr r1, [r4]                                      |                 r1 = *(r4);
    0x0000c4c4 add r0, pc, r0                                    |                 r0 = pc + r0;
    0x0000c4c8 bl 0xc224                                         |                 fcn_0000c224 ();
                                                                 |             }
    0x0000c4cc ldr r3, [r4]                                      |             r3 = *(r4);
    0x0000c4d0 tst r3, 2                                         |             
                                                                 |             if ((r3 & 2) != 0) {
    0x0000c4d4 beq 0xc520                                        |                 
    0x0000c4d8 ldr r3, [pc, 0x184]                               |                 r3 = *(0xc660);
    0x0000c4dc ldr r3, [r7, r3]                                  |                 r3 = *((r7 + r3));
    0x0000c4e0 ldr r5, [r3]                                      |                 r5 = *(0xc660);
    0x0000c4e4 bl 0x8204                                         |                 getpid ();
    0x0000c4e8 ldr r3, [pc, 0x190]                               |                 r3 = *(0xc67c);
    0x0000c4ec ldr r1, [pc, 0x190]                               |                 r1 = *(0xc680);
    0x0000c4f0 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000c4f4 str r3, [sp]                                      |                 *(sp) = r3;
    0x0000c4f8 ldr r3, [pc, 0x188]                               |                 r3 = *(0xc684);
    0x0000c4fc add r1, pc, r1                                    |                 r1 = pc + r1;
    0x0000c500 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000c504 mov r2, r0                                        |                 r2 = r0;
    0x0000c508 mov r0, r5                                        |                 r0 = r5;
    0x0000c50c bl 0x8798                                         |                 fprintf (r0, r1, r2, r3)
    0x0000c510 ldr r0, [pc, 0x174]                               |                 r0 = *(0xc688);
    0x0000c514 ldr r1, [sp, 0x18]                                |                 r1 = var_18h;
    0x0000c518 add r0, pc, r0                                    |                 r0 = pc + r0;
    0x0000c51c bl 0xc224                                         |                 fcn_0000c224 ();
                                                                 |             }
    0x0000c520 ldr r6, [pc, 0x168]                               |             r6 = *(0xc68c);
    0x0000c524 ldr r8, [pc, 0x168]                               |             r8 = *(0xc690);
    0x0000c528 ldr sb, [pc, 0x168]                               |             sb = *(0xc694);
    0x0000c52c ldr r5, [sp, 0x1c]                                |             r5 = endptr;
    0x0000c530 add r6, pc, r6                                    |             r6 = pc + r6;
    0x0000c534 add r8, pc, r8                                    |             r8 = pc + r8;
    0x0000c538 add sb, pc, sb                                    |             sb = pc + sb;
                                                                 | label_5:
    0x0000c53c ldr r3, [r4]                                      |             r3 = *(r4);
    0x0000c540 and r3, r3, 2                                     |             r3 &= 2;
                                                                 | label_4:
    0x0000c544 cmp r5, 0                                         |             
                                                                 |             if (r5 == 0) {
    0x0000c548 beq 0xc558                                        |                 goto label_14;
                                                                 |             }
    0x0000c54c ldr r2, [r5]                                      |             r2 = *(r5);
    0x0000c550 cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x0000c554 bne 0xc5e0                                        |                 goto label_15;
                                                                 |             }
                                                                 |         }
                                                                 | label_14:
    0x0000c558 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0000c55c tst r3, 1                                         |         
                                                                 |         if ((r3 & 1) != 0) {
    0x0000c560 beq 0xc5a4                                        |             
    0x0000c564 ldr r3, [pc, 0xf8]                                |             r3 = *(0xc660);
    0x0000c568 ldr r2, [pc, 0x12c]                               |             r2 = *(0xc698);
    0x0000c56c ldr r5, [r7, r3]                                  |             r5 = *((r7 + r3));
    0x0000c570 ldr r1, [pc, 0x128]                               |             r1 = *(0xc69c);
    0x0000c574 add r2, pc, r2                                    |             r2 = pc + r2;
    0x0000c578 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000c57c ldr r0, [r5]                                      |             r0 = *(r5);
    0x0000c580 bl 0x8798                                         |             fprintf (r0, r1, r2, r3, r4, r5)
    0x0000c584 ldr r4, [pc, 0x118]                               |             
    0x0000c588 ldr r6, [pc, 0x118]                               |             r6 = *(0xc6a4);
    0x0000c58c add r4, pc, r4                                    |             r4 = pc + r4;
    0x0000c590 add r4, r4, 0xc                                   |             r4 = 0xc6ac;
    0x0000c594 add r6, pc, r6                                    |             r6 = pc + r6;
                                                                 | label_6:
    0x0000c598 ldr r2, [r4, -0xc]                                |             r2 = *((r4 - 0xc));
    0x0000c59c cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x0000c5a0 bne 0xc624                                        |                 goto label_16;
                                                                 |             }
                                                                 |         }
                                                                 | label_7:
    0x0000c5a4 add sp, sp, 0x24                                  |         
    0x0000c5a8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_10:
    0x0000c5ac ldr r1, [pc, 0xf8]                                |         r1 = *(0xc6a8);
    0x0000c5b0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000c5b4 bl 0x8cb4                                         |         strcmp (r0, r1);
    0x0000c5b8 ldr r3, [pc, 0xa0]                                |         r3 = *(0xc65c);
    0x0000c5bc cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000c5c0 moveq r5, r3                                      |             r5 = r3;
                                                                 |         }
    0x0000c5c4 b 0xc3e0                                          |         
                                                                 |     } while (1);
                                                                 | label_13:
    0x0000c5c8 bl 0x7f7c                                         |     r0 = getgid ();
    0x0000c5cc mov r5, r0                                        |     r5 = r0;
    0x0000c5d0 bl 0x818c                                         |     r0 = getegid ();
    0x0000c5d4 cmp r5, r0                                        |     
                                                                 |     if (r5 != r0) {
    0x0000c5d8 bne 0xc40c                                        |         goto label_2;
                                                                 |     }
    0x0000c5dc b 0xc444                                          |     goto label_3;
                                                                 | label_15:
    0x0000c5e0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000c5e4 beq 0xc544                                        |         goto label_4;
                                                                 |     }
    0x0000c5e8 ldr r3, [pc, 0x74]                                |     r3 = *(0xc660);
    0x0000c5ec ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x0000c5f0 ldr sl, [r3]                                      |     sl = *(0xc660);
    0x0000c5f4 bl 0x8204                                         |     getpid ();
    0x0000c5f8 mov r1, r8                                        |     r1 = r8;
    0x0000c5fc str sb, [sp]                                      |     *(sp) = sb;
    0x0000c600 mov r3, r6                                        |     r3 = r6;
    0x0000c604 mov r2, r0                                        |     r2 = r0;
    0x0000c608 mov r0, sl                                        |     r0 = sl;
    0x0000c60c bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x0000c610 ldr r0, [pc, 0x98]                                |     r0 = *(0xc6ac);
    0x0000c614 ldr r1, [r5], 4                                   |     r1 = *(r5);
                                                                 |     r5 += 4;
    0x0000c618 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000c61c bl 0xc224                                         |     fcn_0000c224 ();
    0x0000c620 b 0xc53c                                          |     goto label_5;
                                                                 | label_16:
    0x0000c624 ldr r3, [r4, -4]                                  |     r3 = *((r4 - 4));
    0x0000c628 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000c62c beq 0xc644                                        |         
    0x0000c630 str r3, [sp]                                      |         *(sp) = r3;
    0x0000c634 mov r1, r6                                        |         r1 = r6;
    0x0000c638 ldr r3, [r4, -8]                                  |         r3 = *((r4 - 8));
    0x0000c63c ldr r0, [r5]                                      |         r0 = *(r5);
    0x0000c640 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
                                                                 |     }
    0x0000c644 add r4, r4, 0xc                                   |     r4 += 0xc;
    0x0000c648 b 0xc598                                          |     goto label_6;
                                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0xca60 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) sym.mnt_lock_block_signals ()            | void mnt_lock_block_signals (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0000ca60 ldr r3, [pc, 0xb0]                    |     r3 = *(0xcb14);
    0x0000ca64 push {r0, r1, r4, r5, r6, lr}         |     
    0x0000ca68 subs r5, r0, 0                        |     r5 = r0 - 0;
    0x0000ca6c add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r5 != r0) {
    0x0000ca70 mvneq r0, 0x15                        |         r0 = ~0x15;
                                                     |     }
                                                     |     if (r5 == r0) {
    0x0000ca74 beq 0xcb04                            |         goto label_0;
                                                     |     }
    0x0000ca78 ldr r2, [pc, 0x9c]                    |     
    0x0000ca7c mov r4, r1                            |     r4 = r1;
    0x0000ca80 ldr r2, [r3, r2]                      |     r2 = *((r3 + r2));
    0x0000ca84 ldr r2, [r2]                          |     r2 = *(0xcb18);
    0x0000ca88 tst r2, 0x10                          |     
                                                     |     if ((r2 & 0x10) == 0) {
    0x0000ca8c beq 0xcae8                            |         goto label_1;
                                                     |     }
    0x0000ca90 ldr r2, [pc, 0x88]                    |     r2 = *(0xcb1c);
    0x0000ca94 ldr r3, [r3, r2]                      |     r3 = *((r3 + r2));
    0x0000ca98 ldr r6, [r3]                          |     r6 = *(r3);
    0x0000ca9c bl 0x8204                             |     getpid ();
    0x0000caa0 ldr r3, [pc, 0x7c]                    |     r3 = *(0xcb20);
    0x0000caa4 ldr r1, [pc, 0x7c]                    |     r1 = *(0xcb24);
    0x0000caa8 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000caac str r3, [sp]                          |     *(sp) = r3;
    0x0000cab0 ldr r3, [pc, 0x74]                    |     r3 = *(0xcb28);
    0x0000cab4 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000cab8 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000cabc mov r2, r0                            |     r2 = r0;
    0x0000cac0 mov r0, r6                            |     r0 = r6;
    0x0000cac4 bl 0x8798                             |     fprintf (r0, r1, r2, r3)
    0x0000cac8 cmp r4, 0                             |     
                                                     |     if (r4 != 0) {
    0x0000cacc bne 0xcb0c                            |         goto label_2;
                                                     |     }
    0x0000cad0 ldr r2, [pc, 0x58]                    |     r2 = *(0xcb2c);
    0x0000cad4 add r2, pc, r2                        |     r2 = pc + r2;
                                                     |     do {
    0x0000cad8 ldr r1, [pc, 0x54]                    |         r1 = *(0xcb30);
    0x0000cadc mov r0, r5                            |         r0 = r5;
    0x0000cae0 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000cae4 bl 0xc708                             |         fcn_0000c708 (r0);
                                                     | label_1:
    0x0000cae8 ldrb r3, [r5, 0xc]                    |         r3 = *((r5 + 0xc));
    0x0000caec adds r1, r4, 0                        |         r1 = r4 + 0;
                                                     |         if (r1 == r4) {
    0x0000caf0 movne r1, 1                           |             r1 = 1;
                                                     |         }
    0x0000caf4 bic r4, r3, 2                         |         r4 = BIT_MASK (r3, 2);
    0x0000caf8 orr r4, r4, r1, lsl 1                 |         r4 |= (r1 << 1);
    0x0000cafc mov r0, 0                             |         r0 = 0;
    0x0000cb00 strb r4, [r5, 0xc]                    |         *((r5 + 0xc)) = r4;
                                                     | label_0:
    0x0000cb04 add sp, sp, 8                         |         
    0x0000cb08 pop {r4, r5, r6, pc}                  |         
                                                     | label_2:
    0x0000cb0c ldr r2, [pc, 0x24]                    |         r2 = *(0xcb34);
    0x0000cb10 add r2, pc, r2                        |         r2 = pc + r2;
    0x0000cb14 b 0xcad8                              |         
                                                     |     } 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/lib/libmount.so.1.1.0 @ 0xd070 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.mnt_lock_file ()                                 | void mnt_lock_file (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_18h_2;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_48h;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_3ch;
                                                                 |     int32_t var_44h;
                                                                 |     int32_t var_58h;
                                                                 |     int32_t var_60h;
                                                                 |     int32_t var_60h_2;
                                                                 |     int32_t var_68h;
                                                                 |     int32_t var_68h_2;
                                                                 |     int32_t var_78h;
                                                                 |     int32_t var_7ch;
                                                                 |     r0 = arg1;
    0x0000d070 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000d074 ldr r6, [pc, 0x5e0]                               |     r6 = *(0xd658);
    0x0000d078 subs r5, r0, 0                                    |     r5 = r0 - 0;
    0x0000d07c add r6, pc, r6                                    |     r6 = pc + r6;
    0x0000d080 sub sp, sp, 0x7c                                  |     
                                                                 |     if (r5 == r0) {
    0x0000d084 beq 0xd654                                        |         goto label_7;
                                                                 |     }
    0x0000d088 ldrb r3, [r5, 0xc]                                |     r3 = *((r5 + 0xc));
    0x0000d08c ands r4, r3, 4                                    |     r4 = r3 & 4;
                                                                 |     if (r4 == r3) {
    0x0000d090 beq 0xd1dc                                        |         goto label_8;
                                                                 |     }
    0x0000d094 ldr r3, [pc, 0x5c4]                               |     
    0x0000d098 ldr r4, [r5]                                      |     r4 = *(r5);
    0x0000d09c ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000d0a0 ldr r3, [r3]                                      |     r3 = *(0xd65c);
    0x0000d0a4 tst r3, 0x10                                      |     
                                                                 |     if ((r3 & 0x10) != 0) {
    0x0000d0a8 beq 0xd0f8                                        |         
    0x0000d0ac ldr r3, [pc, 0x5b0]                               |         r3 = *(0xd660);
    0x0000d0b0 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000d0b4 ldr r6, [r3]                                      |         r6 = *(0xd660);
    0x0000d0b8 bl 0x8204                                         |         getpid ();
    0x0000d0bc ldr r3, [pc, 0x5a4]                               |         r3 = *(0xd664);
    0x0000d0c0 ldr r1, [pc, 0x5a4]                               |         r1 = *(0xd668);
    0x0000d0c4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d0c8 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d0cc ldr r3, [pc, 0x59c]                               |         r3 = *(0xd66c);
    0x0000d0d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d0d4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d0d8 mov r2, r0                                        |         r2 = r0;
    0x0000d0dc mov r0, r6                                        |         r0 = r6;
    0x0000d0e0 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0000d0e4 ldr r1, [pc, 0x588]                               |         r1 = *(0xd670);
    0x0000d0e8 mov r2, r4                                        |         r2 = r4;
    0x0000d0ec add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d0f0 mov r0, r5                                        |         r0 = r5;
    0x0000d0f4 bl 0xc708                                         |         fcn_0000c708 (r0);
                                                                 |     }
    0x0000d0f8 ldrb r3, [r5, 0xc]                                |     r3 = *((r5 + 0xc));
    0x0000d0fc tst r3, 2                                         |     
                                                                 |     if ((r3 & 2) != 0) {
    0x0000d100 beq 0xd12c                                        |         
    0x0000d104 add r7, r5, 0x10                                  |         r7 = r5 + 0x10;
    0x0000d108 add r6, sp, 0x58                                  |         r6 += var_58h;
    0x0000d10c mov r0, r7                                        |         r0 = r7;
    0x0000d110 bl 0x8024                                         |         sigemptyset ();
    0x0000d114 mov r0, r6                                        |         r0 = r6;
    0x0000d118 bl 0x8a14                                         |         sigfillset ();
    0x0000d11c mov r2, r7                                        |         r2 = r7;
    0x0000d120 mov r1, r6                                        |         r1 = r6;
    0x0000d124 mov r0, 0                                         |         r0 = 0;
    0x0000d128 bl 0x91d0                                         |         sigprocmask ();
                                                                 |     }
    0x0000d12c mov r2, 0x1a4                                     |     r2 = 0x1a4;
    0x0000d130 ldr r1, [pc, 0x540]                               |     r1 = *(0xd674);
    0x0000d134 mov r0, r4                                        |     r0 = r4;
    0x0000d138 bl 0x8ba0                                         |     r0 = open64 ();
    0x0000d13c cmp r0, 0                                         |     
    0x0000d140 str r0, [r5, 8]                                   |     *((r5 + 8)) = r0;
    0x0000d144 bge 0xd17c                                        |     
                                                                 |     while (r0 < 0) {
    0x0000d148 bl 0x8f6c                                         |         r0 = errno_location ();
    0x0000d14c ldr r4, [r0]                                      |         r4 = *(r0);
                                                                 | label_1:
    0x0000d150 ldrb r3, [r5, 0xc]                                |         r3 = *((r5 + 0xc));
    0x0000d154 rsb r4, r4, 0                                     |         r4 -= ;
    0x0000d158 tst r3, 2                                         |         
                                                                 |         if ((r3 & 2) != 0) {
    0x0000d15c beq 0xd170                                        |             
    0x0000d160 mov r2, 0                                         |             r2 = 0;
    0x0000d164 add r1, r5, 0x10                                  |             r1 = r5 + 0x10;
    0x0000d168 mov r0, 2                                         |             r0 = 2;
    0x0000d16c bl 0x91d0                                         |             sigprocmask ();
                                                                 |         }
                                                                 | label_0:
    0x0000d170 mov r0, r4                                        |         r0 = r4;
    0x0000d174 add sp, sp, 0x7c                                  |         
    0x0000d178 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0000d17c mov r1, 0x1a4                                     |         r1 = 0x1a4;
    0x0000d180 bl 0x8168                                         |         r0 = fchmod (r0, r1);
    0x0000d184 cmp r0, 0                                         |         
    0x0000d188 blt 0xd148                                        |         
                                                                 |     }
                                                                 |     do {
    0x0000d18c mov r1, 2                                         |         r1 = 2;
    0x0000d190 ldr r0, [r5, 8]                                   |         r0 = *((r5 + 8));
    0x0000d194 bl 0x88d0                                         |         r0 = flock ();
    0x0000d198 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x0000d19c blt 0xd1b4                                        |             
    0x0000d1a0 ldrb r3, [r5, 0xc]                                |             r3 = *((r5 + 0xc));
    0x0000d1a4 orr r3, r3, 1                                     |             r3 |= 1;
    0x0000d1a8 strb r3, [r5, 0xc]                                |             *((r5 + 0xc)) = r3;
                                                                 | label_5:
    0x0000d1ac mov r4, 0                                         |             r4 = 0;
    0x0000d1b0 b 0xd170                                          |             goto label_0;
                                                                 |         }
    0x0000d1b4 bl 0x8f6c                                         |         r0 = errno_location ();
    0x0000d1b8 ldr r4, [r0]                                      |         r4 = *(r0);
    0x0000d1bc cmp r4, 4                                         |         
    0x0000d1c0 cmpne r4, 0xb                                     |         __asm ("cmpne r4, 0xb");
    0x0000d1c4 beq 0xd18c                                        |         
                                                                 |     } while (r4 == 4);
    0x0000d1c8 ldr r0, [r5, 8]                                   |     r0 = *((r5 + 8));
    0x0000d1cc bl 0x917c                                         |     close (r0);
    0x0000d1d0 mvn r3, 0                                         |     r3 = ~0;
    0x0000d1d4 str r3, [r5, 8]                                   |     *((r5 + 8)) = r3;
    0x0000d1d8 b 0xd150                                          |     goto label_1;
                                                                 | label_8:
    0x0000d1dc ands sl, r3, 1                                    |     sl = r3 & 1;
                                                                 |     if (sl != r3) {
    0x0000d1e0 bne 0xd170                                        |         goto label_0;
                                                                 |     }
    0x0000d1e4 ldr r7, [r5]                                      |     r7 = *(r5);
    0x0000d1e8 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0000d1ec beq 0xd654                                        |         goto label_7;
                                                                 |     }
    0x0000d1f0 ldr r8, [r5, 4]                                   |     r8 = *((r5 + 4));
    0x0000d1f4 cmp r8, 0                                         |     
                                                                 |     if (r8 == 0) {
    0x0000d1f8 beq 0xd654                                        |         goto label_7;
                                                                 |     }
    0x0000d1fc tst r3, 2                                         |     
                                                                 |     if ((r3 & 2) != 0) {
    0x0000d200 beq 0xd244                                        |         
    0x0000d204 add sb, r5, 0x10                                  |         sb = r5 + 0x10;
    0x0000d208 add r4, sp, 0x58                                  |         r4 += var_58h;
    0x0000d20c mov r0, sb                                        |         r0 = sb;
    0x0000d210 bl 0x8024                                         |         sigemptyset ();
    0x0000d214 mov r0, r4                                        |         r0 = r4;
    0x0000d218 bl 0x8a14                                         |         sigfillset ();
    0x0000d21c mov r1, 5                                         |         r1 = 5;
    0x0000d220 mov r0, r4                                        |         r0 = r4;
    0x0000d224 bl 0x8f90                                         |         sigdelset ();
    0x0000d228 mov r1, 0xe                                       |         r1 = 0xe;
    0x0000d22c mov r0, r4                                        |         r0 = r4;
    0x0000d230 bl 0x8f90                                         |         sigdelset ();
    0x0000d234 mov r2, sb                                        |         r2 = sb;
    0x0000d238 mov r1, r4                                        |         r1 = r4;
    0x0000d23c mov r0, sl                                        |         r0 = sl;
    0x0000d240 bl 0x91d0                                         |         sigprocmask ();
                                                                 |     }
    0x0000d244 mov r2, 0x180                                     |     r2 = 0x180;
    0x0000d248 ldr r1, [pc, 0x42c]                               |     r1 = *(0xd678);
    0x0000d24c mov r0, r8                                        |     r0 = r8;
    0x0000d250 bl 0x8ba0                                         |     r0 = open64 ();
    0x0000d254 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0000d258 bge 0xd280                                        |         goto label_9;
                                                                 |     }
    0x0000d25c bl 0x8f6c                                         |     r0 = errno_location ();
    0x0000d260 ldr r4, [r0]                                      |     r4 = *(r0);
                                                                 |     do {
                                                                 | label_2:
    0x0000d264 cmp r4, 0                                         |         
                                                                 |         if (r4 > 0) {
    0x0000d268 mvnle r4, 0                                       |             r4 = ~0;
                                                                 |         }
                                                                 |         if (r4 > 0) {
    0x0000d26c ble 0xd274                                        |             
                                                                 | label_3:
    0x0000d270 rsb r4, r4, 0                                     |             r4 -= ;
                                                                 |         }
                                                                 | label_6:
    0x0000d274 mov r0, r5                                        |         r0 = r5;
    0x0000d278 bl 0x8da4                                         |         fcn_00008da4 ();
    0x0000d27c b 0xd170                                          |         goto label_0;
                                                                 | label_9:
    0x0000d280 bl 0x917c                                         |         close (r0);
    0x0000d284 add r0, sp, 0x20                                  |         r0 += var_20h;
    0x0000d288 bl 0x947c                                         |         fcn_0000947c (r0);
    0x0000d28c ldr fp, [pc, 0x3ec]                               |         fp = *(0x0000d680);
    0x0000d290 ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x0000d294 ldr r1, [pc, 0x3e8]                               |         r1 = *(0xd680);
    0x0000d298 add r3, r3, 0x1e                                  |         r3 += 0x1e;
    0x0000d29c mov r0, 0                                         |         r0 = 0;
    0x0000d2a0 add fp, pc, fp                                    |         
    0x0000d2a4 str r3, [sp, 0x20]                                |         var_20h = r3;
    0x0000d2a8 strd r0, r1, [sp, 0x18]                           |         __asm ("strd r0, r1, [var_18h]");
                                                                 | label_4:
    0x0000d2ac ldrb r3, [r5, 0xc]                                |         r3 = *((r5 + 0xc));
    0x0000d2b0 tst r3, 1                                         |         
                                                                 |         if ((r3 & 1) != 0) {
    0x0000d2b4 bne 0xd3dc                                        |             goto label_10;
                                                                 |         }
    0x0000d2b8 mov r1, r7                                        |         r1 = r7;
    0x0000d2bc mov r0, r8                                        |         r0 = r8;
    0x0000d2c0 bl 0x8f78                                         |         r0 = link ();
    0x0000d2c4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000d2c8 ldrbeq r3, [r5, 0xc]                              |             r3 = *((r5 + 0xc));
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0000d2cc orreq r3, r3, 1                                   |             r3 |= 1;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0000d2d0 strbeq r3, [r5, 0xc]                              |             *((r5 + 0xc)) = r3;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x0000d2d4 beq 0xd2ec                                        |             goto label_11;
                                                                 |         }
                                                                 |         if (r0 >= 0) {
    0x0000d2d8 bge 0xd2ec                                        |             goto label_11;
                                                                 |         }
    0x0000d2dc bl 0x8f6c                                         |         r0 = errno_location ();
    0x0000d2e0 ldr r4, [r0]                                      |         r4 = *(r0);
    0x0000d2e4 cmp r4, 0x11                                      |         
    0x0000d2e8 bne 0xd264                                        |         
                                                                 |     } while (r4 != 0x11);
                                                                 | label_11:
    0x0000d2ec ldr r1, [pc, 0x394]                               |     r1 = *(0xd684);
    0x0000d2f0 mov r0, r7                                        |     r0 = r7;
    0x0000d2f4 bl 0x8ba0                                         |     r0 = open64 ();
    0x0000d2f8 cmp r0, 0                                         |     
    0x0000d2fc str r0, [r5, 8]                                   |     *((r5 + 8)) = r0;
                                                                 |     if (r0 >= 0) {
    0x0000d300 bge 0xd33c                                        |         goto label_12;
                                                                 |     }
    0x0000d304 bl 0x8f6c                                         |     r0 = errno_location ();
    0x0000d308 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000d30c add r0, sp, 0x58                                  |     r0 += var_58h;
    0x0000d310 bl 0x947c                                         |     fcn_0000947c (r0);
    0x0000d314 cmp r4, 2                                         |     
                                                                 |     if (r4 != 2) {
    0x0000d318 bne 0xd264                                        |         goto label_2;
                                                                 |     }
    0x0000d31c ldr r2, [sp, 0x58]                                |     r2 = var_58h;
    0x0000d320 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0000d324 cmp r2, r3                                        |     
                                                                 |     if (r2 >= r3) {
    0x0000d328 bge 0xd270                                        |         goto label_3;
                                                                 |     }
    0x0000d32c ldrb r3, [r5, 0xc]                                |     r3 = *((r5 + 0xc));
    0x0000d330 bic r3, r3, 1                                     |     r3 = BIT_MASK (r3, 1);
    0x0000d334 strb r3, [r5, 0xc]                                |     *((r5 + 0xc)) = r3;
    0x0000d338 b 0xd2ac                                          |     goto label_4;
                                                                 | label_12:
    0x0000d33c mov r3, 1                                         |     r3 = 1;
    0x0000d340 str r3, [sp, 0x58]                                |     var_58h = r3;
    0x0000d344 mov r2, 0                                         |     r2 = 0;
    0x0000d348 mov r3, 0                                         |     r3 = 0;
    0x0000d34c strd r2, r3, [sp, 0x60]                           |     __asm ("strd r2, r3, [var_60h]");
    0x0000d350 strd r2, r3, [sp, 0x68]                           |     __asm ("strd r2, r3, [var_68h]");
    0x0000d354 ldrb r3, [r5, 0xc]                                |     r3 = *((r5 + 0xc));
    0x0000d358 tst r3, 1                                         |     
    0x0000d35c ldr r3, [pc, 0x2fc]                               |     r3 = *(0xd65c);
    0x0000d360 ldr sb, [r6, r3]                                  |     sb = *((r6 + r3));
                                                                 |     if ((r3 & 1) != 0) {
    0x0000d364 beq 0xd450                                        |         
    0x0000d368 add r2, sp, 0x58                                  |         r2 += var_58h;
    0x0000d36c mov r1, 0xd                                       |         r1 = 0xd;
    0x0000d370 bl 0x8264                                         |         r0 = fcntl64 ();
    0x0000d374 cmn r0, 1                                         |         
                                                                 |         if (r0 == 1) {
    0x0000d378 bne 0xd3dc                                        |             
    0x0000d37c ldr r3, [sb]                                      |             r3 = *(sb);
    0x0000d380 tst r3, 0x10                                      |             
                                                                 |             if ((r3 & 0x10) == 0) {
    0x0000d384 beq 0xd3dc                                        |                 goto label_10;
                                                                 |             }
    0x0000d388 ldr r3, [pc, 0x2d4]                               |             r3 = *(0xd660);
    0x0000d38c ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x0000d390 ldr r4, [r3]                                      |             r4 = *(0xd660);
    0x0000d394 bl 0x8204                                         |             getpid ();
    0x0000d398 ldr r3, [pc, 0x2ec]                               |             r3 = *(0xd688);
    0x0000d39c ldr r1, [pc, 0x2ec]                               |             r1 = *(0xd68c);
    0x0000d3a0 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d3a4 str r3, [sp]                                      |             *(sp) = r3;
    0x0000d3a8 ldr r3, [pc, 0x2e4]                               |             r3 = *(0xd690);
    0x0000d3ac add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d3b0 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d3b4 mov r2, r0                                        |             r2 = r0;
    0x0000d3b8 mov r0, r4                                        |             r0 = r4;
    0x0000d3bc bl 0x8798                                         |             r0 = fprintf (r0, r1, r2, r3)
    0x0000d3c0 bl 0x8f6c                                         |             errno_location ();
    0x0000d3c4 ldr r1, [pc, 0x2cc]                               |             r1 = *(0xd694);
    0x0000d3c8 mov r2, r7                                        |             r2 = r7;
    0x0000d3cc add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d3d0 ldr r3, [r0]                                      |             r3 = *(r0);
    0x0000d3d4 mov r0, r5                                        |             r0 = r5;
    0x0000d3d8 bl 0xc708                                         |             fcn_0000c708 (r0);
                                                                 |         }
                                                                 | label_10:
    0x0000d3dc ldr r3, [pc, 0x27c]                               |         
    0x0000d3e0 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000d3e4 ldr r3, [r3]                                      |         r3 = *(0xd65c);
    0x0000d3e8 tst r3, 0x10                                      |         
                                                                 |         if ((r3 & 0x10) != 0) {
    0x0000d3ec beq 0xd444                                        |             
    0x0000d3f0 ldr r3, [pc, 0x26c]                               |             r3 = *(0xd660);
    0x0000d3f4 ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x0000d3f8 ldr r4, [r3]                                      |             r4 = *(0xd660);
    0x0000d3fc bl 0x8204                                         |             getpid ();
    0x0000d400 ldr r3, [pc, 0x294]                               |             r3 = *(0xd698);
    0x0000d404 ldr r1, [pc, 0x294]                               |             r1 = *(0xd69c);
    0x0000d408 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d40c str r3, [sp]                                      |             *(sp) = r3;
    0x0000d410 ldr r3, [pc, 0x28c]                               |             r3 = *(0xd6a0);
    0x0000d414 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d418 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d41c mov r2, r0                                        |             r2 = r0;
    0x0000d420 mov r0, r4                                        |             r0 = r4;
    0x0000d424 bl 0x8798                                         |             r0 = fprintf (r0, r1, r2, r3)
    0x0000d428 bl 0x8204                                         |             getpid ();
    0x0000d42c ldr r1, [pc, 0x274]                               |             r1 = *(0xd6a4);
    0x0000d430 mov r2, r7                                        |             r2 = r7;
    0x0000d434 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d438 mov r3, r0                                        |             r3 = r0;
    0x0000d43c mov r0, r5                                        |             r0 = r5;
    0x0000d440 bl 0xc708                                         |             fcn_0000c708 (r0);
                                                                 |         }
    0x0000d444 mov r0, r8                                        |         r0 = r8;
    0x0000d448 bl 0x8978                                         |         unlink (r0);
    0x0000d44c b 0xd1ac                                          |         goto label_5;
                                                                 |     }
    0x0000d450 add r0, sp, 0x28                                  |     r0 += var_28h;
    0x0000d454 ldr r4, [sp, 0x20]                                |     r4 = var_20h;
    0x0000d458 bl 0x947c                                         |     fcn_0000947c (r0);
    0x0000d45c ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000d460 tst r3, 0x10                                      |     
                                                                 |     if ((r3 & 0x10) != 0) {
    0x0000d464 beq 0xd4c8                                        |         
    0x0000d468 ldr r3, [pc, 0x1f4]                               |         r3 = *(0xd660);
    0x0000d46c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000d470 ldr sl, [r3]                                      |         sl = *(0xd660);
    0x0000d474 bl 0x8204                                         |         getpid ();
    0x0000d478 ldr r3, [pc, 0x22c]                               |         r3 = *(0xd6a8);
    0x0000d47c ldr r1, [pc, 0x22c]                               |         r1 = *(0xd6ac);
    0x0000d480 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d484 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d488 ldr r3, [pc, 0x224]                               |         r3 = *(0xd6b0);
    0x0000d48c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d490 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d494 mov r2, r0                                        |         r2 = r0;
    0x0000d498 mov r0, sl                                        |         r0 = sl;
    0x0000d49c bl 0x8798                                         |         r0 = fprintf (r0, r1, r2, r3)
    0x0000d4a0 bl 0x8204                                         |         getpid ();
    0x0000d4a4 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x0000d4a8 ldr r1, [pc, 0x208]                               |         r1 = *(0xd6b4);
    0x0000d4ac sub r2, r4, r3                                    |         r2 = r4 - r3;
    0x0000d4b0 str r2, [sp, 4]                                   |         var_4h = r2;
    0x0000d4b4 str r4, [sp]                                      |         *(sp) = r4;
    0x0000d4b8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d4bc mov r2, r0                                        |         r2 = r0;
    0x0000d4c0 mov r0, r5                                        |         r0 = r5;
    0x0000d4c4 bl 0xc708                                         |         fcn_0000c708 (r0);
                                                                 |     }
    0x0000d4c8 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0000d4cc cmp r4, r3                                        |     
                                                                 |     if (r4 > r3) {
    0x0000d4d0 ble 0xd5cc                                        |         
    0x0000d4d4 mov r3, 0                                         |         r3 = 0;
    0x0000d4d8 add r1, sp, 0x78                                  |         r1 += var_78h;
    0x0000d4dc add r0, sp, 0x3c                                  |         r0 += var_3ch;
    0x0000d4e0 add sl, sp, 0x44                                  |         sl += var_44h;
    0x0000d4e4 str r3, [sp, 0x34]                                |         var_34h = r3;
    0x0000d4e8 str r3, [sp, 0x10]                                |         var_10h = r3;
    0x0000d4ec str fp, [r1, -0x48]!                              |         *((r1 -= 0x48)) = fp;
    0x0000d4f0 str r1, [sp, 0xc]                                 |         var_ch = r1;
    0x0000d4f4 str r1, [sp, 0x14]                                |         var_14h = r1;
    0x0000d4f8 bl 0x8a14                                         |         sigfillset ();
    0x0000d4fc mov r2, sl                                        |         r2 = sl;
    0x0000d500 ldr r1, [sp, 0xc]                                 |         r1 = var_ch;
    0x0000d504 mov r0, 0xe                                       |         r0 = 0xe;
    0x0000d508 bl 0x8ab0                                         |         sigaction ();
    0x0000d50c ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x0000d510 sub r0, r4, r0                                    |         r0 = r4 - r0;
    0x0000d514 bl 0x8624                                         |         alarm ();
    0x0000d518 add r2, sp, 0x58                                  |         r2 += var_58h;
    0x0000d51c mov r1, 0xe                                       |         r1 = 0xe;
    0x0000d520 ldr r0, [r5, 8]                                   |         r0 = *((r5 + 8));
    0x0000d524 bl 0x8264                                         |         fcntl64 ();
    0x0000d528 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0000d52c cmn r0, 1                                         |         
                                                                 |         if (r0 == 1) {
    0x0000d530 movne r4, r3                                      |             r4 = r3;
                                                                 |         }
                                                                 |         if (r0 == 1) {
    0x0000d534 bne 0xd54c                                        |             
    0x0000d538 bl 0x8f6c                                         |             r0 = errno_location ();
    0x0000d53c ldr r4, [r0]                                      |             r4 = *(r0);
    0x0000d540 cmp r4, 4                                         |             
    0x0000d544 rsbne r4, r4, 0                                   |             __asm ("rsbne r4, r4, 0");
                                                                 |             if (r4 == 4) {
    0x0000d548 moveq r4, 1                                       |                 r4 = 1;
                                                                 |                 goto label_13;
                                                                 |             }
                                                                 |         }
                                                                 | label_13:
    0x0000d54c mov r0, 0                                         |         r0 = 0;
    0x0000d550 bl 0x8624                                         |         alarm ();
    0x0000d554 mov r2, 0                                         |         r2 = 0;
    0x0000d558 mov r1, sl                                        |         r1 = sl;
    0x0000d55c mov r0, 0xe                                       |         r0 = 0xe;
    0x0000d560 bl 0x8ab0                                         |         sigaction ();
    0x0000d564 ldr r3, [sb]                                      |         r3 = *(sb);
    0x0000d568 tst r3, 0x10                                      |         
                                                                 |         if ((r3 & 0x10) != 0) {
    0x0000d56c beq 0xd5c4                                        |             
    0x0000d570 ldr r3, [pc, 0xec]                                |             r3 = *(0xd660);
    0x0000d574 ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x0000d578 ldr sl, [r3]                                      |             sl = *(0xd660);
    0x0000d57c bl 0x8204                                         |             getpid ();
    0x0000d580 ldr r3, [pc, 0x134]                               |             r3 = *(0xd6b8);
    0x0000d584 ldr r1, [pc, 0x134]                               |             r1 = *(0xd6bc);
    0x0000d588 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d58c str r3, [sp]                                      |             *(sp) = r3;
    0x0000d590 ldr r3, [pc, 0x12c]                               |             r3 = *(0xd6c0);
    0x0000d594 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d598 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d59c mov r2, r0                                        |             r2 = r0;
    0x0000d5a0 mov r0, sl                                        |             r0 = sl;
    0x0000d5a4 bl 0x8798                                         |             r0 = fprintf (r0, r1, r2, r3)
    0x0000d5a8 bl 0x8204                                         |             getpid ();
    0x0000d5ac ldr r1, [pc, 0x114]                               |             r1 = *(0xd6c4);
    0x0000d5b0 mov r3, r4                                        |             r3 = r4;
    0x0000d5b4 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d5b8 mov r2, r0                                        |             r2 = r0;
    0x0000d5bc mov r0, r5                                        |             r0 = r5;
    0x0000d5c0 bl 0xc708                                         |             fcn_0000c708 (r0);
                                                                 |         }
    0x0000d5c4 cmp r4, 1                                         |         
                                                                 |         if (r4 != 1) {
    0x0000d5c8 bne 0xd62c                                        |             goto label_14;
                                                                 |         }
                                                                 |     }
    0x0000d5cc ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000d5d0 tst r3, 0x10                                      |     
                                                                 |     if ((r3 & 0x10) != 0) {
    0x0000d5d4 beq 0xd624                                        |         
    0x0000d5d8 ldr r3, [pc, 0x84]                                |         r3 = *(0xd660);
    0x0000d5dc ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000d5e0 ldr r4, [r3]                                      |         r4 = *(0xd660);
    0x0000d5e4 bl 0x8204                                         |         getpid ();
    0x0000d5e8 ldr r3, [pc, 0xdc]                                |         r3 = *(0xd6c8);
    0x0000d5ec ldr r1, [pc, 0xdc]                                |         r1 = *(0xd6cc);
    0x0000d5f0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d5f4 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d5f8 ldr r3, [pc, 0xd4]                                |         r3 = *(0xd6d0);
    0x0000d5fc add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d600 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d604 mov r2, r0                                        |         r2 = r0;
    0x0000d608 mov r0, r4                                        |         r0 = r4;
    0x0000d60c bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0000d610 ldr r1, [pc, 0xc0]                                |         r1 = *(0xd6d4);
    0x0000d614 mov r2, r7                                        |         r2 = r7;
    0x0000d618 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d61c mov r0, r5                                        |         r0 = r5;
    0x0000d620 bl 0xc708                                         |         fcn_0000c708 (r0);
                                                                 |     }
    0x0000d624 mvn r4, 0x6d                                      |     r4 = ~0x6d;
    0x0000d628 b 0xd274                                          |     goto label_6;
                                                                 | label_14:
    0x0000d62c cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x0000d630 blt 0xd274                                        |         goto label_6;
                                                                 |     }
    0x0000d634 mov r1, 0                                         |     r1 = 0;
    0x0000d638 add r0, sp, 0x18                                  |     r0 += var_18h;
    0x0000d63c bl 0x86cc                                         |     nanosleep ();
    0x0000d640 ldr r0, [r5, 8]                                   |     r0 = *((r5 + 8));
    0x0000d644 bl 0x917c                                         |     close (r0);
    0x0000d648 mvn r3, 0                                         |     r3 = ~0;
    0x0000d64c str r3, [r5, 8]                                   |     *((r5 + 8)) = r3;
    0x0000d650 b 0xd2ac                                          |     goto label_4;
                                                                 | label_7:
    0x0000d654 mvn r4, 0x15                                      |     r4 = ~0x15;
    0x0000d658 b 0xd170                                          |     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/lib/libmount.so.1.1.0 @ 0x283fc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.mnt_monitor_close_fd ()      | void mnt_monitor_close_fd (int32_t arg1) {
                                             |     int32_t var_0h;
                                             |     int32_t var_8h;
                                             |     int32_t var_ch;
                                             |     int32_t var_1ch;
                                             |     r0 = arg1;
    0x000283fc push {r4, r5, r6, r7, lr}     |     
    0x00028400 ldr r5, [pc, 0xec]            |     r5 = *(0x284f0);
    0x00028404 subs r4, r0, 0                |     r4 = r0 - 0;
    0x00028408 add r5, pc, r5                |     r5 = pc + r5;
    0x0002840c sub sp, sp, 0x1c              |     
                                             |     if (r4 != r0) {
    0x00028410 mvneq r0, 0x15                |         r0 = ~0x15;
                                             |     }
                                             |     if (r4 == r0) {
    0x00028414 beq 0x284c0                   |         goto label_0;
                                             |     }
    0x00028418 add r6, sp, 0xc               |     r6 += var_ch;
    0x0002841c mov r1, 0                     |     r1 = 0;
    0x00028420 mov r0, r6                    |     r0 = r6;
    0x00028424 bl 0x8588                     |     fcn_00008588 ();
    0x00028428 add r7, sp, 8                 |     r7 += var_8h;
                                             |     do {
    0x0002842c mov r2, r7                    |         r2 = r7;
    0x00028430 mov r1, r6                    |         r1 = r6;
    0x00028434 mov r0, r4                    |         r0 = r4;
    0x00028438 bl 0x270f8                    |         fcn_000270f8 (r0, r1);
    0x0002843c ldr r3, [r4, 4]               |         r3 = *((r4 + 4));
    0x00028440 subs r2, r0, 0                |         r2 = r0 - 0;
                                             |         if (r2 != r0) {
    0x00028444 beq 0x284c8                   |             
    0x00028448 cmp r3, 0                     |             
                                             |             if (r3 >= 0) {
    0x0002844c blt 0x284b4                   |                 
    0x00028450 ldr r3, [pc, 0xa0]            |                 
    0x00028454 ldr r3, [r5, r3]              |                 r3 = *((r5 + r3));
    0x00028458 ldr r3, [r3]                  |                 r3 = *(0x284f4);
    0x0002845c tst r3, 0x800                 |                 
                                             |                 if ((r3 & 0x800) != 0) {
    0x00028460 beq 0x284ac                   |                     
    0x00028464 ldr r3, [pc, 0x90]            |                     r3 = *(0x284f8);
    0x00028468 ldr r3, [r5, r3]              |                     r3 = *((r5 + r3));
    0x0002846c ldr r5, [r3]                  |                     r5 = *(0x284f8);
    0x00028470 bl 0x8204                     |                     getpid ();
    0x00028474 ldr r3, [pc, 0x84]            |                     r3 = *(0x284fc);
    0x00028478 ldr r1, [pc, 0x84]            |                     r1 = *(0x28500);
    0x0002847c add r3, pc, r3                |                     r3 = pc + r3;
    0x00028480 str r3, [sp]                  |                     *(sp) = r3;
    0x00028484 ldr r3, [pc, 0x7c]            |                     r3 = *(0x28504);
    0x00028488 add r1, pc, r1                |                     r1 = pc + r1;
    0x0002848c add r3, pc, r3                |                     r3 = pc + r3;
    0x00028490 mov r2, r0                    |                     r2 = r0;
    0x00028494 mov r0, r5                    |                     r0 = r5;
    0x00028498 bl 0x8798                     |                     fprintf (r0, r1, r2, r3)
    0x0002849c ldr r1, [pc, 0x68]            |                     r1 = *(0x28508);
    0x000284a0 mov r0, r4                    |                     r0 = r4;
    0x000284a4 add r1, pc, r1                |                     r1 = pc + r1;
    0x000284a8 bl 0x27038                    |                     fcn_00027038 (r0);
                                             |                 }
    0x000284ac ldr r0, [r4, 4]               |                 r0 = *((r4 + 4));
    0x000284b0 bl 0x917c                     |                 close (r0);
                                             |             }
    0x000284b4 mvn r3, 0                     |             r3 = ~0;
    0x000284b8 mov r0, 0                     |             r0 = 0;
    0x000284bc str r3, [r4, 4]               |             *((r4 + 4)) = r3;
                                             | label_0:
    0x000284c0 add sp, sp, 0x1c              |             
    0x000284c4 pop {r4, r5, r6, r7, pc}      |             
                                             |         }
    0x000284c8 cmp r3, 0                     |         
                                             |         if (r3 >= 0) {
    0x000284cc blt 0x284dc                   |             
    0x000284d0 ldr r1, [sp, 8]               |             r1 = var_8h;
    0x000284d4 mov r0, r4                    |             r0 = r4;
    0x000284d8 bl 0x27364                    |             fcn_00027364 (r0, r1);
                                             |         }
    0x000284dc ldr r1, [sp, 8]               |         r1 = var_8h;
    0x000284e0 mov r0, r4                    |         r0 = r4;
    0x000284e4 ldr r3, [r1, 0x10]            |         r3 = *((r1 + 0x10));
    0x000284e8 ldr r3, [r3, 4]               |         r3 = *((r3 + 4));
    0x000284ec blx r3                        |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x000284f0 b 0x2842c                     |         
                                             |     } 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/lib/libmount.so.1.1.0 @ 0x28220 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_monitor_enable_kernel ()             | void mnt_monitor_enable_kernel (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00028220 push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x00028224 ldr r7, [pc, 0x19c]                       |     r7 = *(0x283c4);
    0x00028228 subs r4, r0, 0                            |     r4 = r0 - 0;
    0x0002822c add r7, pc, r7                            |     r7 = pc + r7;
                                                         |     if (r4 == r0) {
    0x00028230 beq 0x283b8                               |         goto label_1;
                                                         |     }
    0x00028234 mov r6, r1                                |     r6 = r1;
    0x00028238 mov r1, 2                                 |     r1 = 2;
    0x0002823c bl 0x271a0                                |     r0 = fcn_000271a0 (r0, r1);
    0x00028240 subs r8, r0, 0                            |     r8 = r0 - 0;
                                                         |     if (r8 == r0) {
    0x00028244 beq 0x2827c                               |         goto label_2;
                                                         |     }
    0x00028248 mov r2, r6                                |     r2 = r6;
    0x0002824c mov r1, r8                                |     r1 = r8;
    0x00028250 mov r0, r4                                |     r0 = r4;
    0x00028254 bl 0x27364                                |     fcn_00027364 (r0, r1);
    0x00028258 cmp r6, 0                                 |     
    0x0002825c mov r5, r0                                |     r5 = r0;
                                                         |     if (r6 != 0) {
    0x00028260 bne 0x28270                               |         goto label_0;
                                                         |     }
    0x00028264 mov r1, r8                                |     r1 = r8;
    0x00028268 mov r0, r4                                |     r0 = r4;
    0x0002826c bl 0x27308                                |     fcn_00027308 (r0);
                                                         |     do {
                                                         | label_0:
    0x00028270 mov r0, r5                                |         r0 = r5;
    0x00028274 add sp, sp, 8                             |         
    0x00028278 pop {r4, r5, r6, r7, r8, pc}              |         
                                                         | label_2:
    0x0002827c cmp r6, 0                                 |         
                                                         |         if (r6 == 0) {
    0x00028280 beq 0x283c0                               |             goto label_3;
                                                         |         }
    0x00028284 ldr r3, [pc, 0x140]                       |         r3 = *(0x283c8);
    0x00028288 ldr r8, [r7, r3]                          |         r8 = *((r7 + r3));
    0x0002828c ldr r3, [r8]                              |         r3 = *(r8);
    0x00028290 tst r3, 0x800                             |         
                                                         |         if ((r3 & 0x800) != 0) {
    0x00028294 beq 0x282e0                               |             
    0x00028298 ldr r3, [pc, 0x130]                       |             r3 = *(0x283cc);
    0x0002829c ldr r3, [r7, r3]                          |             r3 = *((r7 + r3));
    0x000282a0 ldr r5, [r3]                              |             r5 = *(0x283cc);
    0x000282a4 bl 0x8204                                 |             getpid ();
    0x000282a8 ldr r3, [pc, 0x124]                       |             r3 = *(0x283d0);
    0x000282ac ldr r1, [pc, 0x124]                       |             r1 = *(0x283d4);
    0x000282b0 add r3, pc, r3                            |             r3 = pc + r3;
    0x000282b4 str r3, [sp]                              |             *(sp) = r3;
    0x000282b8 ldr r3, [pc, 0x11c]                       |             r3 = *(0x283d8);
    0x000282bc add r1, pc, r1                            |             r1 = pc + r1;
    0x000282c0 add r3, pc, r3                            |             r3 = pc + r3;
    0x000282c4 mov r2, r0                                |             r2 = r0;
    0x000282c8 mov r0, r5                                |             r0 = r5;
    0x000282cc bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x000282d0 ldr r1, [pc, 0x108]                       |             r1 = *(0x283dc);
    0x000282d4 mov r0, r4                                |             r0 = r4;
    0x000282d8 add r1, pc, r1                            |             r1 = pc + r1;
    0x000282dc bl 0x27038                                |             fcn_00027038 (r0);
                                                         |         }
    0x000282e0 mov r0, r4                                |         r0 = r4;
    0x000282e4 bl 0x27290                                |         r0 = fcn_00027290 (r0);
    0x000282e8 subs r6, r0, 0                            |         r6 = r0 - 0;
                                                         |         if (r6 != r0) {
    0x000282ec beq 0x28340                               |             
    0x000282f0 mov r3, 0x80000001                        |             r3 = 0x80000001;
    0x000282f4 str r3, [r6, 0xc]                         |             *((r6 + 0xc)) = r3;
    0x000282f8 mov r3, 2                                 |             r3 = 2;
    0x000282fc str r3, [r6, 8]                           |             *((r6 + 8)) = r3;
    0x00028300 ldr r3, [pc, 0xdc]                        |             
    0x00028304 ldr r0, [pc, 0xdc]                        |             r0 = *(0x283e4);
    0x00028308 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002830c add r3, r3, 0xc                           |             r3 = 0x283ec;
    0x00028310 str r3, [r6, 0x10]                        |             *((r6 + 0x10)) = r3;
    0x00028314 add r0, pc, r0                            |             r0 = pc + r0;
    0x00028318 bl 0x8ae0                                 |             r0 = strdup (r0);
    0x0002831c cmp r0, 0                                 |             
    0x00028320 str r0, [r6, 4]                           |             *((r6 + 4)) = r0;
                                                         |             if (r0 == 0) {
    0x00028324 beq 0x28340                               |                 goto label_4;
                                                         |             }
    0x00028328 mov r2, 1                                 |             r2 = 1;
    0x0002832c mov r1, r6                                |             r1 = r6;
    0x00028330 mov r0, r4                                |             r0 = r4;
    0x00028334 add sp, sp, 8                             |             
    0x00028338 pop {r4, r5, r6, r7, r8, lr}              |             
    0x0002833c b 0x27364                                 |             void (*0x27364)() ();
                                                         |         }
                                                         | label_4:
    0x00028340 bl 0x8f6c                                 |         errno_location ();
    0x00028344 cmp r6, 0                                 |         
    0x00028348 ldr r5, [r0]                              |         r5 = *(r0);
    0x0002834c rsb r5, r5, 0                             |         r5 -= ;
                                                         |         if (r6 != 0) {
    0x00028350 beq 0x2835c                               |             
    0x00028354 mov r0, r6                                |             r0 = r6;
    0x00028358 bl 0x271f8                                |             fcn_000271f8 (r0);
                                                         |         }
    0x0002835c ldr r3, [r8]                              |         r3 = *(r8);
    0x00028360 tst r3, 0x800                             |         
    0x00028364 beq 0x28270                               |         
                                                         |     } while ((r3 & 0x800) == 0);
    0x00028368 ldr r3, [pc, 0x60]                        |     r3 = *(0x283cc);
    0x0002836c ldr r3, [r7, r3]                          |     r3 = *((r7 + r3));
    0x00028370 ldr r6, [r3]                              |     r6 = *(0x283cc);
    0x00028374 bl 0x8204                                 |     getpid ();
    0x00028378 ldr r3, [pc, 0x6c]                        |     r3 = *(0x283e8);
    0x0002837c ldr r1, [pc, 0x6c]                        |     r1 = *(0x283ec);
    0x00028380 add r3, pc, r3                            |     r3 = pc + r3;
    0x00028384 str r3, [sp]                              |     *(sp) = r3;
    0x00028388 ldr r3, [pc, 0x64]                        |     r3 = *(0x283f0);
    0x0002838c add r1, pc, r1                            |     r1 = pc + r1;
    0x00028390 add r3, pc, r3                            |     r3 = pc + r3;
    0x00028394 mov r2, r0                                |     r2 = r0;
    0x00028398 mov r0, r6                                |     r0 = r6;
    0x0002839c bl 0x8798                                 |     fprintf (r0, r1, r2, r3)
    0x000283a0 ldr r1, [pc, 0x50]                        |     r1 = *(0x283f4);
    0x000283a4 mov r2, r5                                |     r2 = r5;
    0x000283a8 add r1, pc, r1                            |     r1 = pc + r1;
    0x000283ac mov r0, r4                                |     r0 = r4;
    0x000283b0 bl 0x27038                                |     fcn_00027038 (r0);
    0x000283b4 b 0x28270                                 |     goto label_0;
                                                         | label_1:
    0x000283b8 mvn r5, 0x15                              |     r5 = ~0x15;
    0x000283bc b 0x28270                                 |     goto label_0;
                                                         | label_3:
    0x000283c0 mov r5, r6                                |     r5 = r6;
    0x000283c4 b 0x28270                                 |     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/lib/libmount.so.1.1.0 @ 0x27fd4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_monitor_enable_userspace ()                  | void mnt_monitor_enable_userspace (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00027fd4 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x00027fd8 ldr r7, [pc, 0x200]                               |     r7 = *(0x281dc);
    0x00027fdc subs r5, r0, 0                                    |     r5 = r0 - 0;
    0x00027fe0 add r7, pc, r7                                    |     r7 = pc + r7;
    0x00027fe4 bne 0x27ff0                                       |     
                                                                 |     while ((r3 & 0x800) == 0) {
                                                                 | label_0:
    0x00027fe8 mvn r4, 0x15                                      |         r4 = ~0x15;
    0x00027fec b 0x28030                                         |         goto label_1;
    0x00027ff0 mov r6, r1                                        |         r6 = r1;
    0x00027ff4 mov r1, 1                                         |         r1 = 1;
    0x00027ff8 mov sb, r2                                        |         sb = r2;
    0x00027ffc bl 0x271a0                                        |         r0 = fcn_000271a0 (r0, r1);
    0x00028000 subs r8, r0, 0                                    |         r8 = r0 - 0;
                                                                 |         if (r8 != r0) {
    0x00028004 beq 0x2803c                                       |             
    0x00028008 mov r2, r6                                        |             r2 = r6;
    0x0002800c mov r1, r8                                        |             r1 = r8;
    0x00028010 mov r0, r5                                        |             r0 = r5;
    0x00028014 bl 0x27364                                        |             fcn_00027364 (r0, r1);
    0x00028018 cmp r6, 0                                         |             
    0x0002801c mov r4, r0                                        |             r4 = r0;
                                                                 |             if (r6 == 0) {
    0x00028020 bne 0x28030                                       |                 
    0x00028024 mov r1, r8                                        |                 r1 = r8;
    0x00028028 mov r0, r5                                        |                 r0 = r5;
    0x0002802c bl 0x27234                                        |                 fcn_00027234 (r0);
                                                                 |             }
                                                                 | label_1:
    0x00028030 mov r0, r4                                        |             r0 = r4;
    0x00028034 add sp, sp, 0xc                                   |             
    0x00028038 pop {r4, r5, r6, r7, r8, sb, pc}                  |             
                                                                 |         }
    0x0002803c cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00028040 beq 0x281d8                                       |             goto label_2;
                                                                 |         }
    0x00028044 ldr r3, [pc, 0x198]                               |         r3 = *(0x281e0);
    0x00028048 ldr r8, [r7, r3]                                  |         r8 = *((r7 + r3));
    0x0002804c ldr r3, [r8]                                      |         r3 = *(r8);
    0x00028050 tst r3, 0x800                                     |         
                                                                 |         if ((r3 & 0x800) != 0) {
    0x00028054 beq 0x280a0                                       |             
    0x00028058 ldr r3, [pc, 0x188]                               |             r3 = *(0x281e4);
    0x0002805c ldr r3, [r7, r3]                                  |             r3 = *((r7 + r3));
    0x00028060 ldr r4, [r3]                                      |             r4 = *(0x281e4);
    0x00028064 bl 0x8204                                         |             getpid ();
    0x00028068 ldr r3, [pc, 0x17c]                               |             r3 = *(0x281e8);
    0x0002806c ldr r1, [pc, 0x17c]                               |             r1 = *(0x281ec);
    0x00028070 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00028074 str r3, [sp]                                      |             *(sp) = r3;
    0x00028078 ldr r3, [pc, 0x174]                               |             r3 = *(0x281f0);
    0x0002807c add r1, pc, r1                                    |             r1 = pc + r1;
    0x00028080 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00028084 mov r2, r0                                        |             r2 = r0;
    0x00028088 mov r0, r4                                        |             r0 = r4;
    0x0002808c bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
    0x00028090 ldr r1, [pc, 0x160]                               |             r1 = *(0x281f4);
    0x00028094 mov r0, r5                                        |             r0 = r5;
    0x00028098 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0002809c bl 0x27038                                        |             fcn_00027038 (r0);
                                                                 |         }
    0x000280a0 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x000280a4 bne 0x2810c                                       |             goto label_3;
                                                                 |         }
    0x000280a8 bl 0x19934                                        |         r0 = fcn_00019934 ();
    0x000280ac subs sb, r0, 0                                    |         sb = r0 - 0;
                                                                 |         if (sb != r0) {
    0x000280b0 bne 0x2810c                                       |             goto label_3;
                                                                 |         }
    0x000280b4 ldr r3, [r8]                                      |         r3 = *(r8);
    0x000280b8 tst r3, 0x800                                     |         
    0x000280bc beq 0x27fe8                                       |         
                                                                 |     }
    0x000280c0 ldr r3, [pc, 0x120]                               |     r3 = *(0x281e4);
    0x000280c4 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x000280c8 ldr r4, [r3]                                      |     r4 = *(0x281e4);
    0x000280cc bl 0x8204                                         |     getpid ();
    0x000280d0 ldr r3, [pc, 0x124]                               |     r3 = *(0x281f8);
    0x000280d4 ldr r1, [pc, 0x124]                               |     r1 = *(0x281fc);
    0x000280d8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000280dc str r3, [sp]                                      |     *(sp) = r3;
    0x000280e0 ldr r3, [pc, 0x11c]                               |     r3 = *(0x28200);
    0x000280e4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000280e8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000280ec mov r2, r0                                        |     r2 = r0;
    0x000280f0 mov r0, r4                                        |     r0 = r4;
    0x000280f4 bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x000280f8 ldr r1, [pc, 0x108]                               |     r1 = *(0x28204);
    0x000280fc mov r0, r5                                        |     r0 = r5;
    0x00028100 add r1, pc, r1                                    |     r1 = pc + r1;
    0x00028104 bl 0x27038                                        |     fcn_00027038 (r0);
    0x00028108 b 0x27fe8                                         |     goto label_0;
                                                                 | label_3:
    0x0002810c mov r0, r5                                        |     r0 = r5;
    0x00028110 bl 0x27290                                        |     r0 = fcn_00027290 (r0);
    0x00028114 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 != r0) {
    0x00028118 beq 0x28160                                       |         
    0x0002811c ldr r3, [pc, 0xe8]                                |         r3 = *(0x28208);
    0x00028120 mov r4, 1                                         |         r4 = 1;
    0x00028124 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00028128 str r4, [r6, 8]                                   |         *((r6 + 8)) = r4;
    0x0002812c str r3, [r6, 0x10]                                |         *((r6 + 0x10)) = r3;
    0x00028130 str r4, [r6, 0xc]                                 |         *((r6 + 0xc)) = r4;
    0x00028134 mov r0, sb                                        |         r0 = sb;
    0x00028138 bl 0x8ae0                                         |         r0 = strdup (r0);
    0x0002813c cmp r0, 0                                         |         
    0x00028140 str r0, [r6, 4]                                   |         *((r6 + 4)) = r0;
                                                                 |         if (r0 == 0) {
    0x00028144 beq 0x28160                                       |             goto label_4;
                                                                 |         }
    0x00028148 mov r2, r4                                        |         r2 = r4;
    0x0002814c mov r1, r6                                        |         r1 = r6;
    0x00028150 mov r0, r5                                        |         r0 = r5;
    0x00028154 add sp, sp, 0xc                                   |         
    0x00028158 pop {r4, r5, r6, r7, r8, sb, lr}                  |         
    0x0002815c b 0x27364                                         |         void (*0x27364)() ();
                                                                 |     }
                                                                 | label_4:
    0x00028160 bl 0x8f6c                                         |     errno_location ();
    0x00028164 cmp r6, 0                                         |     
    0x00028168 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0002816c rsb r4, r4, 0                                     |     r4 -= ;
                                                                 |     if (r6 != 0) {
    0x00028170 beq 0x2817c                                       |         
    0x00028174 mov r0, r6                                        |         r0 = r6;
    0x00028178 bl 0x271f8                                        |         fcn_000271f8 (r0);
                                                                 |     }
    0x0002817c ldr r3, [r8]                                      |     r3 = *(r8);
    0x00028180 tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) == 0) {
    0x00028184 beq 0x28030                                       |         goto label_1;
                                                                 |     }
    0x00028188 ldr r3, [pc, 0x58]                                |     r3 = *(0x281e4);
    0x0002818c ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00028190 ldr r6, [r3]                                      |     r6 = *(0x281e4);
    0x00028194 bl 0x8204                                         |     getpid ();
    0x00028198 ldr r3, [pc, 0x70]                                |     r3 = *(0x2820c);
    0x0002819c ldr r1, [pc, 0x70]                                |     r1 = *(0x28210);
    0x000281a0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000281a4 str r3, [sp]                                      |     *(sp) = r3;
    0x000281a8 ldr r3, [pc, 0x68]                                |     r3 = *(0x28214);
    0x000281ac add r1, pc, r1                                    |     r1 = pc + r1;
    0x000281b0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000281b4 mov r2, r0                                        |     r2 = r0;
    0x000281b8 mov r0, r6                                        |     r0 = r6;
    0x000281bc bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x000281c0 ldr r1, [pc, 0x54]                                |     r1 = *(0x28218);
    0x000281c4 mov r2, r4                                        |     r2 = r4;
    0x000281c8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000281cc mov r0, r5                                        |     r0 = r5;
    0x000281d0 bl 0x27038                                        |     fcn_00027038 (r0);
    0x000281d4 b 0x28030                                         |     goto label_1;
                                                                 | label_2:
    0x000281d8 mov r4, r6                                        |     r4 = r6;
    0x000281dc b 0x28030                                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x28564 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_monitor_get_fd ()            | void mnt_monitor_get_fd (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x00028564 push {r4, r5, r6, r7, r8, lr}     |     
    0x00028568 ldr r7, [pc, 0x228]               |     r7 = *(0x28794);
    0x0002856c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00028570 add r7, pc, r7                    |     r7 = pc + r7;
    0x00028574 sub sp, sp, 0x18                  |     
                                                 |     if (r4 != r0) {
    0x00028578 mvneq r5, 0x15                    |         r5 = ~0x15;
                                                 |     }
                                                 |     if (r4 == r0) {
    0x0002857c beq 0x28608                       |         goto label_1;
                                                 |     }
    0x00028580 ldr r5, [r4, 4]                   |     r5 = *((r4 + 4));
    0x00028584 cmp r5, 0                         |     
                                                 |     if (r5 >= 0) {
    0x00028588 bge 0x28608                       |         goto label_1;
                                                 |     }
    0x0002858c ldr r3, [pc, 0x208]               |     r3 = *(0x28798);
    0x00028590 ldr r6, [r7, r3]                  |     r6 = *((r7 + r3));
    0x00028594 ldr r3, [r6]                      |     r3 = *(r6);
    0x00028598 tst r3, 0x800                     |     
                                                 |     if ((r3 & 0x800) != 0) {
    0x0002859c beq 0x285e8                       |         
    0x000285a0 ldr r3, [pc, 0x1f8]               |         r3 = *(0x2879c);
    0x000285a4 ldr r3, [r7, r3]                  |         r3 = *((r7 + r3));
    0x000285a8 ldr r5, [r3]                      |         r5 = *(0x2879c);
    0x000285ac bl 0x8204                         |         getpid ();
    0x000285b0 ldr r3, [pc, 0x1ec]               |         r3 = *(0x287a0);
    0x000285b4 ldr r1, [pc, 0x1ec]               |         r1 = *(0x287a4);
    0x000285b8 add r3, pc, r3                    |         r3 = pc + r3;
    0x000285bc str r3, [sp]                      |         *(sp) = r3;
    0x000285c0 ldr r3, [pc, 0x1e4]               |         r3 = *(0x287a8);
    0x000285c4 add r1, pc, r1                    |         r1 = pc + r1;
    0x000285c8 add r3, pc, r3                    |         r3 = pc + r3;
    0x000285cc mov r2, r0                        |         r2 = r0;
    0x000285d0 mov r0, r5                        |         r0 = r5;
    0x000285d4 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x000285d8 ldr r1, [pc, 0x1d0]               |         r1 = *(0x287ac);
    0x000285dc mov r0, r4                        |         r0 = r4;
    0x000285e0 add r1, pc, r1                    |         r1 = pc + r1;
    0x000285e4 bl 0x27038                        |         fcn_00027038 (r0);
                                                 |     }
    0x000285e8 mov r0, 0x80000                   |     r0 = 0x80000;
    0x000285ec bl 0x7e8c                         |     r0 = epoll_create1 ();
    0x000285f0 cmp r0, 0                         |     
    0x000285f4 str r0, [r4, 4]                   |     *((r4 + 4)) = r0;
                                                 |     if (r0 >= 0) {
    0x000285f8 bge 0x28614                       |         goto label_2;
                                                 |     }
    0x000285fc bl 0x8f6c                         |     r0 = errno_location ();
    0x00028600 ldr r5, [r0]                      |     r5 = *(r0);
    0x00028604 rsb r5, r5, 0                     |     r5 -= ;
                                                 |     do {
                                                 | label_1:
    0x00028608 mov r0, r5                        |         r0 = r5;
    0x0002860c add sp, sp, 0x18                  |         
    0x00028610 pop {r4, r5, r6, r7, r8, pc}      |         
                                                 | label_2:
    0x00028614 add r5, sp, 0xc                   |         r5 += var_ch;
    0x00028618 mov r1, 0                         |         r1 = 0;
    0x0002861c mov r0, r5                        |         r0 = r5;
    0x00028620 bl 0x8588                         |         fcn_00008588 ();
    0x00028624 ldr r3, [r6]                      |         r3 = *(r6);
    0x00028628 tst r3, 0x800                     |         
                                                 |         if ((r3 & 0x800) != 0) {
    0x0002862c beq 0x2867c                       |             
    0x00028630 ldr r3, [pc, 0x168]               |             r3 = *(0x2879c);
    0x00028634 ldr r3, [r7, r3]                  |             r3 = *((r7 + r3));
    0x00028638 ldr r8, [r3]                      |             r8 = *(0x2879c);
    0x0002863c bl 0x8204                         |             getpid ();
    0x00028640 ldr r3, [pc, 0x16c]               |             r3 = *(0x287b0);
    0x00028644 ldr r1, [pc, 0x16c]               |             r1 = *(0x287b4);
    0x00028648 add r3, pc, r3                    |             r3 = pc + r3;
    0x0002864c str r3, [sp]                      |             *(sp) = r3;
    0x00028650 ldr r3, [pc, 0x164]               |             r3 = *(0x287b8);
    0x00028654 add r1, pc, r1                    |             r1 = pc + r1;
    0x00028658 add r3, pc, r3                    |             r3 = pc + r3;
    0x0002865c mov r2, r0                        |             r2 = r0;
    0x00028660 mov r0, r8                        |             r0 = r8;
    0x00028664 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x00028668 ldr r1, [pc, 0x150]               |             r1 = *(0x287bc);
    0x0002866c ldr r2, [r4, 4]                   |             r2 = *((r4 + 4));
    0x00028670 add r1, pc, r1                    |             r1 = pc + r1;
    0x00028674 mov r0, r4                        |             r0 = r4;
    0x00028678 bl 0x27038                        |             fcn_00027038 (r0);
                                                 |         }
    0x0002867c add r8, sp, 8                     |         r8 += var_8h;
                                                 | label_0:
    0x00028680 mov r2, r8                        |         r2 = r8;
    0x00028684 mov r1, r5                        |         r1 = r5;
    0x00028688 mov r0, r4                        |         r0 = r4;
    0x0002868c bl 0x270f8                        |         r0 = fcn_000270f8 (r0, r1);
    0x00028690 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00028694 beq 0x286f4                       |             goto label_3;
                                                 |         }
    0x00028698 ldr r3, [r6]                      |         r3 = *(r6);
    0x0002869c tst r3, 0x800                     |         
                                                 |         if ((r3 & 0x800) != 0) {
    0x000286a0 beq 0x286ec                       |             
    0x000286a4 ldr r3, [pc, 0xf4]                |             r3 = *(0x2879c);
    0x000286a8 ldr r3, [r7, r3]                  |             r3 = *((r7 + r3));
    0x000286ac ldr r5, [r3]                      |             r5 = *(0x2879c);
    0x000286b0 bl 0x8204                         |             getpid ();
    0x000286b4 ldr r3, [pc, 0x108]               |             r3 = *(0x287c0);
    0x000286b8 ldr r1, [pc, 0x108]               |             r1 = *(0x287c4);
    0x000286bc add r3, pc, r3                    |             r3 = pc + r3;
    0x000286c0 str r3, [sp]                      |             *(sp) = r3;
    0x000286c4 ldr r3, [pc, 0x100]               |             r3 = *(0x287c8);
    0x000286c8 add r1, pc, r1                    |             r1 = pc + r1;
    0x000286cc add r3, pc, r3                    |             r3 = pc + r3;
    0x000286d0 mov r2, r0                        |             r2 = r0;
    0x000286d4 mov r0, r5                        |             r0 = r5;
    0x000286d8 bl 0x8798                         |             fprintf (r0, r1, r2, r3)
    0x000286dc ldr r1, [pc, 0xec]                |             r1 = *(0x287cc);
    0x000286e0 mov r0, r4                        |             r0 = r4;
    0x000286e4 add r1, pc, r1                    |             r1 = pc + r1;
    0x000286e8 bl 0x27038                        |             fcn_00027038 (r0);
                                                 |         }
    0x000286ec ldr r5, [r4, 4]                   |         r5 = *((r4 + 4));
    0x000286f0 b 0x28608                         |         
                                                 |     } while (1);
                                                 | label_3:
    0x000286f4 ldr r1, [sp, 8]                   |     r1 = var_8h;
    0x000286f8 ldrb r3, [r1, 0x14]               |     r3 = *((r1 + 0x14));
    0x000286fc tst r3, 1                         |     
                                                 |     if ((r3 & 1) == 0) {
    0x00028700 beq 0x28680                       |         goto label_0;
                                                 |     }
    0x00028704 mov r2, 1                         |     r2 = 1;
    0x00028708 mov r0, r4                        |     r0 = r4;
    0x0002870c bl 0x27364                        |     r0 = fcn_00027364 (r0, r1);
    0x00028710 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00028714 beq 0x28680                       |         goto label_0;
                                                 |     }
    0x00028718 bl 0x8f6c                         |     r0 = errno_location ();
    0x0002871c ldr r5, [r0]                      |     r5 = *(r0);
    0x00028720 ldr r0, [r4, 4]                   |     r0 = *((r4 + 4));
    0x00028724 cmp r5, 0                         |     
    0x00028728 rsbne r5, r5, 0                   |     __asm ("rsbne r5, r5, 0");
                                                 |     if (r5 != 0) {
    0x0002872c mvneq r5, 0x15                    |         r5 = ~0x15;
                                                 |     }
    0x00028730 bl 0x917c                         |     close (r0);
    0x00028734 mvn r3, 0                         |     r3 = ~0;
    0x00028738 str r3, [r4, 4]                   |     *((r4 + 4)) = r3;
    0x0002873c ldr r3, [r6]                      |     r3 = *(r6);
    0x00028740 tst r3, 0x800                     |     
                                                 |     if ((r3 & 0x800) == 0) {
    0x00028744 beq 0x28608                       |         goto label_1;
                                                 |     }
    0x00028748 ldr r3, [pc, 0x50]                |     r3 = *(0x2879c);
    0x0002874c ldr r3, [r7, r3]                  |     r3 = *((r7 + r3));
    0x00028750 ldr r6, [r3]                      |     r6 = *(0x2879c);
    0x00028754 bl 0x8204                         |     getpid ();
    0x00028758 ldr r3, [pc, 0x74]                |     r3 = *(0x287d0);
    0x0002875c ldr r1, [pc, 0x74]                |     r1 = *(0x287d4);
    0x00028760 add r3, pc, r3                    |     r3 = pc + r3;
    0x00028764 str r3, [sp]                      |     *(sp) = r3;
    0x00028768 ldr r3, [pc, 0x6c]                |     r3 = *(0x287d8);
    0x0002876c add r1, pc, r1                    |     r1 = pc + r1;
    0x00028770 add r3, pc, r3                    |     r3 = pc + r3;
    0x00028774 mov r2, r0                        |     r2 = r0;
    0x00028778 mov r0, r6                        |     r0 = r6;
    0x0002877c bl 0x8798                         |     fprintf (r0, r1, r2, r3)
    0x00028780 ldr r1, [pc, 0x58]                |     r1 = *(0x287dc);
    0x00028784 mov r2, r5                        |     r2 = r5;
    0x00028788 add r1, pc, r1                    |     r1 = pc + r1;
    0x0002878c mov r0, r4                        |     r0 = r4;
    0x00028790 bl 0x27038                        |     fcn_00027038 (r0);
    0x00028794 b 0x28608                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x28920 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.mnt_monitor_next_change ()                   | void mnt_monitor_next_change (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     char * format;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00028920 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00028924 ldr r6, [pc, 0x27c]                           |     r6 = *(0x28ba4);
    0x00028928 subs r5, r0, 0                                |     r5 = r0 - 0;
    0x0002892c add r6, pc, r6                                |     r6 = pc + r6;
    0x00028930 sub sp, sp, 0x2c                              |     
                                                             |     if (r5 == r0) {
    0x00028934 beq 0x28ba0                                   |         goto label_3;
                                                             |     }
    0x00028938 ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
    0x0002893c cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00028940 blt 0x28ba0                                   |         goto label_3;
                                                             |     }
    0x00028944 add sl, sp, 0x18                              |     sl += var_18h;
    0x00028948 mov sb, r1                                    |     sb = r1;
    0x0002894c mov r0, sl                                    |     r0 = sl;
    0x00028950 mov r1, 0                                     |     r1 = 0;
    0x00028954 mov r8, r2                                    |     r8 = r2;
    0x00028958 bl 0x8588                                     |     fcn_00008588 ();
    0x0002895c add r7, sp, 0x14                              |     r7 += var_14h;
                                                             |     do {
    0x00028960 mov r2, r7                                    |         r2 = r7;
    0x00028964 mov r1, sl                                    |         r1 = sl;
    0x00028968 mov r0, r5                                    |         r0 = r5;
    0x0002896c bl 0x270f8                                    |         r0 = fcn_000270f8 (r0, r1);
    0x00028970 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00028974 movne r4, 0                                   |             r4 = 0;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00028978 bne 0x2898c                                   |             goto label_4;
                                                             |         }
    0x0002897c ldr r4, [sp, 0x14]                            |         r4 = var_14h;
    0x00028980 ldrb r3, [r4, 0x14]                           |         r3 = *((r4 + 0x14));
    0x00028984 tst r3, 2                                     |         
    0x00028988 beq 0x28960                                   |         
                                                             |     } while ((r3 & 2) == 0);
                                                             | label_4:
    0x0002898c ldr r3, [pc, 0x218]                           |     r3 = *(0x28ba8);
    0x00028990 ldr fp, [pc, 0x218]                           |     fp = *(0x28bac);
    0x00028994 ldr r7, [r6, r3]                              |     r7 = *((r6 + r3));
    0x00028998 add fp, pc, fp                                |     
                                                             |     do {
                                                             | label_0:
    0x0002899c cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x000289a0 bne 0x28b1c                                   |             goto label_5;
                                                             |         }
    0x000289a4 ldr r3, [pc, 0x208]                           |         r3 = *(0x28bb0);
    0x000289a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000289ac str r3, [sp, 8]                               |         format = r3;
    0x000289b0 ldr r3, [pc, 0x200]                           |         r3 = *(0x28bb4);
    0x000289b4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000289b8 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x000289bc b 0x28a50                                     |         goto label_6;
                                                             |         if (r4 == 0) {
                                                             | label_1:
    0x000289c0 bne 0x28a20                                   |             
    0x000289c4 ldr r3, [r7]                                  |             r3 = *(r7);
    0x000289c8 tst r3, 0x800                                 |             
                                                             |             if ((r3 & 0x800) != 0) {
    0x000289cc beq 0x28a18                                   |                 
    0x000289d0 ldr r3, [pc, 0x1e4]                           |                 r3 = *(0x28bb8);
    0x000289d4 ldr r3, [r6, r3]                              |                 r3 = *((r6 + r3));
    0x000289d8 ldr r4, [r3]                                  |                 r4 = *(0x28bb8);
    0x000289dc bl 0x8204                                     |                 getpid ();
    0x000289e0 ldr r3, [pc, 0x1d8]                           |                 r3 = *(0x28bbc);
    0x000289e4 ldr r1, [pc, 0x1d8]                           |                 r1 = *(0x28bc0);
    0x000289e8 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000289ec str r3, [sp]                                  |                 *(sp) = r3;
    0x000289f0 ldr r3, [pc, 0x1d0]                           |                 r3 = *(0x28bc4);
    0x000289f4 add r1, pc, r1                                |                 r1 = pc + r1;
    0x000289f8 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000289fc mov r2, r0                                    |                 r2 = r0;
    0x00028a00 mov r0, r4                                    |                 r0 = r4;
    0x00028a04 bl 0x8798                                     |                 fprintf (r0, r1, r2, r3)
    0x00028a08 ldr r1, [pc, 0x1bc]                           |                 r1 = *(0x28bc8);
    0x00028a0c mov r0, r5                                    |                 r0 = r5;
    0x00028a10 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00028a14 bl 0x27038                                    |                 fcn_00027038 (r0);
                                                             |             }
    0x00028a18 mov r0, 1                                     |             r0 = 1;
    0x00028a1c b 0x28b14                                     |             goto label_2;
                                                             |         }
    0x00028a20 ldr r4, [sp, 0x20]                            |         r4 = var_20h;
    0x00028a24 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x00028a28 beq 0x28ba0                                   |             goto label_3;
                                                             |         }
    0x00028a2c ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x00028a30 ldr r3, [r3, 8]                               |         r3 = *((r3 + 8));
    0x00028a34 cmp r3, 0                                     |         
    0x00028a38 beq 0x2899c                                   |         
                                                             |     } while (r3 == 0);
    0x00028a3c mov r1, r4                                    |     r1 = r4;
    0x00028a40 mov r0, r5                                    |     r0 = r5;
    0x00028a44 blx r3                                        |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x00028a48 cmp r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00028a4c beq 0x2899c                                   |         goto label_0;
                                                             |     }
                                                             | label_6:
    0x00028a50 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00028a54 tst r3, 0x800                                 |     
                                                             |     if ((r3 & 0x800) != 0) {
    0x00028a58 beq 0x28a98                                   |         
    0x00028a5c ldr r3, [pc, 0x158]                           |         r3 = *(0x28bb8);
    0x00028a60 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00028a64 ldr r4, [r3]                                  |         r4 = *(0x28bb8);
    0x00028a68 bl 0x8204                                     |         getpid ();
    0x00028a6c ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00028a70 ldr r1, [sp, 8]                               |         r1 = format;
    0x00028a74 str r3, [sp]                                  |         *(sp) = r3;
    0x00028a78 mov r3, fp                                    |         r3 = fp;
    0x00028a7c mov r2, r0                                    |         r2 = r0;
    0x00028a80 mov r0, r4                                    |         r0 = r4;
    0x00028a84 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00028a88 ldr r1, [pc, 0x140]                           |         r1 = *(0x28bcc);
    0x00028a8c mov r0, r5                                    |         r0 = r5;
    0x00028a90 add r1, pc, r1                                |         r1 = pc + r1;
    0x00028a94 bl 0x27038                                    |         fcn_00027038 (r0);
                                                             |     }
    0x00028a98 mov r3, 0                                     |     r3 = 0;
    0x00028a9c mov r2, 1                                     |     r2 = 1;
    0x00028aa0 mov r1, sl                                    |     r1 = sl;
    0x00028aa4 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00028aa8 bl 0x8030                                     |     r0 = epoll_wait ();
    0x00028aac cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00028ab0 bge 0x289c0                                   |         goto label_1;
                                                             |     }
    0x00028ab4 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00028ab8 tst r3, 0x800                                 |     
                                                             |     if ((r3 & 0x800) != 0) {
    0x00028abc beq 0x28b08                                   |         
    0x00028ac0 ldr r3, [pc, 0xf4]                            |         r3 = *(0x28bb8);
    0x00028ac4 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00028ac8 ldr r4, [r3]                                  |         r4 = *(0x28bb8);
    0x00028acc bl 0x8204                                     |         getpid ();
    0x00028ad0 ldr r3, [pc, 0xfc]                            |         r3 = *(0x28bd0);
    0x00028ad4 ldr r1, [pc, 0xfc]                            |         r1 = *(0x28bd4);
    0x00028ad8 add r3, pc, r3                                |         r3 = pc + r3;
    0x00028adc str r3, [sp]                                  |         *(sp) = r3;
    0x00028ae0 ldr r3, [pc, 0xf4]                            |         r3 = *(0x28bd8);
    0x00028ae4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00028ae8 add r3, pc, r3                                |         r3 = pc + r3;
    0x00028aec mov r2, r0                                    |         r2 = r0;
    0x00028af0 mov r0, r4                                    |         r0 = r4;
    0x00028af4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00028af8 ldr r1, [pc, 0xe0]                            |         r1 = *(0x28bdc);
    0x00028afc mov r0, r5                                    |         r0 = r5;
    0x00028b00 add r1, pc, r1                                |         r1 = pc + r1;
    0x00028b04 bl 0x27038                                    |         r0 = fcn_00027038 (r0);
                                                             |     }
    0x00028b08 bl 0x8f6c                                     |     r0 = errno_location ();
    0x00028b0c ldr r0, [r0]                                  |     r0 = *(r0);
    0x00028b10 rsb r0, r0, 0                                 |     r0 -= ;
                                                             |     do {
                                                             | label_2:
    0x00028b14 add sp, sp, 0x2c                              |         
    0x00028b18 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_5:
    0x00028b1c ldrb r3, [r4, 0x14]                           |         r3 = *((r4 + 0x14));
    0x00028b20 cmp sb, 0                                     |         
    0x00028b24 bic r3, r3, 2                                 |         r3 = BIT_MASK (r3, 2);
    0x00028b28 strb r3, [r4, 0x14]                           |         *((r4 + 0x14)) = r3;
                                                             |         if (sb == 0) {
    0x00028b2c ldrne r3, [r4, 4]                             |             r3 = *((r4 + 4));
                                                             |         }
                                                             |         if (sb == 0) {
    0x00028b30 strne r3, [sb]                                |             *(sb) = r3;
                                                             |         }
    0x00028b34 cmp r8, 0                                     |         
                                                             |         if (r8 == 0) {
    0x00028b38 ldrne r3, [r4, 8]                             |             r3 = *((r4 + 8));
                                                             |         }
                                                             |         if (r8 == 0) {
    0x00028b3c strne r3, [r8]                                |             *(r8) = r3;
                                                             |         }
    0x00028b40 ldr r0, [r7]                                  |         r0 = *(r7);
    0x00028b44 ands r0, r0, 0x800                            |         r0 &= 0x800;
    0x00028b48 beq 0x28b14                                   |         
                                                             |     } while (r0 == r0);
    0x00028b4c ldr r3, [pc, 0x68]                            |     r3 = *(0x28bb8);
    0x00028b50 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00028b54 ldr r6, [r3]                                  |     r6 = *(0x28bb8);
    0x00028b58 bl 0x8204                                     |     getpid ();
    0x00028b5c ldr r3, [pc, 0x80]                            |     r3 = *(0x28be0);
    0x00028b60 ldr r1, [pc, 0x80]                            |     r1 = *(0x28be4);
    0x00028b64 add r3, pc, r3                                |     r3 = pc + r3;
    0x00028b68 str r3, [sp]                                  |     *(sp) = r3;
    0x00028b6c ldr r3, [pc, 0x78]                            |     r3 = *(0x28be8);
    0x00028b70 add r1, pc, r1                                |     r1 = pc + r1;
    0x00028b74 add r3, pc, r3                                |     r3 = pc + r3;
    0x00028b78 mov r2, r0                                    |     r2 = r0;
    0x00028b7c mov r0, r6                                    |     r0 = r6;
    0x00028b80 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00028b84 ldr r1, [pc, 0x64]                            |     r1 = *(0x28bec);
    0x00028b88 mov r0, r5                                    |     r0 = r5;
    0x00028b8c ldr r2, [r4, 4]                               |     r2 = *((r4 + 4));
    0x00028b90 add r1, pc, r1                                |     r1 = pc + r1;
    0x00028b94 bl 0x27038                                    |     fcn_00027038 (r0);
    0x00028b98 mov r0, 0                                     |     r0 = 0;
    0x00028b9c b 0x28b14                                     |     goto label_2;
                                                             | label_3:
    0x00028ba0 mvn r0, 0x15                                  |     r0 = ~0x15;
    0x00028ba4 b 0x28b14                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x287e4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_monitor_wait ()                      | void mnt_monitor_wait (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_18h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000287e4 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x000287e8 ldr r7, [pc, 0x114]                       |     r7 = *(0x28900);
    0x000287ec subs r4, r0, 0                            |     r4 = r0 - 0;
    0x000287f0 add r7, pc, r7                            |     r7 = pc + r7;
    0x000287f4 sub sp, sp, 0x18                          |     
                                                         |     if (r4 != r0) {
    0x000287f8 bne 0x28808                               |         goto label_4;
                                                         |     }
                                                         | label_2:
    0x000287fc mvn r0, 0x15                              |     r0 = ~0x15;
                                                         |     do {
                                                         | label_1:
    0x00028800 add sp, sp, 0x18                          |         
    0x00028804 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
                                                         | label_4:
    0x00028808 ldr r3, [r4, 4]                           |         r3 = *((r4 + 4));
    0x0002880c mov r6, r1                                |         r6 = r1;
    0x00028810 cmp r3, 0                                 |         
                                                         |         if (r3 < 0) {
    0x00028814 blt 0x288ac                               |             goto label_5;
                                                         |         }
                                                         | label_0:
    0x00028818 ldr r3, [pc, 0xe8]                        |         r3 = *(0x28904);
    0x0002881c ldr sb, [pc, 0xe8]                        |         sb = *(0x28908);
    0x00028820 ldr sl, [pc, 0xe8]                        |         sl = *(0x00028910);
    0x00028824 ldr r8, [r7, r3]                          |         r8 = *((r7 + r3));
    0x00028828 add sb, pc, sb                            |         sb = pc + sb;
    0x0002882c add sl, pc, sl                            |         sl = pc + sl;
                                                         | label_3:
    0x00028830 ldr r3, [r8]                              |         r3 = *(r8);
    0x00028834 tst r3, 0x800                             |         
                                                         |         if ((r3 & 0x800) != 0) {
    0x00028838 beq 0x28880                               |             
    0x0002883c ldr r3, [pc, 0xd0]                        |             r3 = *(0x28910);
    0x00028840 ldr r3, [r7, r3]                          |             r3 = *((r7 + r3));
    0x00028844 ldr r5, [r3]                              |             r5 = *(0x28910);
    0x00028848 bl 0x8204                                 |             getpid ();
    0x0002884c ldr r3, [pc, 0xc4]                        |             r3 = *(0x28914);
    0x00028850 mov r1, sl                                |             r1 = sl;
    0x00028854 add r3, pc, r3                            |             r3 = pc + r3;
    0x00028858 str r3, [sp]                              |             *(sp) = r3;
    0x0002885c mov r3, sb                                |             r3 = sb;
    0x00028860 mov r2, r0                                |             r2 = r0;
    0x00028864 mov r0, r5                                |             r0 = r5;
    0x00028868 bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x0002886c ldr r1, [pc, 0xa8]                        |             r1 = *(0x28918);
    0x00028870 mov r2, r6                                |             r2 = r6;
    0x00028874 add r1, pc, r1                            |             r1 = pc + r1;
    0x00028878 mov r0, r4                                |             r0 = r4;
    0x0002887c bl 0x27038                                |             fcn_00027038 (r0);
                                                         |         }
    0x00028880 mov r3, r6                                |         r3 = r6;
    0x00028884 mov r2, 1                                 |         r2 = 1;
    0x00028888 add r1, sp, 8                             |         r1 += var_8h;
    0x0002888c ldr r0, [r4, 4]                           |         r0 = *((r4 + 4));
    0x00028890 bl 0x8030                                 |         r0 = epoll_wait ();
    0x00028894 cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00028898 bge 0x288bc                               |             goto label_6;
                                                         |         }
    0x0002889c bl 0x8f6c                                 |         r0 = errno_location ();
    0x000288a0 ldr r0, [r0]                              |         r0 = *(r0);
    0x000288a4 rsb r0, r0, 0                             |         r0 -= ;
    0x000288a8 b 0x28800                                 |         
                                                         |     } while (1);
                                                         | label_5:
    0x000288ac bl 0x9098                                 |     r0 = fcn_00009098 ();
    0x000288b0 cmp r0, 0                                 |     
                                                         |     if (r0 >= 0) {
    0x000288b4 bge 0x28818                               |         goto label_0;
                                                         |     }
    0x000288b8 b 0x28800                                 |     goto label_1;
                                                         |     if (r0 == 0) {
                                                         | label_6:
    0x000288bc beq 0x28800                               |         goto label_1;
                                                         |     }
    0x000288c0 ldr r5, [sp, 0x10]                        |     r5 = var_10h;
    0x000288c4 cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x000288c8 beq 0x287fc                               |         goto label_2;
                                                         |     }
    0x000288cc ldr r3, [r5, 0x10]                        |     r3 = *((r5 + 0x10));
    0x000288d0 ldr r3, [r3, 8]                           |     r3 = *((r3 + 8));
    0x000288d4 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000288d8 beq 0x288f0                               |         goto label_7;
                                                         |     }
    0x000288dc mov r1, r5                                |     r1 = r5;
    0x000288e0 mov r0, r4                                |     r0 = r4;
    0x000288e4 blx r3                                    |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x000288e8 cmp r0, 1                                 |     
                                                         |     if (r0 != 1) {
    0x000288ec bne 0x28830                               |         goto label_3;
                                                         |     }
                                                         | label_7:
    0x000288f0 ldrb r3, [r5, 0x14]                       |     r3 = *((r5 + 0x14));
    0x000288f4 mov r0, 1                                 |     r0 = 1;
    0x000288f8 orr r3, r3, 2                             |     r3 |= 2;
    0x000288fc strb r3, [r5, 0x14]                       |     *((r5 + 0x14)) = r3;
    0x00028900 b 0x28800                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x9c28 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_new_cache ()                     | void mnt_new_cache () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
    0x00009c28 push {r0, r1, r2, r4, r5, lr}         |     
    0x00009c2c ldr r5, [pc, 0x84]                    |     r5 = *(0x9cb4);
    0x00009c30 mov r1, 0x18                          |     r1 = 0x18;
    0x00009c34 mov r0, 1                             |     r0 = 1;
    0x00009c38 bl 0x86e4                             |     calloc (r0, r1);
    0x00009c3c add r5, pc, r5                        |     r5 = pc + r5;
    0x00009c40 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x00009c44 beq 0x9cac                            |         
    0x00009c48 ldr r3, [pc, 0x6c]                    |         
    0x00009c4c ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00009c50 ldr r3, [r3]                          |         r3 = *(0x9cb8);
    0x00009c54 tst r3, 4                             |         
                                                     |         if ((r3 & 4) != 0) {
    0x00009c58 beq 0x9ca4                            |             
    0x00009c5c ldr r3, [pc, 0x5c]                    |             r3 = *(0x9cbc);
    0x00009c60 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x00009c64 ldr r5, [r3]                          |             r5 = *(0x9cbc);
    0x00009c68 bl 0x8204                             |             getpid ();
    0x00009c6c ldr r3, [pc, 0x50]                    |             r3 = *(0x9cc0);
    0x00009c70 ldr r1, [pc, 0x50]                    |             r1 = *(0x9cc4);
    0x00009c74 add r3, pc, r3                        |             r3 = pc + r3;
    0x00009c78 str r3, [sp]                          |             *(sp) = r3;
    0x00009c7c ldr r3, [pc, 0x48]                    |             r3 = *(0x9cc8);
    0x00009c80 add r1, pc, r1                        |             r1 = pc + r1;
    0x00009c84 add r3, pc, r3                        |             r3 = pc + r3;
    0x00009c88 mov r2, r0                            |             r2 = r0;
    0x00009c8c mov r0, r5                            |             r0 = r5;
    0x00009c90 bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x00009c94 ldr r1, [pc, 0x34]                    |             r1 = *(0x9ccc);
    0x00009c98 mov r0, r4                            |             r0 = r4;
    0x00009c9c add r1, pc, r1                        |             r1 = pc + r1;
    0x00009ca0 bl 0x94bc                             |             fcn_000094bc (r0);
                                                     |         }
    0x00009ca4 mov r3, 1                             |         r3 = 1;
    0x00009ca8 str r3, [r4, 0xc]                     |         *((r4 + 0xc)) = r3;
                                                     |     }
    0x00009cac mov r0, r4                            |     r0 = r4;
    0x00009cb0 add sp, sp, 0xc                       |     
    0x00009cb4 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x1a85c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_new_context ()                           | void mnt_new_context () {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
    0x0001a85c push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0001a860 ldr r6, [pc, 0xec]                            |     r6 = *(0x1a950);
    0x0001a864 mov r1, 0xa8                                  |     r1 = 0xa8;
    0x0001a868 mov r0, 1                                     |     r0 = 1;
    0x0001a86c bl 0x86e4                                     |     calloc (r0, r1);
    0x0001a870 add r6, pc, r6                                |     r6 = pc + r6;
    0x0001a874 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x0001a878 beq 0x1a93c                                   |         goto label_0;
                                                             |     }
    0x0001a87c add r3, r4, 0x48                              |     r3 = r4 + 0x48;
    0x0001a880 str r3, [r4, 0x48]                            |     *((r4 + 0x48)) = r3;
    0x0001a884 str r3, [r4, 0x4c]                            |     *((r4 + 0x4c)) = r3;
    0x0001a888 bl 0x8378                                     |     r0 = getuid ();
    0x0001a88c mov r7, r0                                    |     r7 = r0;
    0x0001a890 bl 0x8054                                     |     r0 = geteuid ();
    0x0001a894 mov r5, r0                                    |     r5 = r0;
    0x0001a898 mov r0, r4                                    |     r0 = r4;
    0x0001a89c bl 0x81c8                                     |     fcn_000081c8 ();
    0x0001a8a0 mvn r3, 0                                     |     r3 = ~0;
    0x0001a8a4 str r3, [r4, 0x38]                            |     *((r4 + 0x38)) = r3;
    0x0001a8a8 str r3, [r4, 0x90]                            |     *((r4 + 0x90)) = r3;
    0x0001a8ac str r3, [r4, 0x98]                            |     *((r4 + 0x98)) = r3;
    0x0001a8b0 add r3, r4, 0x90                              |     r3 = r4 + 0x90;
    0x0001a8b4 subs r5, r7, r5                               |     r5 = r7 - r5;
    0x0001a8b8 str r3, [r4, 0xa0]                            |     *((r4 + 0xa0)) = r3;
    0x0001a8bc ldr r3, [pc, 0x94]                            |     
                                                             |     if (r5 == r7) {
    0x0001a8c0 movne r5, 1                                   |         r5 = 1;
                                                             |     }
    0x0001a8c4 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0001a8c8 movne r5, 1                                   |         r5 = 1;
                                                             |     }
    0x0001a8cc str r5, [r4, 4]                               |     *((r4 + 4)) = r5;
    0x0001a8d0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001a8d4 ldr r3, [r3]                                  |     r3 = *(0x1a954);
    0x0001a8d8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x0001a8dc beq 0x1a93c                                   |         goto label_0;
                                                             |     }
    0x0001a8e0 ldr r3, [pc, 0x74]                            |     r3 = *(0x1a958);
    0x0001a8e4 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0001a8e8 ldr r5, [r3]                                  |     r5 = *(0x1a958);
    0x0001a8ec bl 0x8204                                     |     getpid ();
    0x0001a8f0 ldr r3, [pc, 0x68]                            |     r3 = *(0x1a95c);
    0x0001a8f4 ldr r1, [pc, 0x68]                            |     r1 = *(0x1a960);
    0x0001a8f8 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001a8fc str r3, [sp]                                  |     *(sp) = r3;
    0x0001a900 ldr r3, [pc, 0x60]                            |     r3 = *(0x1a964);
    0x0001a904 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001a908 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001a90c mov r2, r0                                    |     r2 = r0;
    0x0001a910 mov r0, r5                                    |     r0 = r5;
    0x0001a914 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x0001a918 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x0001a91c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001a920 bne 0x1a948                                   |         goto label_1;
                                                             |     }
    0x0001a924 ldr r2, [pc, 0x40]                            |     r2 = *(0x1a968);
    0x0001a928 add r2, pc, r2                                |     r2 = pc + r2;
                                                             |     do {
    0x0001a92c ldr r1, [pc, 0x3c]                            |         r1 = *(0x1a96c);
    0x0001a930 mov r0, r4                                    |         r0 = r4;
    0x0001a934 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001a938 bl 0x1a538                                    |         fcn_0001a538 (r0);
                                                             | label_0:
    0x0001a93c mov r0, r4                                    |         r0 = r4;
    0x0001a940 add sp, sp, 0xc                               |         
    0x0001a944 pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_1:
    0x0001a948 ldr r2, [pc, 0x24]                            |         r2 = *(0x1a970);
    0x0001a94c add r2, pc, r2                                |         r2 = pc + r2;
    0x0001a950 b 0x1a92c                                     |         
                                                             |     } 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/lib/libmount.so.1.1.0 @ 0xc82c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.mnt_new_lock ()                                      | void mnt_new_lock (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     void * ptr;
                                                                     |     int32_t var_10h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0000c82c push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}         |     
    0x0000c830 ldr r6, [pc, 0x128]                                   |     r6 = *(0xc95c);
    0x0000c834 mov r3, 0                                             |     r3 = 0;
    0x0000c838 subs r4, r0, 0                                        |     r4 = r0 - 0;
    0x0000c83c add r6, pc, r6                                        |     r6 = pc + r6;
    0x0000c840 str r3, [sp, 0xc]                                     |     ptr = r3;
                                                                     |     if (r4 == r0) {
    0x0000c844 beq 0xc93c                                            |         goto label_0;
                                                                     |     }
    0x0000c848 mov r7, r1                                            |     r7 = r1;
    0x0000c84c bl 0x905c                                             |     r0 = strlen (r0);
    0x0000c850 add r8, r0, 6                                         |     r8 = r0 + 6;
    0x0000c854 mov r0, r8                                            |     r0 = r8;
    0x0000c858 bl 0x83cc                                             |     r0 = malloc (r0);
    0x0000c85c subs r5, r0, 0                                        |     r5 = r0 - 0;
                                                                     |     if (r5 == r0) {
    0x0000c860 beq 0xc948                                            |         goto label_1;
                                                                     |     }
    0x0000c864 ldr r2, [pc, 0xf8]                                    |     r2 = *(0xc960);
    0x0000c868 mov r3, r4                                            |     r3 = r4;
    0x0000c86c add r2, pc, r2                                        |     r2 = pc + r2;
    0x0000c870 mov r1, r8                                            |     r1 = r8;
    0x0000c874 bl 0x809c                                             |     snprintf (r0, r1, r2, r3);
    0x0000c878 cmp r7, 0                                             |     
                                                                     |     if (r7 == 0) {
    0x0000c87c bne 0xc888                                            |         
    0x0000c880 bl 0x8204                                             |         r0 = getpid ();
    0x0000c884 mov r7, r0                                            |         r7 = r0;
                                                                     |     }
    0x0000c888 ldr r1, [pc, 0xd8]                                    |     r1 = *(0xc964);
    0x0000c88c mov r3, r7                                            |     r3 = r7;
    0x0000c890 mov r2, r4                                            |     r2 = r4;
    0x0000c894 add r1, pc, r1                                        |     r1 = pc + r1;
    0x0000c898 add r0, sp, 0xc                                       |     r0 += ptr;
    0x0000c89c bl 0x8d80                                             |     r0 = asprintf ();
    0x0000c8a0 cmn r0, 1                                             |     
                                                                     |     if (r0 != 1) {
    0x0000c8a4 moveq r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r0 != 1) {
    0x0000c8a8 streq r3, [sp, 0xc]                                   |         ptr = r3;
                                                                     |     }
                                                                     |     if (r0 == 1) {
    0x0000c8ac beq 0xc948                                            |         goto label_1;
                                                                     |     }
    0x0000c8b0 mov r1, 0x18                                          |     r1 = 0x18;
    0x0000c8b4 mov r0, 1                                             |     r0 = 1;
    0x0000c8b8 bl 0x86e4                                             |     calloc (r0, r1);
    0x0000c8bc ldr r3, [sp, 0xc]                                     |     r3 = ptr;
    0x0000c8c0 subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 == r0) {
    0x0000c8c4 beq 0xc948                                            |         goto label_1;
                                                                     |     }
    0x0000c8c8 str r3, [r4, 4]                                       |     *((r4 + 4)) = r3;
    0x0000c8cc ldr r3, [pc, 0x98]                                    |     
    0x0000c8d0 mvn r2, 0                                             |     r2 = ~0;
    0x0000c8d4 str r2, [r4, 8]                                       |     *((r4 + 8)) = r2;
    0x0000c8d8 str r5, [r4]                                          |     *(r4) = r5;
    0x0000c8dc ldr r3, [r6, r3]                                      |     r3 = *((r6 + r3));
    0x0000c8e0 ldr r3, [r3]                                          |     r3 = *(0xc968);
    0x0000c8e4 tst r3, 0x10                                          |     
                                                                     |     if ((r3 & 0x10) == 0) {
    0x0000c8e8 beq 0xc93c                                            |         goto label_0;
                                                                     |     }
    0x0000c8ec ldr r3, [pc, 0x7c]                                    |     r3 = *(0xc96c);
    0x0000c8f0 ldr r3, [r6, r3]                                      |     r3 = *((r6 + r3));
    0x0000c8f4 ldr r6, [r3]                                          |     r6 = *(0xc96c);
    0x0000c8f8 bl 0x8204                                             |     getpid ();
    0x0000c8fc ldr r3, [pc, 0x70]                                    |     r3 = *(0xc970);
    0x0000c900 ldr r1, [pc, 0x70]                                    |     r1 = *(0xc974);
    0x0000c904 add r3, pc, r3                                        |     r3 = pc + r3;
    0x0000c908 str r3, [sp]                                          |     *(sp) = r3;
    0x0000c90c ldr r3, [pc, 0x68]                                    |     r3 = *(0xc978);
    0x0000c910 add r1, pc, r1                                        |     r1 = pc + r1;
    0x0000c914 add r3, pc, r3                                        |     r3 = pc + r3;
    0x0000c918 mov r2, r0                                            |     r2 = r0;
    0x0000c91c mov r0, r6                                            |     r0 = r6;
    0x0000c920 bl 0x8798                                             |     fprintf (r0, r1, r2, r3)
    0x0000c924 ldr r1, [pc, 0x54]                                    |     r1 = *(0xc97c);
    0x0000c928 mov r3, r5                                            |     r3 = r5;
    0x0000c92c ldr r2, [sp, 0xc]                                     |     r2 = ptr;
    0x0000c930 add r1, pc, r1                                        |     r1 = pc + r1;
    0x0000c934 mov r0, r4                                            |     r0 = r4;
    0x0000c938 bl 0xc708                                             |     fcn_0000c708 (r0);
                                                                     |     do {
                                                                     | label_0:
    0x0000c93c mov r0, r4                                            |         r0 = r4;
    0x0000c940 add sp, sp, 0x10                                      |         
    0x0000c944 pop {r4, r5, r6, r7, r8, pc}                          |         
                                                                     | label_1:
    0x0000c948 mov r0, r5                                            |         r0 = r5;
    0x0000c94c bl 0x91c4                                             |         free (r0);
    0x0000c950 ldr r0, [sp, 0xc]                                     |         r0 = ptr;
    0x0000c954 bl 0x91c4                                             |         free (r0);
    0x0000c958 mov r4, 0                                             |         r4 = 0;
    0x0000c95c b 0xc93c                                              |         
                                                                     |     } 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/lib/libmount.so.1.1.0 @ 0x27f04 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_new_monitor ()                   | void mnt_new_monitor () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
    0x00027f04 push {r0, r1, r2, r4, r5, lr}         |     
    0x00027f08 ldr r5, [pc, 0x94]                    |     r5 = *(0x27fa0);
    0x00027f0c mov r1, 0x10                          |     r1 = 0x10;
    0x00027f10 mov r0, 1                             |     r0 = 1;
    0x00027f14 bl 0x86e4                             |     calloc (r0, r1);
    0x00027f18 add r5, pc, r5                        |     r5 = pc + r5;
    0x00027f1c subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x00027f20 beq 0x27f98                           |         
    0x00027f24 add r3, r4, 8                         |         r3 = r4 + 8;
    0x00027f28 str r3, [r4, 8]                       |         *((r4 + 8)) = r3;
    0x00027f2c str r3, [r4, 0xc]                     |         *((r4 + 0xc)) = r3;
    0x00027f30 ldr r3, [pc, 0x70]                    |         
    0x00027f34 mov r0, 1                             |         r0 = 1;
    0x00027f38 mvn r1, 0                             |         r1 = ~0;
    0x00027f3c strd r0, r1, [r4]                     |         __asm ("strd r0, r1, [r4]");
    0x00027f40 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00027f44 ldr r3, [r3]                          |         r3 = *(0x27fa4);
    0x00027f48 tst r3, 0x800                         |         
                                                     |         if ((r3 & 0x800) == 0) {
    0x00027f4c beq 0x27f98                           |             goto label_0;
                                                     |         }
    0x00027f50 ldr r3, [pc, 0x54]                    |         r3 = *(0x27fa8);
    0x00027f54 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00027f58 ldr r5, [r3]                          |         r5 = *(0x27fa8);
    0x00027f5c bl 0x8204                             |         getpid ();
    0x00027f60 ldr r3, [pc, 0x48]                    |         r3 = *(0x27fac);
    0x00027f64 ldr r1, [pc, 0x48]                    |         r1 = *(0x27fb0);
    0x00027f68 add r3, pc, r3                        |         r3 = pc + r3;
    0x00027f6c str r3, [sp]                          |         *(sp) = r3;
    0x00027f70 ldr r3, [pc, 0x40]                    |         r3 = *(0x27fb4);
    0x00027f74 add r1, pc, r1                        |         r1 = pc + r1;
    0x00027f78 add r3, pc, r3                        |         r3 = pc + r3;
    0x00027f7c mov r2, r0                            |         r2 = r0;
    0x00027f80 mov r0, r5                            |         r0 = r5;
    0x00027f84 bl 0x8798                             |         fprintf (r0, r1, r2, r3)
    0x00027f88 ldr r1, [pc, 0x2c]                    |         r1 = *(0x27fb8);
    0x00027f8c mov r0, r4                            |         r0 = r4;
    0x00027f90 add r1, pc, r1                        |         r1 = pc + r1;
    0x00027f94 bl 0x27038                            |         fcn_00027038 (r0);
                                                     |     }
                                                     | label_0:
    0x00027f98 mov r0, r4                            |     r0 = r4;
    0x00027f9c add sp, sp, 0xc                       |     
    0x00027fa0 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x12b14 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_new_tabdiff ()                   | void mnt_new_tabdiff () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
    0x00012b14 push {r0, r1, r2, r4, r5, lr}         |     
    0x00012b18 ldr r5, [pc, 0x94]                    |     r5 = *(0x12bb0);
    0x00012b1c mov r1, 0x14                          |     r1 = 0x14;
    0x00012b20 mov r0, 1                             |     r0 = 1;
    0x00012b24 bl 0x86e4                             |     calloc (r0, r1);
    0x00012b28 add r5, pc, r5                        |     r5 = pc + r5;
    0x00012b2c subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x00012b30 beq 0x12ba8                           |         
    0x00012b34 ldr r3, [pc, 0x7c]                    |         
    0x00012b38 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00012b3c ldr r3, [r3]                          |         r3 = "ue";
    0x00012b40 tst r3, 0x400                         |         
                                                     |         if ((r3 & 0x400) != 0) {
    0x00012b44 beq 0x12b90                           |             
    0x00012b48 ldr r3, [pc, 0x6c]                    |             r3 = *(0x12bb8);
    0x00012b4c ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x00012b50 ldr r5, [r3]                          |             r5 = *(0x12bb8);
    0x00012b54 bl 0x8204                             |             getpid ();
    0x00012b58 ldr r3, [pc, 0x60]                    |             r3 = *(0x12bbc);
    0x00012b5c ldr r1, [pc, 0x60]                    |             r1 = *(0x12bc0);
    0x00012b60 add r3, pc, r3                        |             r3 = pc + r3;
    0x00012b64 str r3, [sp]                          |             *(sp) = r3;
    0x00012b68 ldr r3, [pc, 0x58]                    |             r3 = *(0x12bc4);
    0x00012b6c add r1, pc, r1                        |             r1 = pc + r1;
    0x00012b70 add r3, pc, r3                        |             r3 = pc + r3;
    0x00012b74 mov r2, r0                            |             r2 = r0;
    0x00012b78 mov r0, r5                            |             r0 = r5;
    0x00012b7c bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x00012b80 ldr r1, [pc, 0x44]                    |             r1 = *(0x12bc8);
    0x00012b84 mov r0, r4                            |             r0 = r4;
    0x00012b88 add r1, pc, r1                        |             r1 = pc + r1;
    0x00012b8c bl 0x128d4                            |             fcn_000128d4 (r0);
                                                     |         }
    0x00012b90 add r3, r4, 4                         |         r3 = r4 + 4;
    0x00012b94 str r3, [r4, 4]                       |         *((r4 + 4)) = r3;
    0x00012b98 str r3, [r4, 8]                       |         *((r4 + 8)) = r3;
    0x00012b9c add r3, r4, 0xc                       |         r3 = r4 + 0xc;
    0x00012ba0 str r3, [r4, 0xc]                     |         *((r4 + 0xc)) = r3;
    0x00012ba4 str r3, [r4, 0x10]                    |         *((r4 + 0x10)) = r3;
                                                     |     }
    0x00012ba8 mov r0, r4                            |     r0 = r4;
    0x00012bac add sp, sp, 0xc                       |     
    0x00012bb0 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0xf764 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_new_table ()                     | void mnt_new_table () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
    0x0000f764 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000f768 ldr r5, [pc, 0x90]                    |     r5 = *(0xf7fc);
    0x0000f76c mov r1, 0x34                          |     r1 = 0x34;
    0x0000f770 mov r0, 1                             |     r0 = 1;
    0x0000f774 bl 0x86e4                             |     calloc (r0, r1);
    0x0000f778 add r5, pc, r5                        |     r5 = pc + r5;
    0x0000f77c subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x0000f780 beq 0xf7f4                            |         
    0x0000f784 ldr r3, [pc, 0x78]                    |         
    0x0000f788 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000f78c ldr r3, [r3]                          |         r3 = *(0xf800);
    0x0000f790 tst r3, 0x20                          |         
                                                     |         if ((r3 & 0x20) != 0) {
    0x0000f794 beq 0xf7e0                            |             
    0x0000f798 ldr r3, [pc, 0x68]                    |             r3 = *(0xf804);
    0x0000f79c ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0000f7a0 ldr r5, [r3]                          |             r5 = *(0xf804);
    0x0000f7a4 bl 0x8204                             |             getpid ();
    0x0000f7a8 ldr r3, [pc, 0x5c]                    |             r3 = *(0xf808);
    0x0000f7ac ldr r1, [pc, 0x5c]                    |             r1 = *(0xf80c);
    0x0000f7b0 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000f7b4 str r3, [sp]                          |             *(sp) = r3;
    0x0000f7b8 ldr r3, [pc, 0x54]                    |             r3 = *(0xf810);
    0x0000f7bc add r1, pc, r1                        |             r1 = pc + r1;
    0x0000f7c0 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000f7c4 mov r2, r0                            |             r2 = r0;
    0x0000f7c8 mov r0, r5                            |             r0 = r5;
    0x0000f7cc bl 0x8798                             |             fprintf (r0, r1, r2, r3)
    0x0000f7d0 ldr r1, [pc, 0x40]                    |             r1 = *(0xf814);
    0x0000f7d4 mov r0, r4                            |             r0 = r4;
    0x0000f7d8 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000f7dc bl 0xf520                             |             fcn_0000f520 (r0);
                                                     |         }
    0x0000f7e0 mov r3, 1                             |         r3 = 1;
    0x0000f7e4 str r3, [r4, 8]                       |         *((r4 + 8)) = r3;
    0x0000f7e8 add r3, r4, 0x28                      |         r3 = r4 + 0x28;
    0x0000f7ec str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
    0x0000f7f0 str r3, [r4, 0x2c]                    |         *((r4 + 0x2c)) = r3;
                                                     |     }
    0x0000f7f4 mov r0, r4                            |     r0 = r4;
    0x0000f7f8 add sp, sp, 0xc                       |     
    0x0000f7fc pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0x14f34 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_new_table_from_file ()           | uint32_t mnt_new_table_from_file (uint32_t arg1) {
                                                     |     r0 = arg1;
    0x00014f34 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014f38 bxeq lr                               |         return r0;
                                                     |     }
    0x00014f3c mov r2, 0                             |     r2 = 0;
    0x00014f40 mov r1, r2                            |     r1 = r2;
    0x00014f44 b 0x14e34                             |     return void (*0x14e34)() ();
                                                     | }
    ; 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/lib/libmount.so.1.1.0 @ 0x14f48 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_new_table_from_dir ()        | void mnt_new_table_from_dir (int32_t arg1) {
                                                 |     r0 = arg1;
    0x00014f48 push {r4, r5, r6, lr}             |     
    0x00014f4c subs r5, r0, 0                    |     r5 = r0 - 0;
    0x00014f50 bne 0x14f60                       |     
                                                 |     while (r4 == r0) {
                                                 | label_1:
    0x00014f54 mov r4, 0                         |         r4 = 0;
                                                 | label_0:
    0x00014f58 mov r0, r4                        |         r0 = r4;
    0x00014f5c pop {r4, r5, r6, pc}              |         
    0x00014f60 bl 0x90b0                         |         r0 = fcn_000090b0 ();
    0x00014f64 subs r4, r0, 0                    |         r4 = r0 - 0;
    0x00014f68 beq 0x14f54                       |         
                                                 |     }
    0x00014f6c mov r1, r5                        |     r1 = r5;
    0x00014f70 bl 0x7e80                         |     r0 = fcn_00007e80 ();
    0x00014f74 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00014f78 beq 0x14f58                       |         goto label_0;
                                                 |     }
    0x00014f7c mov r0, r4                        |     r0 = r4;
    0x00014f80 bl 0x8bb8                         |     fcn_00008bb8 ();
    0x00014f84 b 0x14f54                         |     goto label_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/lib/libmount.so.1.1.0 @ 0x16110 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_new_update ()                | void mnt_new_update () {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
    0x00016110 push {r0, r1, r2, r4, r5, lr}     |     
    0x00016114 ldr r4, [pc, 0x7c]                |     r4 = *(0x16194);
    0x00016118 mov r1, 0x1c                      |     r1 = 0x1c;
    0x0001611c mov r0, 1                         |     r0 = 1;
    0x00016120 bl 0x86e4                         |     calloc (r0, r1);
    0x00016124 add r4, pc, r4                    |     r4 = pc + r4;
    0x00016128 subs r5, r0, 0                    |     r5 = r0 - 0;
                                                 |     if (r5 != r0) {
    0x0001612c beq 0x1618c                       |         
    0x00016130 ldr r3, [pc, 0x64]                |         
    0x00016134 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x00016138 ldr r3, [r3]                      |         r3 = "t:_setting_NOMTAB";
    0x0001613c tst r3, 0x80                      |         
                                                 |         if ((r3 & 0x80) == 0) {
    0x00016140 beq 0x1618c                       |             goto label_0;
                                                 |         }
    0x00016144 ldr r3, [pc, 0x54]                |         r3 = *(0x1619c);
    0x00016148 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x0001614c ldr r4, [r3]                      |         r4 = *(0x1619c);
    0x00016150 bl 0x8204                         |         getpid ();
    0x00016154 ldr r3, [pc, 0x48]                |         r3 = *(0x161a0);
    0x00016158 ldr r1, [pc, 0x48]                |         r1 = *(0x161a4);
    0x0001615c add r3, pc, r3                    |         r3 = pc + r3;
    0x00016160 str r3, [sp]                      |         *(sp) = r3;
    0x00016164 ldr r3, [pc, 0x40]                |         r3 = *(0x161a8);
    0x00016168 add r1, pc, r1                    |         r1 = pc + r1;
    0x0001616c add r3, pc, r3                    |         r3 = pc + r3;
    0x00016170 mov r2, r0                        |         r2 = r0;
    0x00016174 mov r0, r4                        |         r0 = r4;
    0x00016178 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x0001617c ldr r1, [pc, 0x2c]                |         r1 = *(0x161ac);
    0x00016180 mov r0, r5                        |         r0 = r5;
    0x00016184 add r1, pc, r1                    |         r1 = pc + r1;
    0x00016188 bl 0x15798                        |         fcn_00015798 (r0);
                                                 |     }
                                                 | label_0:
    0x0001618c mov r0, r5                        |     r0 = r5;
    0x00016190 add sp, sp, 0xc                   |     
    0x00016194 pop {r4, r5, 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/lib/libmount.so.1.1.0 @ 0xea9c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.mnt_optstr_apply_flags ()                        | void mnt_optstr_apply_flags (uint32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_3ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000ea9c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000eaa0 ldr r8, [pc, 0x40c]                               |     r8 = *(0xeeb0);
    0x0000eaa4 mov r3, 0                                         |     r3 = 0;
    0x0000eaa8 sub sp, sp, 0x3c                                  |     
    0x0000eaac cmp r2, r3                                        |     
    0x0000eab0 cmpne r0, r3                                      |     __asm ("cmpne r0, r3");
    0x0000eab4 add r8, pc, r8                                    |     r8 = pc + r8;
    0x0000eab8 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0000eabc str r3, [sp, 0x30]                                |     var_30h = r3;
                                                                 |     if (r2 != r3) {
    0x0000eac0 mvneq r5, 0x15                                    |         r5 = ~0x15;
                                                                 |     }
                                                                 |     if (r2 == r3) {
    0x0000eac4 beq 0xec90                                        |         goto label_3;
                                                                 |     }
    0x0000eac8 ldr r3, [pc, 0x3e8]                               |     r3 = *(0xeeb4);
    0x0000eacc mov r4, r1                                        |     r4 = r1;
    0x0000ead0 ldr sb, [r8, r3]                                  |     sb = *((r8 + r3));
    0x0000ead4 mov r6, r0                                        |     r6 = r0;
    0x0000ead8 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000eadc mov r7, r2                                        |     r7 = r2;
    0x0000eae0 tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) != 0) {
    0x0000eae4 beq 0xeb34                                        |         
    0x0000eae8 ldr r3, [pc, 0x3cc]                               |         r3 = *(0xeeb8);
    0x0000eaec ldr r3, [r8, r3]                                  |         r3 = *((r8 + r3));
    0x0000eaf0 ldr r5, [r3]                                      |         r5 = *(0xeeb8);
    0x0000eaf4 bl 0x8204                                         |         getpid ();
    0x0000eaf8 ldr r3, [pc, 0x3c0]                               |         r3 = *(0xeebc);
    0x0000eafc ldr r1, [pc, 0x3c0]                               |         r1 = *(0xeec0);
    0x0000eb00 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000eb04 str r3, [sp]                                      |         *(sp) = r3;
    0x0000eb08 ldr r3, [pc, 0x3b8]                               |         r3 = *(0xeec4);
    0x0000eb0c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000eb10 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000eb14 mov r2, r0                                        |         r2 = r0;
    0x0000eb18 mov r0, r5                                        |         r0 = r5;
    0x0000eb1c bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0000eb20 ldr r0, [pc, 0x3a4]                               |         r0 = *(0xeec8);
    0x0000eb24 ldr r2, [r6]                                      |         r2 = *(r6);
    0x0000eb28 mov r1, r4                                        |         r1 = r4;
    0x0000eb2c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000eb30 bl 0xd92c                                         |         fcn_0000d92c ();
                                                                 |     }
    0x0000eb34 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000eb38 mov r0, 1                                         |     r0 = 1;
    0x0000eb3c str r7, [sp, 0x1c]                                |     var_1ch = r7;
    0x0000eb40 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0000eb44 bl 0x8c60                                         |     r0 = fcn_00008c60 ();
    0x0000eb48 cmp r7, r0                                        |     
                                                                 |     if (r7 != r0) {
    0x0000eb4c bne 0xebe4                                        |         goto label_8;
                                                                 |     }
    0x0000eb50 tst r4, 1                                         |     
                                                                 |     if ((r4 & 1) == 0) {
    0x0000eb54 beq 0xec9c                                        |         goto label_9;
                                                                 |     }
    0x0000eb58 ldr sl, [pc, 0x370]                               |     sl = *(0x0000eed0);
    0x0000eb5c add sl, pc, sl                                    |     sl = pc + sl;
                                                                 |     do {
    0x0000eb60 ldr r5, [sp, 0x24]                                |         r5 = var_24h;
    0x0000eb64 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0000eb68 beq 0xeca8                                        |             goto label_10;
                                                                 |         }
    0x0000eb6c ldr r1, [pc, 0x360]                               |         r1 = *(0xeed0);
    0x0000eb70 mov r2, 2                                         |         r2 = 2;
    0x0000eb74 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000eb78 mov r0, r5                                        |         r0 = r5;
    0x0000eb7c bl 0x8948                                         |         r0 = strncmp (r0, r1, r2);
    0x0000eb80 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000eb84 beq 0xeba4                                        |             
    0x0000eb88 ldr r1, [pc, 0x348]                               |             r1 = *(0xeed4);
    0x0000eb8c mov r2, 2                                         |             r2 = 2;
    0x0000eb90 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000eb94 mov r0, r5                                        |             r0 = r5;
    0x0000eb98 bl 0x8948                                         |             r0 = strncmp (r0, r1, r2);
    0x0000eb9c cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0000eba0 bne 0xeca8                                        |                 goto label_10;
                                                                 |             }
                                                                 |         }
    0x0000eba4 ldrsb r3, [r5, 2]                                 |         r3 = *((r5 + 2));
    0x0000eba8 cmp r3, 0x2c                                      |         
    0x0000ebac cmpne r3, 0                                       |         __asm ("cmpne r3, 0");
                                                                 |         if (r3 != 0x2c) {
    0x0000ebb0 bne 0xeca8                                        |             goto label_10;
                                                                 |         }
    0x0000ebb4 mov r2, 2                                         |         r2 = 2;
    0x0000ebb8 mov r1, sl                                        |         r1 = sl;
    0x0000ebbc mov r0, r5                                        |         r0 = r5;
    0x0000ebc0 bl 0x82a0                                         |         memcpy (r0, r1, r2);
                                                                 | label_0:
    0x0000ebc4 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0000ebc8 bic r4, r4, 1                                     |         r4 = BIT_MASK (r4, 1);
    0x0000ebcc add r2, r3, 2                                     |         r2 = r3 + 2;
    0x0000ebd0 str r2, [sp, 0x24]                                |         var_24h = r2;
    0x0000ebd4 ldrsb r2, [r3, 2]                                 |         r2 = *((r3 + 2));
    0x0000ebd8 cmp r2, 0x2c                                      |         
                                                                 |         if (r2 != 0x2c) {
    0x0000ebdc addeq r3, r3, 3                                   |             r3 += 3;
                                                                 |         }
                                                                 |         if (r2 != 0x2c) {
    0x0000ebe0 streq r3, [sp, 0x24]                              |             var_24h = r3;
                                                                 |         }
                                                                 | label_8:
    0x0000ebe4 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0000ebe8 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000ebec beq 0xec30                                        |             
    0x0000ebf0 ldrsb r3, [r3]                                    |             r3 = *(r3);
    0x0000ebf4 cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x0000ebf8 beq 0xec30                                        |                 goto label_11;
                                                                 |             }
    0x0000ebfc add r3, sp, 0x20                                  |             r3 += var_20h;
    0x0000ec00 add fp, sp, 0x28                                  |             
    0x0000ec04 add sl, sp, 0x2c                                  |             sl += var_2ch;
    0x0000ec08 str r3, [sp, 0xc]                                 |             var_ch = r3;
                                                                 | label_1:
    0x0000ec0c add r3, sp, 0x30                                  |             r3 += var_30h;
    0x0000ec10 str r3, [sp]                                      |             *(sp) = r3;
    0x0000ec14 mov r2, sl                                        |             r2 = sl;
    0x0000ec18 mov r3, fp                                        |             r3 = fp;
    0x0000ec1c ldr r1, [sp, 0xc]                                 |             r1 = var_ch;
    0x0000ec20 add r0, sp, 0x24                                  |             r0 += var_24h;
    0x0000ec24 bl 0x83fc                                         |             r0 = fcn_000083fc ();
    0x0000ec28 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0000ec2c beq 0xeccc                                        |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 | label_11:
    0x0000ec30 bics r3, r4, 0x4000                               |         __asm ("bics r3, r4, aav.0x000000ff");
                                                                 |         if (r0 != 0) {
                                                                 | label_6:
    0x0000ec34 bne 0xee20                                        |             goto label_13;
                                                                 |         }
                                                                 | label_4:
    0x0000ec38 ldr r5, [sb]                                      |         r5 = *(sb);
    0x0000ec3c ands r5, r5, 0x200                                |         r5 &= 0x200;
                                                                 |         if (r5 != r5) {
    0x0000ec40 beq 0xec90                                        |             
    0x0000ec44 ldr r3, [pc, 0x270]                               |             r3 = *(0xeeb8);
    0x0000ec48 mov r5, 0                                         |             r5 = 0;
    0x0000ec4c ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x0000ec50 ldr r4, [r3]                                      |             r4 = *(0xeeb8);
    0x0000ec54 bl 0x8204                                         |             getpid ();
    0x0000ec58 ldr r3, [pc, 0x27c]                               |             r3 = *(0xeed8);
    0x0000ec5c ldr r1, [pc, 0x27c]                               |             r1 = *(0xeedc);
    0x0000ec60 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000ec64 str r3, [sp]                                      |             *(sp) = r3;
    0x0000ec68 ldr r3, [pc, 0x274]                               |             r3 = *(0xeee0);
    0x0000ec6c add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000ec70 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000ec74 mov r2, r0                                        |             r2 = r0;
    0x0000ec78 mov r0, r4                                        |             r0 = r4;
    0x0000ec7c bl 0x8798                                         |             fprintf (r0, r1, r2, r3)
    0x0000ec80 ldr r0, [pc, 0x260]                               |             r0 = *(0xeee4);
    0x0000ec84 ldr r1, [r6]                                      |             r1 = *(r6);
    0x0000ec88 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000ec8c bl 0xd92c                                         |             fcn_0000d92c ();
                                                                 |         }
                                                                 | label_3:
    0x0000ec90 mov r0, r5                                        |         r0 = r5;
    0x0000ec94 add sp, sp, 0x3c                                  |         
    0x0000ec98 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_9:
    0x0000ec9c ldr sl, [pc, 0x248]                               |         sl = *(0x0000eeec);
    0x0000eca0 add sl, pc, sl                                    |         sl = pc + sl;
    0x0000eca4 b 0xeb60                                          |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x0000eca8 mov r2, 0                                         |     r2 = 0;
    0x0000ecac mov r1, sl                                        |     r1 = sl;
    0x0000ecb0 mov r0, r6                                        |     r0 = r6;
    0x0000ecb4 bl 0x80f0                                         |     r0 = fcn_000080f0 ();
    0x0000ecb8 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 != r0) {
    0x0000ecbc bne 0xedb8                                        |         goto label_7;
                                                                 |     }
    0x0000ecc0 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000ecc4 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0000ecc8 b 0xebc4                                          |     goto label_0;
                                                                 | label_12:
    0x0000eccc add r3, sp, 0x34                                  |     r3 += var_34h;
    0x0000ecd0 str r3, [sp]                                      |     *(sp) = r3;
    0x0000ecd4 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x0000ecd8 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0000ecdc mov r1, 1                                         |     r1 = 1;
    0x0000ece0 add r0, sp, 0x1c                                  |     r0 += var_1ch;
    0x0000ece4 bl 0xd750                                         |     r0 = fcn_0000d750 (r0, r1, r2);
    0x0000ece8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000ecec beq 0xec0c                                        |         goto label_1;
                                                                 |     }
    0x0000ecf0 ldr r5, [sp, 0x34]                                |     r5 = var_34h;
    0x0000ecf4 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000ecf8 beq 0xec0c                                        |         goto label_1;
                                                                 |     }
    0x0000ecfc ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x0000ed00 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000ed04 beq 0xec0c                                        |         goto label_1;
                                                                 |     }
    0x0000ed08 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0000ed0c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000ed10 beq 0xed4c                                        |         goto label_14;
                                                                 |     }
    0x0000ed14 ldr r0, [r5]                                      |     r0 = *(r5);
    0x0000ed18 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000ed1c beq 0xed4c                                        |         goto label_14;
                                                                 |     }
    0x0000ed20 mov r1, 0x3d                                      |     r1 = 0x3d;
    0x0000ed24 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0000ed28 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000ed2c bl 0x90a4                                         |     strchr (r0, r1);
    0x0000ed30 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000ed34 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0000ed38 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000ed3c bne 0xed4c                                        |         goto label_14;
                                                                 |     }
    0x0000ed40 ldr r1, [r5, 8]                                   |     r1 = *((r5 + 8));
    0x0000ed44 tst r1, 8                                         |     
                                                                 |     if ((r1 & 8) == 0) {
    0x0000ed48 beq 0xec0c                                        |         goto label_1;
                                                                 |     }
                                                                 | label_14:
    0x0000ed4c cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x0000ed50 beq 0xed8c                                        |         goto label_15;
                                                                 |     }
    0x0000ed54 ldr r1, [r5, 8]                                   |     r1 = *((r5 + 8));
    0x0000ed58 tst r1, 2                                         |     
                                                                 |     if ((r1 & 2) != 0) {
    0x0000ed5c bne 0xed8c                                        |         goto label_15;
                                                                 |     }
    0x0000ed60 bics r3, r3, r4                                   |     __asm ("bics r3, r3, r4");
                                                                 |     if ((r1 & 2) != 0) {
    0x0000ed64 bne 0xed8c                                        |         goto label_15;
                                                                 |     }
                                                                 | label_2:
    0x0000ed68 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x0000ed6c ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x0000ed70 tst r2, 2                                         |     
                                                                 |     if ((r2 & 2) != 0) {
    0x0000ed74 bne 0xec0c                                        |         goto label_1;
                                                                 |     }
    0x0000ed78 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x0000ed7c bic r4, r4, r3                                    |     r4 = BIT_MASK (r4, r3);
    0x0000ed80 tst r3, 0x4000                                    |     
                                                                 |     if ((r3 & 0x4000) == 0) {
    0x0000ed84 orrne r4, r4, 0x4000                              |         r4 |= 0x4000;
                                                                 |     }
    0x0000ed88 b 0xec0c                                          |     goto label_1;
                                                                 | label_15:
    0x0000ed8c ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0000ed90 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0000ed94 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000ed98 ldreq r2, [sp, 0x2c]                              |         r2 = var_2ch;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0000ed9c addne r2, r3, r2                                  |         r2 = r3 + r2;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0000eda0 addeq r2, r1, r2                                  |         r2 = r1 + r2;
                                                                 |     }
    0x0000eda4 mov r0, r6                                        |     r0 = r6;
    0x0000eda8 str r1, [sp, 0x24]                                |     var_24h = r1;
    0x0000edac bl 0xe1d0                                         |     r0 = fcn_0000e1d0 (r0, r1);
    0x0000edb0 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 == r0) {
    0x0000edb4 beq 0xed68                                        |         goto label_2;
                                                                 |     }
                                                                 | label_7:
    0x0000edb8 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000edbc tst r3, 0x200                                     |     
                                                                 |     if ((r3 & 0x200) == 0) {
    0x0000edc0 beq 0xec90                                        |         goto label_3;
                                                                 |     }
    0x0000edc4 ldr r3, [pc, 0xf0]                                |     r3 = *(0xeeb8);
    0x0000edc8 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0000edcc ldr r4, [r3]                                      |     r4 = *(0xeeb8);
    0x0000edd0 bl 0x8204                                         |     getpid ();
    0x0000edd4 ldr r3, [pc, 0x114]                               |     r3 = *(0xeeec);
    0x0000edd8 ldr r1, [pc, 0x114]                               |     r1 = *(0xeef0);
    0x0000eddc add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000ede0 str r3, [sp]                                      |     *(sp) = r3;
    0x0000ede4 ldr r3, [pc, 0x10c]                               |     r3 = *(0xeef4);
    0x0000ede8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000edec add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000edf0 mov r2, r0                                        |     r2 = r0;
    0x0000edf4 mov r0, r4                                        |     r0 = r4;
    0x0000edf8 bl 0x8798                                         |     fprintf (r0, r1, r2, r3)
    0x0000edfc ldr r0, [pc, 0xf8]                                |     r0 = *(0xeef8);
    0x0000ee00 mov r1, r5                                        |     r1 = r5;
    0x0000ee04 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000ee08 bl 0xd92c                                         |     fcn_0000d92c ();
    0x0000ee0c b 0xec90                                          |     goto label_3;
                                                                 | label_5:
    0x0000ee10 mov r1, r5                                        |     r1 = r5;
    0x0000ee14 mov r0, r6                                        |     r0 = r6;
    0x0000ee18 bl 0x7fdc                                         |     fcn_00007fdc ();
    0x0000ee1c b 0xeea4                                          |     goto label_16;
                                                                 | label_13:
    0x0000ee20 ldr r5, [r7]                                      |     r5 = *(r7);
    0x0000ee24 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000ee28 beq 0xec38                                        |         goto label_4;
                                                                 |     }
    0x0000ee2c ldr sl, [r7, 8]                                   |     sl = *((r7 + 8));
    0x0000ee30 ands sl, sl, 2                                    |     sl &= 2;
                                                                 |     if (sl != sl) {
    0x0000ee34 bne 0xeea4                                        |         goto label_16;
                                                                 |     }
    0x0000ee38 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x0000ee3c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000ee40 beq 0xeea4                                        |         goto label_16;
                                                                 |     }
    0x0000ee44 bics r3, r3, r4                                   |     __asm ("bics r3, r3, r4");
                                                                 |     if (r3 != 0) {
    0x0000ee48 bne 0xeea4                                        |         goto label_16;
                                                                 |     }
    0x0000ee4c mov r1, 0x3d                                      |     r1 = 0x3d;
    0x0000ee50 mov r0, r5                                        |     r0 = r5;
    0x0000ee54 bl 0x90a4                                         |     r0 = strchr (r0, r1);
    0x0000ee58 subs r2, r0, 0                                    |     r2 = r0 - 0;
                                                                 |     if (r2 == r0) {
    0x0000ee5c beq 0xee10                                        |         goto label_5;
                                                                 |     }
    0x0000ee60 cmp r5, r2                                        |     
                                                                 |     if (r5 < r2) {
    0x0000ee64 bhs 0xeea4                                        |         
    0x0000ee68 ldrsb r3, [r2, -1]                                |         r3 = *((r2 - 1));
    0x0000ee6c cmp r3, 0x5b                                      |         
                                                                 |         if (r3 != 0x5b) {
    0x0000ee70 bne 0xeea4                                        |             goto label_16;
                                                                 |         }
    0x0000ee74 sub r2, r2, 1                                     |         r2--;
    0x0000ee78 sub r1, r2, r5                                    |         r1 = r2 - r5;
    0x0000ee7c mov r0, r5                                        |         r0 = r5;
    0x0000ee80 bl 0x8048                                         |         r0 = strndup (r0, r1);
    0x0000ee84 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 == r0) {
    0x0000ee88 beq 0xeeac                                        |             goto label_17;
                                                                 |         }
    0x0000ee8c mov r2, sl                                        |         r2 = sl;
    0x0000ee90 mov r1, r5                                        |         r1 = r5;
    0x0000ee94 mov r0, r6                                        |         r0 = r6;
    0x0000ee98 bl 0x7fdc                                         |         fcn_00007fdc ();
    0x0000ee9c mov r0, r5                                        |         r0 = r5;
    0x0000eea0 bl 0x91c4                                         |         free (r0);
                                                                 |     }
                                                                 | label_16:
    0x0000eea4 adds r7, r7, 0xc                                  |     r7 += 0xc;
    0x0000eea8 b 0xec34                                          |     goto label_6;
                                                                 | label_17:
    0x0000eeac mvn r5, 0xb                                       |     r5 = ~0xb;
    0x0000eeb0 b 0xedb8                                          |     goto label_7;
                                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0xe01c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.mnt_optstr_prepend_option ()                         | void mnt_optstr_prepend_option (int32_t arg1, uint32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_8h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0000e01c push {r0, r1, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0000e020 ldr r7, [pc, 0x110]                                   |     r7 = *(0xe134);
    0x0000e024 subs r6, r0, 0                                        |     r6 = r0 - 0;
    0x0000e028 add r7, pc, r7                                        |     r7 = pc + r7;
                                                                     |     if (r6 != r0) {
    0x0000e02c mvneq r4, 0x15                                        |         r4 = ~0x15;
                                                                     |     }
                                                                     |     if (r6 == r0) {
    0x0000e030 beq 0xe09c                                            |         goto label_0;
                                                                     |     }
    0x0000e034 cmp r1, 0                                             |     
    0x0000e038 mov r4, r1                                            |     r4 = r1;
                                                                     |     if (r1 == 0) {
    0x0000e03c beq 0xe09c                                            |         goto label_0;
                                                                     |     }
    0x0000e040 ldrsb r3, [r1]                                        |     r3 = *(r1);
    0x0000e044 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000e048 moveq r4, r3                                          |         r4 = r3;
                                                                     |     }
                                                                     |     if (r3 == 0) {
    0x0000e04c beq 0xe09c                                            |         goto label_0;
                                                                     |     }
    0x0000e050 mov sl, 0                                             |     sl = 0;
    0x0000e054 ldr r5, [r6]                                          |     r5 = *(r6);
    0x0000e058 str sl, [r6]                                          |     *(r6) = sl;
    0x0000e05c mov r8, r2                                            |     r8 = r2;
    0x0000e060 bl 0x7fdc                                             |     fcn_00007fdc ();
    0x0000e064 subs r3, r5, sl                                       |     r3 = r5 - sl;
                                                                     |     if (r3 == r5) {
    0x0000e068 movne r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000e06c mov sb, r4                                            |     sb = r4;
    0x0000e070 cmp r0, sl                                            |     
                                                                     |     if (r0 == sl) {
    0x0000e074 movne r3, sl                                          |         r3 = sl;
                                                                     |     }
    0x0000e078 cmp r3, sl                                            |     
    0x0000e07c mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r3 == sl) {
    0x0000e080 beq 0xe0bc                                            |         goto label_1;
                                                                     |     }
    0x0000e084 ldrsb r3, [r5]                                        |     r3 = *(r5);
    0x0000e088 cmp r3, sl                                            |     
    0x0000e08c bne 0xe0a8                                            |     
                                                                     |     while (r4 == 0) {
    0x0000e090 mov r0, r5                                            |         r0 = r5;
    0x0000e094 bl 0x91c4                                             |         free (r0);
    0x0000e098 mov r4, 0                                             |         r4 = 0;
                                                                     | label_0:
    0x0000e09c mov r0, r4                                            |         r0 = r4;
    0x0000e0a0 add sp, sp, 8                                         |         
    0x0000e0a4 pop {r4, r5, r6, r7, r8, sb, sl, pc}                  |         
    0x0000e0a8 mov r2, sl                                            |         r2 = sl;
    0x0000e0ac mov r1, r5                                            |         r1 = r5;
    0x0000e0b0 mov r0, r6                                            |         r0 = r6;
    0x0000e0b4 bl 0x7fdc                                             |         r0 = fcn_00007fdc ();
    0x0000e0b8 mov r4, r0                                            |         r4 = r0;
                                                                     | label_1:
    0x0000e0bc cmp r4, 0                                             |         
    0x0000e0c0 beq 0xe090                                            |         
                                                                     |     }
    0x0000e0c4 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000e0c8 bl 0x91c4                                             |     free (r0);
    0x0000e0cc ldr r3, [pc, 0x68]                                    |     
    0x0000e0d0 str r5, [r6]                                          |     *(r6) = r5;
    0x0000e0d4 ldr r3, [r7, r3]                                      |     r3 = *((r7 + r3));
    0x0000e0d8 ldr r3, [r3]                                          |     r3 = *(0xe138);
    0x0000e0dc tst r3, 8                                             |     
                                                                     |     if ((r3 & 8) == 0) {
    0x0000e0e0 beq 0xe09c                                            |         goto label_0;
                                                                     |     }
    0x0000e0e4 ldr r3, [pc, 0x54]                                    |     r3 = *(0xe13c);
    0x0000e0e8 ldr r3, [r7, r3]                                      |     r3 = *((r7 + r3));
    0x0000e0ec ldr r5, [r3]                                          |     r5 = *(0xe13c);
    0x0000e0f0 bl 0x8204                                             |     getpid ();
    0x0000e0f4 ldr r3, [pc, 0x48]                                    |     r3 = *(0xe140);
    0x0000e0f8 ldr r1, [pc, 0x48]                                    |     r1 = *(0xe144);
    0x0000e0fc add r3, pc, r3                                        |     r3 = pc + r3;
    0x0000e100 str r3, [sp]                                          |     *(sp) = r3;
    0x0000e104 ldr r3, [pc, 0x40]                                    |     r3 = *(0xe148);
    0x0000e108 add r1, pc, r1                                        |     r1 = pc + r1;
    0x0000e10c add r3, pc, r3                                        |     r3 = pc + r3;
    0x0000e110 mov r2, r0                                            |     r2 = r0;
    0x0000e114 mov r0, r5                                            |     r0 = r5;
    0x0000e118 bl 0x8798                                             |     fprintf (r0, r1, r2, r3)
    0x0000e11c ldr r0, [pc, 0x2c]                                    |     r0 = *(0xe14c);
    0x0000e120 ldr r3, [r6]                                          |     r3 = *(r6);
    0x0000e124 mov r2, r8                                            |     r2 = r8;
    0x0000e128 mov r1, sb                                            |     r1 = sb;
    0x0000e12c add r0, pc, r0                                        |     r0 = pc + r0;
    0x0000e130 bl 0xd92c                                             |     fcn_0000d92c ();
    0x0000e134 b 0xe09c                                              |     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/lib/libmount.so.1.1.0 @ 0x1b76c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_reset_context ()                 | void mnt_reset_context (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
    0x0001b76c ldr r3, [pc, 0x160]                   |     r3 = *(0x1b8d0);
    0x0001b770 push {r0, r1, r4, r5, r6, lr}         |     
    0x0001b774 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0001b778 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r4 != r0) {
    0x0001b77c mvneq r0, 0x15                        |         r0 = ~0x15;
                                                     |     }
                                                     |     if (r4 == r0) {
    0x0001b780 beq 0x1b8c0                           |         goto label_0;
                                                     |     }
    0x0001b784 ldr r2, [pc, 0x14c]                   |     
    0x0001b788 ldr r2, [r3, r2]                      |     r2 = *((r3 + r2));
    0x0001b78c ldr r2, [r2]                          |     r2 = *(0x1b8d4);
    0x0001b790 tst r2, 0x200                         |     
                                                     |     if ((r2 & 0x200) != 0) {
    0x0001b794 beq 0x1b7ec                           |         
    0x0001b798 ldr r2, [pc, 0x13c]                   |         r2 = *(0x1b8d8);
    0x0001b79c ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x0001b7a0 ldr r5, [r3]                          |         r5 = *(r3);
    0x0001b7a4 bl 0x8204                             |         getpid ();
    0x0001b7a8 ldr r3, [pc, 0x130]                   |         r3 = *(0x1b8dc);
    0x0001b7ac ldr r1, [pc, 0x130]                   |         r1 = *(0x1b8e0);
    0x0001b7b0 add r3, pc, r3                        |         r3 = pc + r3;
    0x0001b7b4 str r3, [sp]                          |         *(sp) = r3;
    0x0001b7b8 ldr r3, [pc, 0x128]                   |         r3 = *(0x1b8e4);
    0x0001b7bc add r1, pc, r1                        |         r1 = pc + r1;
    0x0001b7c0 add r3, pc, r3                        |         r3 = pc + r3;
    0x0001b7c4 mov r2, r0                            |         r2 = r0;
    0x0001b7c8 mov r0, r5                            |         r0 = r5;
    0x0001b7cc bl 0x8798                             |         fprintf (r0, r1, r2, r3)
    0x0001b7d0 mov r0, r4                            |         r0 = r4;
    0x0001b7d4 bl 0x8198                             |         fcn_00008198 ();
    0x0001b7d8 ldr r1, [pc, 0x10c]                   |         r1 = *(0x1b8e8);
    0x0001b7dc add r1, pc, r1                        |         r1 = pc + r1;
    0x0001b7e0 mov r2, r0                            |         r2 = r0;
    0x0001b7e4 mov r0, r4                            |         r0 = r4;
    0x0001b7e8 bl 0x1a538                            |         fcn_0001a538 (r0);
                                                     |     }
    0x0001b7ec ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0001b7f0 ldr r5, [r4, 0x6c]                    |     r5 = *((r4 + 0x6c));
    0x0001b7f4 bl 0x8960                             |     fcn_00008960 ();
    0x0001b7f8 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001b7fc bl 0x8bb8                             |     fcn_00008bb8 ();
    0x0001b800 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x0001b804 bl 0x8bb8                             |     fcn_00008bb8 ();
    0x0001b808 ldr r0, [r4, 0x70]                    |     r0 = *((r4 + 0x70));
    0x0001b80c bl 0x91c4                             |     free (r0);
    0x0001b810 ldr r0, [r4, 0x7c]                    |     r0 = *((r4 + 0x7c));
    0x0001b814 bl 0x91c4                             |     free (r0);
    0x0001b818 add r6, r4, 0x48                      |     r6 = r4 + 0x48;
    0x0001b81c mov r3, 0                             |     r3 = 0;
    0x0001b820 str r3, [r4, 0x10]                    |     *((r4 + 0x10)) = r3;
    0x0001b824 str r3, [r4, 0x18]                    |     *((r4 + 0x18)) = r3;
    0x0001b828 str r3, [r4, 0x1c]                    |     *((r4 + 0x1c)) = r3;
    0x0001b82c str r3, [r4, 0x70]                    |     *((r4 + 0x70)) = r3;
    0x0001b830 str r3, [r4, 0x7c]                    |     *((r4 + 0x7c)) = r3;
    0x0001b834 str r3, [r4, 0x3c]                    |     *((r4 + 0x3c)) = r3;
    0x0001b838 str r3, [r4, 0x44]                    |     *((r4 + 0x44)) = r3;
    0x0001b83c str r3, [r4, 0x40]                    |     *((r4 + 0x40)) = r3;
    0x0001b840 str r3, [r4, 0x6c]                    |     *((r4 + 0x6c)) = r3;
                                                     |     do {
    0x0001b844 ldr r0, [r4, 0x48]                    |         r0 = *((r4 + 0x48));
    0x0001b848 cmp r0, r6                            |         
                                                     |         if (r0 == r6) {
    0x0001b84c bne 0x1b8c8                           |             
    0x0001b850 mov r0, r4                            |             r0 = r4;
    0x0001b854 bl 0x81c8                             |             fcn_000081c8 ();
    0x0001b858 ldr r3, [r4, 0x24]                    |             r3 = *((r4 + 0x24));
    0x0001b85c cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x0001b860 beq 0x1b874                           |                 
    0x0001b864 mov r2, 0                             |                 r2 = 0;
    0x0001b868 mov r1, r2                            |                 r1 = r2;
    0x0001b86c mov r0, r4                            |                 r0 = r4;
    0x0001b870 bl 0x1b12c                            |                 fcn_0001b12c (r0, r1);
                                                     |             }
    0x0001b874 ldr r2, [r4, 0x6c]                    |             r2 = *((r4 + 0x6c));
    0x0001b878 and r3, r5, 0xfe                      |             r3 = r5 & 0xfe;
    0x0001b87c orr r3, r3, r2                        |             r3 |= r2;
    0x0001b880 and r2, r5, 0x1000                    |             r2 = r5 & 0x1000;
    0x0001b884 orr r3, r3, r2                        |             r3 |= r2;
    0x0001b888 and r2, r5, 0x100                     |             r2 = r5 & 0x100;
    0x0001b88c orr r3, r3, r2                        |             r3 |= r2;
    0x0001b890 and r2, r5, 0x200                     |             r2 = r5 & 0x200;
    0x0001b894 orr r3, r3, r2                        |             r3 |= r2;
    0x0001b898 and r2, r5, 0x800                     |             r2 = r5 & 0x800;
    0x0001b89c orr r3, r3, r2                        |             r3 |= r2;
    0x0001b8a0 and r2, r5, 0x4000                    |             r2 = r5 & 0x4000;
    0x0001b8a4 orr r3, r3, r2                        |             r3 |= r2;
    0x0001b8a8 and r2, r5, 0x2000                    |             r2 = r5 & 0x2000;
    0x0001b8ac orr r3, r3, r2                        |             r3 |= r2;
    0x0001b8b0 and r5, r5, 0x10000000                |             r5 &= 0x10000000;
    0x0001b8b4 orr r3, r3, r5                        |             r3 |= r5;
    0x0001b8b8 mov r0, 0                             |             r0 = 0;
    0x0001b8bc str r3, [r4, 0x6c]                    |             *((r4 + 0x6c)) = r3;
                                                     | label_0:
    0x0001b8c0 add sp, sp, 8                         |             
    0x0001b8c4 pop {r4, r5, r6, pc}                  |             
                                                     |         }
    0x0001b8c8 sub r0, r0, 4                         |         r0 -= 4;
    0x0001b8cc bl 0x219dc                            |         fcn_000219dc (r0);
    0x0001b8d0 b 0x1b844                             |         
                                                     |     } 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/lib/libmount.so.1.1.0 @ 0xfacc */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mnt_reset_table ()                   | void mnt_reset_table (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000facc ldr r3, [pc, 0x98]                    |     r3 = *(0xfb68);
    0x0000fad0 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000fad4 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0000fad8 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r4 != r0) {
    0x0000fadc mvneq r0, 0x15                        |         r0 = ~0x15;
                                                     |     }
                                                     |     if (r4 == r0) {
    0x0000fae0 beq 0xfb58                            |         goto label_0;
                                                     |     }
    0x0000fae4 ldr r2, [pc, 0x84]                    |     
    0x0000fae8 ldr r2, [r3, r2]                      |     r2 = *((r3 + r2));
    0x0000faec ldr r2, [r2]                          |     r2 = *(0xfb6c);
    0x0000faf0 tst r2, 0x20                          |     
                                                     |     if ((r2 & 0x20) != 0) {
    0x0000faf4 beq 0xfb40                            |         
    0x0000faf8 ldr r2, [pc, 0x74]                    |         r2 = *(0xfb70);
    0x0000fafc ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x0000fb00 ldr r5, [r3]                          |         r5 = *(r3);
    0x0000fb04 bl 0x8204                             |         getpid ();
    0x0000fb08 ldr r3, [pc, 0x68]                    |         r3 = *(0xfb74);
    0x0000fb0c ldr r1, [pc, 0x68]                    |         r1 = *(0xfb78);
    0x0000fb10 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000fb14 str r3, [sp]                          |         *(sp) = r3;
    0x0000fb18 ldr r3, [pc, 0x60]                    |         r3 = *(0xfb7c);
    0x0000fb1c add r1, pc, r1                        |         r1 = pc + r1;
    0x0000fb20 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000fb24 mov r2, r0                            |         r2 = r0;
    0x0000fb28 mov r0, r5                            |         r0 = r5;
    0x0000fb2c bl 0x8798                             |         fprintf (r0, r1, r2, r3)
    0x0000fb30 ldr r1, [pc, 0x4c]                    |         r1 = *(0xfb80);
    0x0000fb34 mov r0, r4                            |         r0 = r4;
    0x0000fb38 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000fb3c bl 0xf520                             |         fcn_0000f520 (r0);
                                                     |     }
    0x0000fb40 add r5, r4, 0x28                      |     r5 = r4 + 0x28;
                                                     |     do {
    0x0000fb44 ldr r1, [r4, 0x28]                    |         r1 = *((r4 + 0x28));
    0x0000fb48 cmp r1, r5                            |         
                                                     |         if (r1 == r5) {
    0x0000fb4c bne 0xfb60                            |             
    0x0000fb50 mov r0, 0                             |             r0 = 0;
    0x0000fb54 str r0, [r4, 4]                       |             *((r4 + 4)) = r0;
                                                     | label_0:
    0x0000fb58 add sp, sp, 0xc                       |             
    0x0000fb5c pop {r4, r5, pc}                      |             
                                                     |         }
    0x0000fb60 mov r0, r4                            |         r0 = r4;
    0x0000fb64 bl 0x8288                             |         fcn_00008288 ();
    0x0000fb68 b 0xfb44                              |         
                                                     |     } 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/lib/libmount.so.1.1.0 @ 0xf96c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_add_fs ()                          | void mnt_table_add_fs (uint32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000f96c push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000f970 ldr r6, [pc, 0xd4]                            |     r6 = *(0xfa48);
    0x0000f974 cmp r0, 0                                     |     
    0x0000f978 mov r5, r1                                    |     r5 = r1;
    0x0000f97c clz r1, r1                                    |     r1 &= r1;
    0x0000f980 lsr r1, r1, 5                                 |     r1 >>= 5;
                                                             |     if (r0 == 0) {
    0x0000f984 movne r7, r1                                  |         r7 = r1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0000f988 moveq r7, 1                                   |         r7 = 1;
                                                             |     }
    0x0000f98c cmp r7, 0                                     |     
    0x0000f990 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r7 == 0) {
    0x0000f994 mvnne r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r7 == 0) {
    0x0000f998 bne 0xfa44                                    |         
    0x0000f99c mov r4, r0                                    |         r4 = r0;
    0x0000f9a0 mov r0, r5                                    |         r0 = r5;
    0x0000f9a4 bl 0x827c                                     |         fcn_0000827c ();
    0x0000f9a8 ldr r3, [r4, 0x2c]                            |         r3 = *((r4 + 0x2c));
    0x0000f9ac add r2, r4, 0x28                              |         r2 = r4 + 0x28;
    0x0000f9b0 str r5, [r4, 0x2c]                            |         *((r4 + 0x2c)) = r5;
    0x0000f9b4 stm r5, {r2, r3}                              |         *(r5) = r2;
                                                             |         *((r5 + 4)) = r3;
    0x0000f9b8 str r5, [r3]                                  |         *(r3) = r5;
    0x0000f9bc ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x0000f9c0 add r3, r3, 1                                 |         r3++;
    0x0000f9c4 str r3, [r4, 4]                               |         *((r4 + 4)) = r3;
    0x0000f9c8 ldr r3, [pc, 0x80]                            |         r3 = *(0xfa4c);
    0x0000f9cc ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0000f9d0 ldr r0, [r3]                                  |         r0 = *(0xfa4c);
    0x0000f9d4 ands r0, r0, 0x20                             |         r0 &= 0x20;
                                                             |         if (r0 == r0) {
    0x0000f9d8 beq 0xfa44                                    |             goto label_0;
                                                             |         }
    0x0000f9dc ldr r3, [pc, 0x70]                            |         r3 = *(0xfa50);
    0x0000f9e0 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0000f9e4 ldr r6, [r3]                                  |         r6 = *(0xfa50);
    0x0000f9e8 bl 0x8204                                     |         getpid ();
    0x0000f9ec ldr r3, [pc, 0x64]                            |         r3 = *(0xfa54);
    0x0000f9f0 ldr r1, [pc, 0x64]                            |         r1 = *(0xfa58);
    0x0000f9f4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000f9f8 str r3, [sp]                                  |         *(sp) = r3;
    0x0000f9fc ldr r3, [pc, 0x5c]                            |         r3 = *(0xfa5c);
    0x0000fa00 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000fa04 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000fa08 mov r2, r0                                    |         r2 = r0;
    0x0000fa0c mov r0, r6                                    |         r0 = r6;
    0x0000fa10 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x0000fa14 mov r0, r5                                    |         r0 = r5;
    0x0000fa18 bl 0x8c90                                     |         r0 = fcn_00008c90 ();
    0x0000fa1c mov r6, r0                                    |         r6 = r0;
    0x0000fa20 mov r0, r5                                    |         r0 = r5;
    0x0000fa24 bl 0x81d4                                     |         fcn_000081d4 ();
    0x0000fa28 ldr r1, [pc, 0x34]                            |         r1 = *(0xfa60);
    0x0000fa2c mov r2, r6                                    |         r2 = r6;
    0x0000fa30 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000fa34 mov r3, r0                                    |         r3 = r0;
    0x0000fa38 mov r0, r4                                    |         r0 = r4;
    0x0000fa3c bl 0xf520                                     |         fcn_0000f520 (r0);
    0x0000fa40 mov r0, r7                                    |         r0 = r7;
                                                             |     }
                                                             | label_0:
    0x0000fa44 add sp, sp, 0xc                               |     
    0x0000fa48 pop {r4, r5, r6, r7, 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/lib/libmount.so.1.1.0 @ 0x11508 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_table_find_devno ()          | void mnt_table_find_devno (int32_t arg_30h, int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x00011508 push {r4, r5, r6, r7, r8, lr}     |     
    0x0001150c mov r7, r3                        |     r7 = r3;
    0x00011510 ldr r3, [pc, 0xd8]                |     r3 = *(0x115ec);
    0x00011514 sub sp, sp, 0x18                  |     
    0x00011518 mov r6, r2                        |     r6 = r2;
    0x0001151c subs r4, r0, 0                    |     r4 -= arg_30h;
    0x00011520 mov r2, 0                         |     r2 = 0;
    0x00011524 add r3, pc, r3                    |     r3 = pc + r3;
    0x00011528 ldr r8, [sp, 0x30]                |     r8 = *(arg_30h);
    0x0001152c str r2, [sp, 8]                   |     var_8h = r2;
    0x00011530 bne 0x11540                       |     
                                                 |     while (r8 > 1) {
                                                 | label_0:
    0x00011534 mov r0, 0                         |         r0 = 0;
                                                 | label_2:
    0x00011538 add sp, sp, 0x18                  |         
    0x0001153c pop {r4, r5, r6, r7, r8, pc}      |         
    0x00011540 cmp r8, 1                         |         
    0x00011544 bhi 0x11534                       |         
                                                 |     }
    0x00011548 ldr r2, [pc, 0xa4]                |     
    0x0001154c ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x00011550 ldr r2, [r2]                      |     r2 = *(0x115f0);
    0x00011554 tst r2, 0x20                      |     
                                                 |     if ((r2 & 0x20) != 0) {
    0x00011558 beq 0x115a8                       |         
    0x0001155c ldr r2, [pc, 0x94]                |         r2 = *(0x115f4);
    0x00011560 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x00011564 ldr r5, [r3]                      |         r5 = *(r3);
    0x00011568 bl 0x8204                         |         getpid ();
    0x0001156c ldr r3, [pc, 0x88]                |         r3 = *(0x115f8);
    0x00011570 ldr r1, [pc, 0x88]                |         r1 = *(0x115fc);
    0x00011574 add r3, pc, r3                    |         r3 = pc + r3;
    0x00011578 str r3, [sp]                      |         *(sp) = r3;
    0x0001157c ldr r3, [pc, 0x80]                |         r3 = *(0x11600);
    0x00011580 add r1, pc, r1                    |         r1 = pc + r1;
    0x00011584 add r3, pc, r3                    |         r3 = pc + r3;
    0x00011588 mov r2, r0                        |         r2 = r0;
    0x0001158c mov r0, r5                        |         r0 = r5;
    0x00011590 bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00011594 ldr r1, [pc, 0x6c]                |         r1 = *(0x11604);
    0x00011598 mov r2, r6                        |         r2 = r6;
    0x0001159c add r1, pc, r1                    |         r1 = pc + r1;
    0x000115a0 mov r0, r4                        |         r0 = r4;
    0x000115a4 bl 0xf520                         |         fcn_0000f520 (r0);
                                                 |     }
    0x000115a8 add r5, sp, 0xc                   |     r5 += var_ch;
    0x000115ac mov r1, r8                        |     r1 = r8;
    0x000115b0 mov r0, r5                        |     r0 = r5;
    0x000115b4 bl 0x8588                         |     fcn_00008588 ();
    0x000115b8 add r8, sp, 8                     |     r8 += var_8h;
                                                 | label_1:
    0x000115bc mov r2, r8                        |     r2 = r8;
    0x000115c0 mov r1, r5                        |     r1 = r5;
    0x000115c4 mov r0, r4                        |     r0 = r4;
    0x000115c8 bl 0x7fa0                         |     r0 = fcn_00007fa0 ();
    0x000115cc cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x000115d0 bne 0x11534                       |         goto label_0;
                                                 |     }
    0x000115d4 ldr r0, [sp, 8]                   |     r0 = var_8h;
    0x000115d8 bl 0x7ed4                         |     fcn_00007ed4 ();
    0x000115dc cmp r1, r7                        |     
    0x000115e0 cmpeq r0, r6                      |     __asm ("cmpeq r0, r6");
                                                 |     if (r1 != r7) {
    0x000115e4 bne 0x115bc                       |         goto label_1;
                                                 |     }
    0x000115e8 ldr r0, [sp, 8]                   |     r0 = var_8h;
    0x000115ec b 0x11538                         |     goto label_2;
                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0x10938 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_table_find_mountpoint ()     | void mnt_table_find_mountpoint (uint32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_74h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00010938 ldr r3, [pc, 0x128]               |     r3 = *(0x10a64);
    0x0001093c cmp r1, 0                         |     
    0x00010940 cmpne r0, 0                       |     __asm ("cmpne r0, 0");
    0x00010944 push {r4, r5, r6, r7, lr}         |     
    0x00010948 add r3, pc, r3                    |     r3 = pc + r3;
    0x0001094c sub sp, sp, 0x74                  |     
    0x00010950 bne 0x10964                       |     
                                                 |     while (ip == 0) {
                                                 | label_0:
    0x00010954 mov r5, 0                         |         r5 = 0;
                                                 | label_1:
    0x00010958 mov r0, r5                        |         r0 = r5;
    0x0001095c add sp, sp, 0x74                  |         
    0x00010960 pop {r4, r5, r6, r7, pc}          |         
    0x00010964 ldrsb ip, [r1]                    |         ip = *(r1);
    0x00010968 cmp ip, 0                         |         
    0x0001096c beq 0x10954                       |         
                                                 |     }
    0x00010970 cmp r2, 1                         |     
                                                 |     if (r2 > 1) {
    0x00010974 bhi 0x10954                       |         goto label_0;
                                                 |     }
    0x00010978 mov r7, r2                        |     r7 = r2;
    0x0001097c ldr r2, [pc, 0xe8]                |     
    0x00010980 mov r4, r1                        |     r4 = r1;
    0x00010984 ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x00010988 mov r6, r0                        |     r6 = r0;
    0x0001098c ldr r2, [r2]                      |     r2 = *(0x10a68);
    0x00010990 tst r2, 0x20                      |     
                                                 |     if ((r2 & 0x20) != 0) {
    0x00010994 beq 0x109e4                       |         
    0x00010998 ldr r2, [pc, 0xd0]                |         r2 = *(0x10a6c);
    0x0001099c ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x000109a0 ldr r5, [r3]                      |         r5 = *(r3);
    0x000109a4 bl 0x8204                         |         getpid ();
    0x000109a8 ldr r3, [pc, 0xc4]                |         r3 = *(0x10a70);
    0x000109ac ldr r1, [pc, 0xc4]                |         r1 = *(0x10a74);
    0x000109b0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000109b4 str r3, [sp]                      |         *(sp) = r3;
    0x000109b8 ldr r3, [pc, 0xbc]                |         r3 = *(0x10a78);
    0x000109bc add r1, pc, r1                    |         r1 = pc + r1;
    0x000109c0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000109c4 mov r2, r0                        |         r2 = r0;
    0x000109c8 mov r0, r5                        |         r0 = r5;
    0x000109cc bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x000109d0 ldr r1, [pc, 0xa8]                |         r1 = *(0x10a7c);
    0x000109d4 mov r2, r4                        |         r2 = r4;
    0x000109d8 add r1, pc, r1                    |         r1 = pc + r1;
    0x000109dc mov r0, r6                        |         r0 = r6;
    0x000109e0 bl 0xf520                         |         fcn_0000f520 (r0);
                                                 |     }
    0x000109e4 add r1, sp, 8                     |     r1 += var_8h;
    0x000109e8 mov r0, r4                        |     r0 = r4;
    0x000109ec bl 0x180e4                        |     r0 = fcn_000180e4 (r0, r1);
    0x000109f0 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x000109f4 bne 0x10954                       |         goto label_0;
                                                 |     }
    0x000109f8 mov r0, r4                        |     r0 = r4;
    0x000109fc bl 0x8ae0                         |     r0 = strdup (r0);
    0x00010a00 subs r4, r0, 0                    |     r4 = r0 - 0;
                                                 |     if (r4 == r0) {
    0x00010a04 beq 0x10954                       |         goto label_0;
                                                 |     }
                                                 |     do {
    0x00010a08 mov r2, r7                        |         r2 = r7;
    0x00010a0c mov r1, r4                        |         r1 = r4;
    0x00010a10 mov r0, r6                        |         r0 = r6;
    0x00010a14 bl 0x86a8                         |         r0 = fcn_000086a8 ();
    0x00010a18 subs r5, r0, 0                    |         r5 = r0 - 0;
    0x00010a1c mov r0, r4                        |         r0 = r4;
                                                 |         if (r5 != r0) {
    0x00010a20 beq 0x10a2c                       |             
    0x00010a24 bl 0x91c4                         |             free (r0);
    0x00010a28 b 0x10958                         |             goto label_1;
                                                 |         }
    0x00010a2c bl 0x2a12c                        |         r0 = fcn_0002a12c (r0);
    0x00010a30 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00010a34 beq 0x10a44                       |             goto label_2;
                                                 |         }
    0x00010a38 ldrsb r3, [r4, 1]                 |         r3 = *((r4 + 1));
    0x00010a3c cmp r3, 0                         |         
    0x00010a40 bne 0x10a08                       |         
                                                 |     } while (r3 != 0);
                                                 | label_2:
    0x00010a44 mov r0, r4                        |     r0 = r4;
    0x00010a48 bl 0x91c4                         |     free (r0);
    0x00010a4c ldr r1, [pc, 0x30]                |     r1 = *(0x10a80);
    0x00010a50 mov r2, r7                        |     r2 = r7;
    0x00010a54 add r1, pc, r1                    |     r1 = pc + r1;
    0x00010a58 mov r0, r6                        |     r0 = r6;
    0x00010a5c bl 0x86a8                         |     r0 = fcn_000086a8 ();
    0x00010a60 mov r5, r0                        |     r5 = r0;
    0x00010a64 b 0x10958                         |     goto label_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/lib/libmount.so.1.1.0 @ 0xffc8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_table_find_next_fs ()                        | void mnt_table_find_next_fs (int32_t arg_28h, uint32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000ffc8 ldr ip, [pc, 0x114]                               |     ip = *(0x000100e4);
    0x0000ffcc push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x0000ffd0 ldr r7, [sp, 0x28]                                |     r7 = *(arg_28h);
    0x0000ffd4 cmp r1, 0                                         |     
    0x0000ffd8 cmpne r0, 0                                       |     __asm ("cmpne arg_28h");
    0x0000ffdc add ip, pc, ip                                    |     
                                                                 |     if (r1 == 0) {
    0x0000ffe0 beq 0x100dc                                       |         goto label_0;
                                                                 |     }
    0x0000ffe4 cmp r2, 0                                         |     
    0x0000ffe8 cmpne r7, 0                                       |     __asm ("cmpne r7, 0");
                                                                 |     if (r2 == 0) {
    0x0000ffec beq 0x100dc                                       |         goto label_0;
                                                                 |     }
    0x0000fff0 mov r8, r3                                        |     r8 = r3;
    0x0000fff4 ldr r3, [pc, 0xec]                                |     
    0x0000fff8 mov r4, r1                                        |     r4 = r1;
    0x0000fffc ldr r3, [ip, r3]                                  |     r3 = *((ip + r3));
    0x00010000 mov r5, r0                                        |     r5 = r0;
    0x00010004 ldr r3, [r3]                                      |     r3 = *(0x100e4);
    0x00010008 mov r6, r2                                        |     r6 = r2;
    0x0001000c tst r3, 0x20                                      |     
                                                                 |     if ((r3 & 0x20) != 0) {
    0x00010010 beq 0x1005c                                       |         
    0x00010014 ldr r3, [pc, 0xd0]                                |         r3 = *(0x100e8);
    0x00010018 ldr r3, [ip, r3]                                  |         r3 = *((ip + r3));
    0x0001001c ldr sb, [r3]                                      |         sb = *(0x100e8);
    0x00010020 bl 0x8204                                         |         getpid ();
    0x00010024 ldr r3, [pc, 0xc4]                                |         r3 = *(0x100ec);
    0x00010028 ldr r1, [pc, 0xc4]                                |         r1 = *(0x100f0);
    0x0001002c add r3, pc, r3                                    |         r3 = pc + r3;
    0x00010030 str r3, [sp]                                      |         *(sp) = r3;
    0x00010034 ldr r3, [pc, 0xbc]                                |         r3 = *(0x100f4);
    0x00010038 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001003c add r3, pc, r3                                    |         r3 = pc + r3;
    0x00010040 mov r2, r0                                        |         r2 = r0;
    0x00010044 mov r0, sb                                        |         r0 = sb;
    0x00010048 bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0001004c ldr r1, [pc, 0xa8]                                |         r1 = *(0x100f8);
    0x00010050 mov r0, r5                                        |         r0 = r5;
    0x00010054 add r1, pc, r1                                    |         r1 = pc + r1;
    0x00010058 bl 0xf520                                         |         fcn_0000f520 (r0);
                                                                 |     }
    0x0001005c ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00010060 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00010064 bne 0x10088                                       |         goto label_1;
                                                                 |     }
    0x00010068 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x0001006c ldr r2, [r5, 0x2c]                                |     r2 = *((r5 + 0x2c));
    0x00010070 ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00010074 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00010078 movne r3, r2                                      |         r3 = r2;
                                                                 |     }
    0x0001007c add r5, r5, 0x28                                  |     r5 += 0x28;
    0x00010080 str r3, [r4]                                      |     *(r4) = r3;
    0x00010084 str r5, [r4, 4]                                   |     *((r4 + 4)) = r5;
                                                                 |     do {
                                                                 | label_1:
    0x00010088 ldm r4, {r0, r3}                                  |         r0 = *(r4);
                                                                 |         r3 = *((r4 + 4));
    0x0001008c cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x00010090 beq 0x100c8                                       |             goto label_2;
                                                                 |         }
    0x00010094 ldr r1, [r4, 8]                                   |         r1 = *((r4 + 8));
    0x00010098 ldr r2, [r0, 4]                                   |         r2 = *((r0 + 4));
    0x0001009c ldr r3, [r0]                                      |         r3 = *(r0);
    0x000100a0 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x000100a4 movne r3, r2                                      |             r3 = r2;
                                                                 |         }
    0x000100a8 str r0, [r7]                                      |         *(r7) = r0;
    0x000100ac mov r1, r8                                        |         r1 = r8;
    0x000100b0 str r3, [r4]                                      |         *(r4) = r3;
    0x000100b4 blx r6                                            |         r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000100b8 cmp r0, 0                                         |         
    0x000100bc beq 0x10088                                       |         
                                                                 |     } while (r0 == 0);
    0x000100c0 mov r0, 0                                         |     r0 = 0;
    0x000100c4 b 0x100d4                                         |     goto label_3;
                                                                 | label_2:
    0x000100c8 mov r3, 0                                         |     r3 = 0;
    0x000100cc mov r0, 1                                         |     r0 = 1;
    0x000100d0 str r3, [r7]                                      |     *(r7) = r3;
                                                                 |     do {
                                                                 | label_3:
    0x000100d4 add sp, sp, 0xc                                   |         
    0x000100d8 pop {r4, r5, r6, r7, r8, sb, pc}                  |         
                                                                 | label_0:
    0x000100dc mvn r0, 0x15                                      |         r0 = ~0x15;
    0x000100e0 b 0x100d4                                         |         
                                                                 |     } 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/lib/libmount.so.1.1.0 @ 0x113c0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mnt_table_find_pair ()           | void mnt_table_find_pair (uint32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000113c0 ldr ip, [pc, 0x124]               |     ip = *(0x000114ec);
    0x000113c4 push {r4, r5, r6, r7, r8, lr}     |     
    0x000113c8 mov lr, 0                         |     lr = 0;
    0x000113cc sub sp, sp, 0x18                  |     
    0x000113d0 cmp r2, lr                        |     
    0x000113d4 cmpne r0, lr                      |     __asm ("cmpne r0, lr");
    0x000113d8 add ip, pc, ip                    |     
    0x000113dc str lr, [sp, 8]                   |     var_8h = lr;
    0x000113e0 bne 0x113f0                       |     
                                                 |     while (r1 == 0) {
                                                 | label_0:
    0x000113e4 mov r0, 0                         |         r0 = 0;
                                                 | label_2:
    0x000113e8 add sp, sp, 0x18                  |         
    0x000113ec pop {r4, r5, r6, r7, r8, pc}      |         
    0x000113f0 ldrsb lr, [r2]                    |         
    0x000113f4 cmp r1, 0                         |         
    0x000113f8 cmpne lr, 0                       |         __asm ("cmpne lr, 0");
    0x000113fc beq 0x113e4                       |         
                                                 |     }
    0x00011400 ldrsb lr, [r1]                    |     
    0x00011404 cmp lr, 0                         |     
                                                 |     if (lr == 0) {
    0x00011408 beq 0x113e4                       |         goto label_0;
                                                 |     }
    0x0001140c cmp r3, 1                         |     
                                                 |     if (r3 > 1) {
    0x00011410 bhi 0x113e4                       |         goto label_0;
                                                 |     }
    0x00011414 mov r8, r3                        |     r8 = r3;
    0x00011418 ldr r3, [pc, 0xd0]                |     
    0x0001141c mov r6, r2                        |     r6 = r2;
    0x00011420 ldr r3, [ip, r3]                  |     r3 = *((ip + r3));
    0x00011424 mov r4, r0                        |     r4 = r0;
    0x00011428 ldr r3, [r3]                      |     r3 = *(0x114ec);
    0x0001142c mov r5, r1                        |     r5 = r1;
    0x00011430 tst r3, 0x20                      |     
                                                 |     if ((r3 & 0x20) != 0) {
    0x00011434 beq 0x11488                       |         
    0x00011438 ldr r3, [pc, 0xb4]                |         r3 = *(0x114f0);
    0x0001143c ldr r3, [ip, r3]                  |         r3 = *((ip + r3));
    0x00011440 ldr r7, [r3]                      |         r7 = *(0x114f0);
    0x00011444 bl 0x8204                         |         getpid ();
    0x00011448 ldr r3, [pc, 0xa8]                |         r3 = *(0x114f4);
    0x0001144c ldr r1, [pc, 0xa8]                |         r1 = *(0x114f8);
    0x00011450 add r3, pc, r3                    |         r3 = pc + r3;
    0x00011454 str r3, [sp]                      |         *(sp) = r3;
    0x00011458 ldr r3, [pc, 0xa0]                |         r3 = *(0x114fc);
    0x0001145c add r1, pc, r1                    |         r1 = pc + r1;
    0x00011460 add r3, pc, r3                    |         r3 = pc + r3;
    0x00011464 mov r2, r0                        |         r2 = r0;
    0x00011468 mov r0, r7                        |         r0 = r7;
    0x0001146c bl 0x8798                         |         fprintf (r0, r1, r2, r3)
    0x00011470 ldr r1, [pc, 0x8c]                |         r1 = *(0x11500);
    0x00011474 mov r3, r6                        |         r3 = r6;
    0x00011478 mov r2, r5                        |         r2 = r5;
    0x0001147c add r1, pc, r1                    |         r1 = pc + r1;
    0x00011480 mov r0, r4                        |         r0 = r4;
    0x00011484 bl 0xf520                         |         fcn_0000f520 (r0);
                                                 |     }
    0x00011488 add r7, sp, 0xc                   |     r7 += var_ch;
    0x0001148c mov r1, r8                        |     r1 = r8;
    0x00011490 mov r0, r7                        |     r0 = r7;
    0x00011494 bl 0x8588                         |     fcn_00008588 ();
    0x00011498 add r8, sp, 8                     |     r8 += var_8h;
                                                 | label_1:
    0x0001149c mov r2, r8                        |     r2 = r8;
    0x000114a0 mov r1, r7                        |     r1 = r7;
    0x000114a4 mov r0, r4                        |     r0 = r4;
    0x000114a8 bl 0x7fa0                         |     r0 = fcn_00007fa0 ();
    0x000114ac cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x000114b0 bne 0x113e4                       |         goto label_0;
                                                 |     }
    0x000114b4 ldr r2, [r4, 0x18]                |     r2 = *((r4 + 0x18));
    0x000114b8 mov r1, r6                        |     r1 = r6;
    0x000114bc ldr r0, [sp, 8]                   |     r0 = var_8h;
    0x000114c0 bl 0x87b0                         |     r0 = fcn_000087b0 ();
    0x000114c4 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x000114c8 beq 0x1149c                       |         goto label_1;
                                                 |     }
    0x000114cc ldr r2, [r4, 0x18]                |     r2 = *((r4 + 0x18));
    0x000114d0 mov r1, r5                        |     r1 = r5;
    0x000114d4 ldr r0, [sp, 8]                   |     r0 = var_8h;
    0x000114d8 bl 0x89a8                         |     r0 = fcn_000089a8 ();
    0x000114dc cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x000114e0 beq 0x1149c                       |         goto label_1;
                                                 |     }
    0x000114e4 ldr r0, [sp, 8]                   |     r0 = var_8h;
    0x000114e8 b 0x113e8                         |     goto label_2;
                                                 | }
    ; 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/lib/libmount.so.1.1.0 @ 0x11298 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.mnt_table_find_source ()     | void mnt_table_find_source (uint32_t arg1, int32_t arg2) {
                                             |     int32_t var_0h;
                                             |     void * ptr;
                                             |     void * var_ch;
                                             |     int32_t var_14h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00011298 ldr r3, [pc, 0x104]           |     r3 = *(0x113a0);
    0x0001129c push {r4, r5, r6, r7, lr}     |     
    0x000112a0 cmp r0, 0                     |     
    0x000112a4 mov r4, 0                     |     r4 = 0;
    0x000112a8 sub sp, sp, 0x14              |     
    0x000112ac add r3, pc, r3                |     r3 = pc + r3;
    0x000112b0 str r4, [sp, 8]               |     ptr = r4;
    0x000112b4 str r4, [sp, 0xc]             |     var_ch = r4;
                                             |     if (r0 != 0) {
    0x000112b8 moveq r4, r0                  |         r4 = r0;
                                             |     }
                                             |     if (r0 == 0) {
    0x000112bc beq 0x11370                   |         goto label_1;
                                             |     }
    0x000112c0 cmp r2, 1                     |     
                                             |     if (r2 > 1) {
    0x000112c4 bhi 0x11370                   |         goto label_1;
                                             |     }
    0x000112c8 mov r5, r2                    |     r5 = r2;
    0x000112cc ldr r2, [pc, 0xd4]            |     
    0x000112d0 mov r4, r0                    |     r4 = r0;
    0x000112d4 ldr r2, [r3, r2]              |     r2 = *((r3 + r2));
    0x000112d8 mov r6, r1                    |     r6 = r1;
    0x000112dc ldr r2, [r2]                  |     r2 = *(0x113a4);
    0x000112e0 tst r2, 0x20                  |     
                                             |     if ((r2 & 0x20) != 0) {
    0x000112e4 beq 0x11334                   |         
    0x000112e8 ldr r2, [pc, 0xbc]            |         r2 = *(0x113a8);
    0x000112ec ldr r3, [r3, r2]              |         r3 = *((r3 + r2));
    0x000112f0 ldr r7, [r3]                  |         r7 = *(r3);
    0x000112f4 bl 0x8204                     |         getpid ();
    0x000112f8 ldr r3, [pc, 0xb0]            |         r3 = *(0x113ac);
    0x000112fc ldr r1, [pc, 0xb0]            |         r1 = *(0x113b0);
    0x00011300 add r3, pc, r3                |         r3 = pc + r3;
    0x00011304 str r3, [sp]                  |         *(sp) = r3;
    0x00011308 ldr r3, [pc, 0xa8]            |         r3 = *(0x113b4);
    0x0001130c add r1, pc, r1                |         r1 = pc + r1;
    0x00011310 add r3, pc, r3                |         r3 = pc + r3;
    0x00011314 mov r2, r0                    |         r2 = r0;
    0x00011318 mov r0, r7                    |         r0 = r7;
    0x0001131c bl 0x8798                     |         fprintf (r0, r1, r2, r3)
    0x00011320 ldr r1, [pc, 0x94]            |         r1 = *(0x113b8);
    0x00011324 mov r2, r6                    |         r2 = r6;
    0x00011328 add r1, pc, r1                |         r1 = pc + r1;
    0x0001132c mov r0, r4                    |         r0 = r4;
    0x00011330 bl 0xf520                     |         fcn_0000f520 (r0);
                                             |     }
    0x00011334 add r2, sp, 0xc               |     r2 += var_ch;
    0x00011338 add r1, sp, 8                 |     r1 += ptr;
    0x0001133c mov r0, r6                    |     r0 = r6;
    0x00011340 bl 0x7f04                     |     r0 = blkid_parse_tag_string ();
    0x00011344 cmp r0, 0                     |     
    0x00011348 beq 0x1137c                   |     
                                             |     while (r0 == 0) {
    0x0001134c mov r2, r5                    |         r2 = r5;
    0x00011350 mov r1, r6                    |         r1 = r6;
    0x00011354 mov r0, r4                    |         r0 = r4;
    0x00011358 bl 0x8c78                     |         r0 = fcn_00008c78 ();
                                             | label_0:
    0x0001135c mov r4, r0                    |         r4 = r0;
    0x00011360 ldr r0, [sp, 8]               |         r0 = ptr;
    0x00011364 bl 0x91c4                     |         free (r0);
    0x00011368 ldr r0, [sp, 0xc]             |         r0 = var_ch;
    0x0001136c bl 0x91c4                     |         free (r0);
                                             | label_1:
    0x00011370 mov r0, r4                    |         r0 = r4;
    0x00011374 add sp, sp, 0x14              |         
    0x00011378 pop {r4, r5, r6, r7, pc}      |         
    0x0001137c ldr r0, [sp, 8]               |         r0 = ptr;
    0x00011380 bl 0x17f98                    |         r0 = fcn_00017f98 (r0);
    0x00011384 cmp r0, 0                     |         
    0x00011388 beq 0x1134c                   |         
                                             |     }
    0x0001138c mov r3, r5                    |     r3 = r5;
    0x00011390 ldr r2, [sp, 0xc]             |     r2 = var_ch;
    0x00011394 ldr r1, [sp, 8]               |     r1 = ptr;
    0x00011398 mov r0, r4                    |     r0 = r4;
    0x0001139c bl 0x8d2c                     |     fcn_00008d2c ();
    0x000113a0 b 0x1135c                     |     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/lib/libmount.so.1.1.0 @ 0x10a88 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_find_srcpath ()                    | void mnt_table_find_srcpath (int32_t arg_0h, uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     char * s2;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_28h_2;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_44h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00010a88 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010a8c ldr r7, [pc, 0x490]                           |     r7 = *(0x10f20);
    0x00010a90 mov r3, 0                                     |     r3 = 0;
    0x00010a94 sub sp, sp, 0x44                              |     
    0x00010a98 cmp r1, r3                                    |     
    0x00010a9c cmpne r0, r3                                  |     __asm ("cmpne r0, r3");
    0x00010aa0 add r7, pc, r7                                |     r7 = pc + r7;
    0x00010aa4 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00010aa8 bne 0x10ab8                                   |     
                                                             |     while (r3 == 0) {
                                                             | label_0:
    0x00010aac mov r0, 0                                     |         r0 = 0;
                                                             | label_2:
    0x00010ab0 add sp, sp, 0x44                              |         
    0x00010ab4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00010ab8 ldrsb r3, [r1]                                |         r3 = *(r1);
    0x00010abc cmp r3, 0                                     |         
    0x00010ac0 beq 0x10aac                                   |         
                                                             |     }
    0x00010ac4 cmp r2, 1                                     |     
                                                             |     if (r2 > 1) {
    0x00010ac8 bhi 0x10aac                                   |         goto label_0;
                                                             |     }
    0x00010acc ldr r3, [pc, 0x454]                           |     r3 = *(0x10f24);
    0x00010ad0 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00010ad4 ldr fp, [r7, r3]                              |     fp = *((r7 + r3));
    0x00010ad8 mov r6, r1                                    |     r6 = r1;
    0x00010adc ldr r3, [fp]                                  |     r3 = *(fp);
    0x00010ae0 mov r4, r0                                    |     r4 = r0;
    0x00010ae4 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00010ae8 beq 0x10b38                                   |         
    0x00010aec ldr r3, [pc, 0x438]                           |         r3 = *(0x10f28);
    0x00010af0 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00010af4 ldr r5, [r3]                                  |         r5 = *(0x10f28);
    0x00010af8 bl 0x8204                                     |         getpid ();
    0x00010afc ldr r3, [pc, 0x42c]                           |         r3 = *(0x10f2c);
    0x00010b00 ldr r1, [pc, 0x42c]                           |         r1 = *(0x10f30);
    0x00010b04 add r3, pc, r3                                |         r3 = pc + r3;
    0x00010b08 str r3, [sp]                                  |         *(sp) = r3;
    0x00010b0c ldr r3, [pc, 0x424]                           |         r3 = *(0x10f34);
    0x00010b10 add r1, pc, r1                                |         r1 = pc + r1;
    0x00010b14 add r3, pc, r3                                |         r3 = pc + r3;
    0x00010b18 mov r2, r0                                    |         r2 = r0;
    0x00010b1c mov r0, r5                                    |         r0 = r5;
    0x00010b20 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00010b24 ldr r1, [pc, 0x410]                           |         r1 = *(0x10f38);
    0x00010b28 mov r2, r6                                    |         r2 = r6;
    0x00010b2c add r1, pc, r1                                |         r1 = pc + r1;
    0x00010b30 mov r0, r4                                    |         r0 = r4;
    0x00010b34 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x00010b38 add r5, sp, 0x34                              |     r5 += var_34h;
    0x00010b3c ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00010b40 mov r0, r5                                    |     r0 = r5;
    0x00010b44 bl 0x8588                                     |     fcn_00008588 ();
    0x00010b48 ldr r3, [pc, 0x3f0]                           |     r3 = *(0x10f3c);
    0x00010b4c mov sl, 0                                     |     sl = 0;
    0x00010b50 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010b54 str r3, [sp, 0x10]                            |     s2 = r3;
    0x00010b58 ldr r3, [pc, 0x3e4]                           |     r3 = *(0x10f40);
    0x00010b5c add r3, pc, r3                                |     r3 = pc + r3;
    0x00010b60 str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             | label_3:
    0x00010b64 add r8, sp, 0x1c                              |     r8 += var_1ch;
    0x00010b68 mov r2, r8                                    |     r2 = r8;
    0x00010b6c mov r1, r5                                    |     r1 = r5;
    0x00010b70 mov r0, r4                                    |     r0 = r4;
    0x00010b74 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00010b78 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010b7c beq 0x10cb4                                   |         goto label_9;
                                                             |     }
    0x00010b80 ldr r1, [r4, 0x18]                            |     r1 = *((r4 + 0x18));
    0x00010b84 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00010b88 beq 0x10aac                                   |         goto label_0;
                                                             |     }
    0x00010b8c mov r0, r6                                    |     r0 = r6;
    0x00010b90 bl 0x8d38                                     |     r0 = fcn_00008d38 ();
    0x00010b94 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00010b98 beq 0x10aac                                   |         goto label_0;
                                                             |     }
    0x00010b9c ldr r3, [fp]                                  |     r3 = *(fp);
    0x00010ba0 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00010ba4 beq 0x10bf4                                   |         
    0x00010ba8 ldr r3, [pc, 0x37c]                           |         r3 = *(0x10f28);
    0x00010bac ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00010bb0 ldr r7, [r3]                                  |         r7 = *(0x10f28);
    0x00010bb4 bl 0x8204                                     |         getpid ();
    0x00010bb8 ldr r3, [pc, 0x388]                           |         r3 = *(0x10f44);
    0x00010bbc ldr r1, [pc, 0x388]                           |         r1 = *(0x10f48);
    0x00010bc0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00010bc4 str r3, [sp]                                  |         *(sp) = r3;
    0x00010bc8 ldr r3, [pc, 0x380]                           |         r3 = *(0x10f4c);
    0x00010bcc add r1, pc, r1                                |         r1 = pc + r1;
    0x00010bd0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00010bd4 mov r2, r0                                    |         r2 = r0;
    0x00010bd8 mov r0, r7                                    |         r0 = r7;
    0x00010bdc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00010be0 ldr r1, [pc, 0x36c]                           |         r1 = *(0x10f50);
    0x00010be4 mov r2, r6                                    |         r2 = r6;
    0x00010be8 add r1, pc, r1                                |         r1 = pc + r1;
    0x00010bec mov r0, r4                                    |         r0 = r4;
    0x00010bf0 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x00010bf4 mov r0, r4                                    |     r0 = r4;
    0x00010bf8 bl 0x87f8                                     |     r0 = fcn_000087f8 ();
    0x00010bfc cmp sl, r0                                    |     
    0x00010c00 mov r7, r0                                    |     r7 = r0;
                                                             |     if (sl < r0) {
    0x00010c04 blt 0x10e1c                                   |         goto label_10;
                                                             |     }
                                                             | label_5:
    0x00010c08 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00010c0c beq 0x10ea4                                   |         goto label_11;
                                                             |     }
    0x00010c10 mov r1, r6                                    |     r1 = r6;
    0x00010c14 ldr r0, [r4, 0x18]                            |     r0 = *((r4 + 0x18));
    0x00010c18 bl 0x8c6c                                     |     fcn_00008c6c ();
    0x00010c1c ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00010c20 mov sb, r0                                    |     sb = r0;
    0x00010c24 mov r0, r5                                    |     r0 = r5;
    0x00010c28 bl 0x8588                                     |     fcn_00008588 ();
    0x00010c2c cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x00010c30 addeq sb, sp, 0x28                            |         sb += var_28h;
                                                             |     }
                                                             |     if (sb != 0) {
    0x00010c34 addeq fp, sp, 0x24                            |         
                                                             |     }
                                                             |     if (sb == 0) {
    0x00010c38 beq 0x10e8c                                   |         goto label_12;
                                                             |     }
                                                             |     if (sb >= 0) {
    0x00010c3c bge 0x10ea4                                   |         goto label_11;
                                                             |     }
    0x00010c40 bl 0x8f6c                                     |     r0 = errno_location ();
    0x00010c44 ldr r3, [r0]                                  |     r3 = *(r0);
    0x00010c48 cmp r3, 0xd                                   |     
                                                             |     if (r3 != 0xd) {
    0x00010c4c addeq sb, sp, 0x28                            |         sb += var_28h;
                                                             |     }
                                                             |     if (r3 != 0xd) {
    0x00010c50 addeq fp, sp, 0x24                            |         
                                                             |     }
                                                             |     if (r3 != 0xd) {
    0x00010c54 bne 0x10ea4                                   |         goto label_11;
                                                             |     }
                                                             |     do {
                                                             | label_1:
    0x00010c58 mov r2, r8                                    |         r2 = r8;
    0x00010c5c mov r1, r5                                    |         r1 = r5;
    0x00010c60 mov r0, r4                                    |         r0 = r4;
    0x00010c64 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00010c68 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00010c6c bne 0x10ea4                                   |             goto label_11;
                                                             |         }
    0x00010c70 mov r2, sb                                    |         r2 = sb;
    0x00010c74 mov r1, fp                                    |         r1 = fp;
    0x00010c78 ldr r0, [sp, 0x1c]                            |         r0 = var_1ch;
    0x00010c7c bl 0x9158                                     |         r0 = fcn_00009158 ();
    0x00010c80 cmp r0, 0                                     |         
    0x00010c84 bne 0x10c58                                   |         
                                                             |     } while (r0 != 0);
    0x00010c88 ldr r2, [r4, 0x18]                            |     r2 = *((r4 + 0x18));
    0x00010c8c ldr r1, [sp, 0x28]                            |     r1 = var_28h;
    0x00010c90 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x00010c94 bl 0x9008                                     |     r0 = fcn_00009008 ();
    0x00010c98 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010c9c beq 0x10c58                                   |         goto label_1;
                                                             |     }
    0x00010ca0 mov r1, r6                                    |     r1 = r6;
    0x00010ca4 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00010ca8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010cac bne 0x10c58                                   |         goto label_1;
                                                             |     }
    0x00010cb0 b 0x10d60                                     |     goto label_4;
                                                             | label_9:
    0x00010cb4 mov r1, r6                                    |     r1 = r6;
    0x00010cb8 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010cbc bl 0x8600                                     |     r0 = fcn_00008600 ();
    0x00010cc0 subs r2, r0, 0                                |     r2 = r0 - 0;
                                                             |     if (r2 == r0) {
    0x00010cc4 beq 0x10e04                                   |         goto label_13;
                                                             |     }
    0x00010cc8 ldr r8, [sp, 0x1c]                            |     r8 = var_1ch;
    0x00010ccc ldr r0, [r8, 0x38]                            |     r0 = *((r8 + 0x38));
    0x00010cd0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010cd4 beq 0x10d60                                   |         goto label_4;
                                                             |     }
    0x00010cd8 ldr r1, [sp, 0x10]                            |     r1 = s2;
    0x00010cdc bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00010ce0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010ce4 bne 0x10d60                                   |         goto label_4;
                                                             |     }
    0x00010ce8 mov r0, r8                                    |     r0 = r8;
    0x00010cec bl 0x81d4                                     |     fcn_000081d4 ();
    0x00010cf0 bl 0x28cc0                                    |     fcn_00028cc0 (r0);
    0x00010cf4 mvn r3, 0                                     |     r3 = ~0;
    0x00010cf8 mvn r2, 0                                     |     r2 = ~0;
    0x00010cfc cmp r1, r3                                    |     
    0x00010d00 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
    0x00010d04 mov r8, r0                                    |     r8 = r0;
    0x00010d08 mov sb, r1                                    |     sb = r1;
                                                             |     if (r1 != r3) {
    0x00010d0c bne 0x10d68                                   |         goto label_14;
                                                             |     }
    0x00010d10 ldr r3, [fp]                                  |     r3 = *(fp);
    0x00010d14 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00010d18 beq 0x10d60                                   |         goto label_4;
                                                             |     }
    0x00010d1c ldr r3, [pc, 0x208]                           |     r3 = *(0x10f28);
    0x00010d20 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00010d24 ldr r4, [r3]                                  |     r4 = *(0x10f28);
    0x00010d28 bl 0x8204                                     |     getpid ();
    0x00010d2c ldr r3, [pc, 0x224]                           |     r3 = *(0x10f54);
    0x00010d30 ldr r1, [pc, 0x224]                           |     r1 = *(0x10f58);
    0x00010d34 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010d38 str r3, [sp]                                  |     *(sp) = r3;
    0x00010d3c ldr r3, [pc, 0x21c]                           |     r3 = *(0x10f5c);
    0x00010d40 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010d44 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010d48 mov r2, r0                                    |     r2 = r0;
    0x00010d4c mov r0, r4                                    |     r0 = r4;
    0x00010d50 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00010d54 ldr r0, [pc, 0x208]                           |     r0 = *(0x10f60);
    0x00010d58 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010d5c bl 0xf5e0                                     |     fcn_0000f5e0 ();
                                                             |     do {
                                                             | label_4:
    0x00010d60 ldr r0, [sp, 0x1c]                            |         r0 = var_1ch;
    0x00010d64 b 0x10ab0                                     |         goto label_2;
                                                             | label_14:
    0x00010d68 add r3, sp, 0x24                              |         r3 += var_24h;
    0x00010d6c add r2, sp, 0x20                              |         r2 += var_20h;
    0x00010d70 ldr r1, [sp, 0x14]                            |         r1 = var_14h;
    0x00010d74 ldr r0, [sp, 0x1c]                            |         r0 = var_1ch;
    0x00010d78 bl 0x88ac                                     |         r0 = fcn_000088ac ();
    0x00010d7c cmp r0, 0                                     |         
    0x00010d80 bne 0x10d60                                   |         
                                                             |     } while (r0 != 0);
    0x00010d84 add r2, sp, 0x28                              |     r2 += var_28h;
    0x00010d88 ldrd r0, r1, [sp, 0x20]                       |     __asm ("ldrd r0, r1, [var_24h]");
    0x00010d8c bl 0x18084                                    |     r0 = fcn_00018084 (r0, r1);
    0x00010d90 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010d94 beq 0x10df0                                   |         goto label_15;
                                                             |     }
    0x00010d98 ldr r3, [fp]                                  |     r3 = *(fp);
    0x00010d9c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00010da0 beq 0x10b64                                   |         goto label_3;
                                                             |     }
    0x00010da4 ldr r3, [pc, 0x180]                           |     r3 = *(0x10f28);
    0x00010da8 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00010dac ldr r8, [r3]                                  |     r8 = *(0x10f28);
    0x00010db0 bl 0x8204                                     |     getpid ();
    0x00010db4 ldr r3, [pc, 0x1ac]                           |     r3 = *(0x10f64);
    0x00010db8 ldr r1, [pc, 0x1ac]                           |     r1 = *(0x10f68);
    0x00010dbc add r3, pc, r3                                |     r3 = pc + r3;
    0x00010dc0 str r3, [sp]                                  |     *(sp) = r3;
    0x00010dc4 ldr r3, [pc, 0x1a4]                           |     r3 = *(0x10f6c);
    0x00010dc8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010dcc add r3, pc, r3                                |     r3 = pc + r3;
    0x00010dd0 mov r2, r0                                    |     r2 = r0;
    0x00010dd4 mov r0, r8                                    |     r0 = r8;
    0x00010dd8 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00010ddc ldr r1, [pc, 0x190]                           |     r1 = *(0x10f70);
    0x00010de0 mov r0, r4                                    |     r0 = r4;
    0x00010de4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010de8 bl 0xf520                                     |     fcn_0000f520 (r0);
    0x00010dec b 0x10b64                                     |     goto label_3;
                                                             | label_15:
    0x00010df0 ldrd r2, r3, [sp, 0x28]                       |     __asm ("ldrd r2, r3, [var_28h]");
    0x00010df4 cmp r3, sb                                    |     
    0x00010df8 cmpeq r2, r8                                  |     __asm ("cmpeq r2, r8");
                                                             |     if (r3 == sb) {
    0x00010dfc beq 0x10d60                                   |         goto label_4;
                                                             |     }
    0x00010e00 b 0x10b64                                     |     goto label_3;
                                                             | label_13:
    0x00010e04 mov r1, r2                                    |     r1 = r2;
    0x00010e08 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010e0c bl 0x9158                                     |     r0 = fcn_00009158 ();
    0x00010e10 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e14 addeq sl, sl, 1                               |         sl++;
                                                             |     }
    0x00010e18 b 0x10b64                                     |     goto label_3;
                                                             | label_10:
    0x00010e1c ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00010e20 mov r0, r5                                    |     r0 = r5;
    0x00010e24 bl 0x8588                                     |     fcn_00008588 ();
                                                             | label_6:
    0x00010e28 mov r2, r8                                    |     r2 = r8;
    0x00010e2c mov r1, r5                                    |     r1 = r5;
    0x00010e30 mov r0, r4                                    |     r0 = r4;
    0x00010e34 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00010e38 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e3c bne 0x10c08                                   |         goto label_5;
                                                             |     }
    0x00010e40 mov r1, r6                                    |     r1 = r6;
    0x00010e44 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010e48 bl 0x8600                                     |     r0 = fcn_00008600 ();
    0x00010e4c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010e50 beq 0x10e28                                   |         goto label_6;
                                                             |     }
    0x00010e54 b 0x10d60                                     |     goto label_4;
                                                             | label_7:
    0x00010e58 mov r2, sb                                    |     r2 = sb;
    0x00010e5c mov r1, fp                                    |     r1 = fp;
    0x00010e60 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010e64 bl 0x9158                                     |     r0 = fcn_00009158 ();
    0x00010e68 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e6c bne 0x10e8c                                   |         goto label_12;
                                                             |     }
    0x00010e70 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00010e74 ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00010e78 mov r1, r6                                    |     r1 = r6;
    0x00010e7c ldr r0, [r4, 0x18]                            |     r0 = *((r4 + 0x18));
    0x00010e80 bl 0x7f64                                     |     r0 = fcn_00007f64 ();
    0x00010e84 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e88 bne 0x10d60                                   |         goto label_4;
                                                             |     }
                                                             | label_12:
    0x00010e8c mov r2, r8                                    |     r2 = r8;
    0x00010e90 mov r1, r5                                    |     r1 = r5;
    0x00010e94 mov r0, r4                                    |     r0 = r4;
    0x00010e98 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00010e9c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010ea0 beq 0x10e58                                   |         goto label_7;
                                                             |     }
                                                             | label_11:
    0x00010ea4 cmp sl, r7                                    |     
                                                             |     if (sl > r7) {
    0x00010ea8 bgt 0x10aac                                   |         goto label_0;
                                                             |     }
    0x00010eac ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00010eb0 mov r0, r5                                    |     r0 = r5;
    0x00010eb4 bl 0x8588                                     |     fcn_00008588 ();
                                                             | label_8:
    0x00010eb8 mov r2, r8                                    |     r2 = r8;
    0x00010ebc mov r1, r5                                    |     r1 = r5;
    0x00010ec0 mov r0, r4                                    |     r0 = r4;
    0x00010ec4 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00010ec8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010ecc bne 0x10aac                                   |         goto label_0;
                                                             |     }
    0x00010ed0 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010ed4 bl 0x8dc8                                     |     r0 = fcn_00008dc8 ();
    0x00010ed8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010edc bne 0x10eb8                                   |         goto label_8;
                                                             |     }
    0x00010ee0 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010ee4 bl 0x8894                                     |     r0 = fcn_00008894 ();
    0x00010ee8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010eec bne 0x10eb8                                   |         goto label_8;
                                                             |     }
    0x00010ef0 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00010ef4 bl 0x80cc                                     |     r0 = fcn_000080cc ();
    0x00010ef8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010efc beq 0x10eb8                                   |         goto label_8;
                                                             |     }
    0x00010f00 ldr r1, [r4, 0x18]                            |     r1 = *((r4 + 0x18));
    0x00010f04 bl 0x8d38                                     |     r0 = fcn_00008d38 ();
    0x00010f08 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010f0c beq 0x10eb8                                   |         goto label_8;
                                                             |     }
    0x00010f10 mov r1, r6                                    |     r1 = r6;
    0x00010f14 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00010f18 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010f1c bne 0x10eb8                                   |         goto label_8;
                                                             |     }
    0x00010f20 b 0x10d60                                     |     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/lib/libmount.so.1.1.0 @ 0x10f78 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_find_tag ()                        | void mnt_table_find_tag (uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00010f78 ldr ip, [pc, 0x15c]                           |     ip = *(0x000110dc);
    0x00010f7c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010f80 mov lr, 0                                     |     lr = 0;
    0x00010f84 sub sp, sp, 0x1c                              |     
    0x00010f88 cmp r1, lr                                    |     
    0x00010f8c cmpne r0, lr                                  |     __asm ("cmpne r0, lr");
    0x00010f90 add ip, pc, ip                                |     
    0x00010f94 str lr, [sp, 8]                               |     var_8h = lr;
    0x00010f98 bne 0x10fac                                   |     
                                                             |     while (r2 == 0) {
                                                             | label_0:
    0x00010f9c mov r6, 0                                     |         r6 = 0;
                                                             | label_1:
    0x00010fa0 mov r0, r6                                    |         r0 = r6;
    0x00010fa4 add sp, sp, 0x1c                              |         
    0x00010fa8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00010fac ldrsb lr, [r1]                                |         
    0x00010fb0 cmp r2, 0                                     |         
    0x00010fb4 cmpne lr, 0                                   |         __asm ("cmpne lr, 0");
    0x00010fb8 beq 0x10f9c                                   |         
                                                             |     }
    0x00010fbc cmp r3, 1                                     |     
                                                             |     if (r3 > 1) {
    0x00010fc0 bhi 0x10f9c                                   |         goto label_0;
                                                             |     }
    0x00010fc4 mov r7, r3                                    |     r7 = r3;
    0x00010fc8 ldr r3, [pc, 0x110]                           |     
    0x00010fcc mov r5, r1                                    |     r5 = r1;
    0x00010fd0 ldr r3, [ip, r3]                              |     r3 = *((ip + r3));
    0x00010fd4 mov r4, r0                                    |     r4 = r0;
    0x00010fd8 ldr r3, [r3]                                  |     r3 = *(0x110dc);
    0x00010fdc mov r8, r2                                    |     r8 = r2;
    0x00010fe0 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00010fe4 beq 0x11038                                   |         
    0x00010fe8 ldr r3, [pc, 0xf4]                            |         r3 = *(0x110e0);
    0x00010fec ldr r3, [ip, r3]                              |         r3 = *((ip + r3));
    0x00010ff0 ldr r6, [r3]                                  |         r6 = *(0x110e0);
    0x00010ff4 bl 0x8204                                     |         getpid ();
    0x00010ff8 ldr r3, [pc, 0xe8]                            |         r3 = *(0x110e4);
    0x00010ffc ldr r1, [pc, 0xe8]                            |         r1 = *(0x110e8);
    0x00011000 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011004 str r3, [sp]                                  |         *(sp) = r3;
    0x00011008 ldr r3, [pc, 0xe0]                            |         r3 = *(0x110ec);
    0x0001100c add r1, pc, r1                                |         r1 = pc + r1;
    0x00011010 add r3, pc, r3                                |         r3 = pc + r3;
    0x00011014 mov r2, r0                                    |         r2 = r0;
    0x00011018 mov r0, r6                                    |         r0 = r6;
    0x0001101c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00011020 ldr r1, [pc, 0xcc]                            |         r1 = *(0x110f0);
    0x00011024 mov r3, r8                                    |         r3 = r8;
    0x00011028 mov r2, r5                                    |         r2 = r5;
    0x0001102c add r1, pc, r1                                |         r1 = pc + r1;
    0x00011030 mov r0, r4                                    |         r0 = r4;
    0x00011034 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x00011038 add sb, sp, 0xc                               |     sb += var_ch;
    0x0001103c mov r1, r7                                    |     r1 = r7;
    0x00011040 mov r0, sb                                    |     r0 = sb;
    0x00011044 bl 0x8588                                     |     fcn_00008588 ();
    0x00011048 add fp, sp, 8                                 |     
                                                             | label_2:
    0x0001104c mov r2, fp                                    |     r2 = fp;
    0x00011050 mov r1, sb                                    |     r1 = sb;
    0x00011054 mov r0, r4                                    |     r0 = r4;
    0x00011058 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x0001105c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011060 beq 0x11098                                   |         goto label_3;
                                                             |     }
    0x00011064 ldr r2, [r4, 0x18]                            |     r2 = *((r4 + 0x18));
    0x00011068 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0001106c beq 0x10f9c                                   |         goto label_0;
                                                             |     }
    0x00011070 mov r1, r8                                    |     r1 = r8;
    0x00011074 mov r0, r5                                    |     r0 = r5;
    0x00011078 bl 0x9008                                     |     r0 = fcn_00009008 ();
    0x0001107c subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x00011080 beq 0x10f9c                                   |         goto label_0;
                                                             |     }
    0x00011084 mov r2, r7                                    |     r2 = r7;
    0x00011088 mov r0, r4                                    |     r0 = r4;
    0x0001108c bl 0x8c78                                     |     r0 = fcn_00008c78 ();
    0x00011090 mov r6, r0                                    |     r6 = r0;
    0x00011094 b 0x10fa0                                     |     goto label_1;
                                                             | label_3:
    0x00011098 ldr r6, [sp, 8]                               |     r6 = var_8h;
    0x0001109c ldr r0, [r6, 0x28]                            |     r0 = *((r6 + 0x28));
    0x000110a0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000110a4 beq 0x1104c                                   |         goto label_2;
                                                             |     }
    0x000110a8 ldr sl, [r6, 0x2c]                            |     sl = *((r6 + 0x2c));
    0x000110ac cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x000110b0 beq 0x1104c                                   |         goto label_2;
                                                             |     }
    0x000110b4 mov r1, r5                                    |     r1 = r5;
    0x000110b8 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000110bc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000110c0 bne 0x1104c                                   |         goto label_2;
                                                             |     }
    0x000110c4 mov r1, r8                                    |     r1 = r8;
    0x000110c8 mov r0, sl                                    |     r0 = sl;
    0x000110cc bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000110d0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000110d4 bne 0x1104c                                   |         goto label_2;
                                                             |     }
    0x000110d8 b 0x10fa0                                     |     goto label_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/lib/libmount.so.1.1.0 @ 0x105fc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_find_target ()                     | void mnt_table_find_target (int32_t arg_0h, uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     FILE * stream;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000105fc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010600 ldr r8, [pc, 0x2f4]                           |     r8 = *(0x108f8);
    0x00010604 mov r3, 0                                     |     r3 = 0;
    0x00010608 sub sp, sp, 0x24                              |     
    0x0001060c cmp r1, r3                                    |     
    0x00010610 cmpne r0, r3                                  |     __asm ("cmpne r0, r3");
    0x00010614 add r8, pc, r8                                |     r8 = pc + r8;
    0x00010618 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x0001061c bne 0x1062c                                   |     
                                                             |     while (r3 == 0) {
                                                             | label_0:
    0x00010620 mov r0, 0                                     |         r0 = 0;
                                                             | label_3:
    0x00010624 add sp, sp, 0x24                              |         
    0x00010628 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x0001062c ldrsb r3, [r1]                                |         r3 = *(r1);
    0x00010630 cmp r3, 0                                     |         
    0x00010634 beq 0x10620                                   |         
                                                             |     }
    0x00010638 cmp r2, 1                                     |     
                                                             |     if (r2 > 1) {
    0x0001063c bhi 0x10620                                   |         goto label_0;
                                                             |     }
    0x00010640 ldr r3, [pc, 0x2b8]                           |     r3 = *(0x108fc);
    0x00010644 mov r5, r1                                    |     r5 = r1;
    0x00010648 ldr fp, [r8, r3]                              |     fp = *((r8 + r3));
    0x0001064c mov r4, r0                                    |     r4 = r0;
    0x00010650 ldr r3, [fp]                                  |     r3 = *(fp);
    0x00010654 mov r7, r2                                    |     r7 = r2;
    0x00010658 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x0001065c beq 0x106ac                                   |         
    0x00010660 ldr r3, [pc, 0x29c]                           |         r3 = *(0x10900);
    0x00010664 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x00010668 ldr r6, [r3]                                  |         r6 = *(0x10900);
    0x0001066c bl 0x8204                                     |         getpid ();
    0x00010670 ldr r3, [pc, 0x290]                           |         r3 = *(0x10904);
    0x00010674 ldr r1, [pc, 0x290]                           |         r1 = *(0x10908);
    0x00010678 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001067c str r3, [sp]                                  |         *(sp) = r3;
    0x00010680 ldr r3, [pc, 0x288]                           |         r3 = *(0x1090c);
    0x00010684 add r1, pc, r1                                |         r1 = pc + r1;
    0x00010688 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001068c mov r2, r0                                    |         r2 = r0;
    0x00010690 mov r0, r6                                    |         r0 = r6;
    0x00010694 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00010698 ldr r1, [pc, 0x274]                           |         r1 = *(0x10910);
    0x0001069c mov r2, r5                                    |         r2 = r5;
    0x000106a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000106a4 mov r0, r4                                    |         r0 = r4;
    0x000106a8 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000106ac add r6, sp, 0x14                              |     r6 += var_14h;
    0x000106b0 mov r1, r7                                    |     r1 = r7;
    0x000106b4 mov r0, r6                                    |     r0 = r6;
    0x000106b8 bl 0x8588                                     |     fcn_00008588 ();
    0x000106bc add sb, sp, 0x10                              |     sb += var_10h;
                                                             | label_2:
    0x000106c0 mov r2, sb                                    |     r2 = sb;
    0x000106c4 mov r1, r6                                    |     r1 = r6;
    0x000106c8 mov r0, r4                                    |     r0 = r4;
    0x000106cc bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x000106d0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000106d4 beq 0x108a8                                   |         goto label_7;
                                                             |     }
    0x000106d8 ldrsb r3, [r5]                                |     r3 = *(r5);
    0x000106dc cmp r3, 0x2f                                  |     
                                                             |     if (r3 != 0x2f) {
    0x000106e0 beq 0x1077c                                   |         
    0x000106e4 mov r0, r5                                    |         r0 = r5;
    0x000106e8 bl 0x29874                                    |         r0 = fcn_00029874 (r0);
    0x000106ec subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl == r0) {
    0x000106f0 beq 0x1077c                                   |             goto label_8;
                                                             |         }
    0x000106f4 ldr r3, [fp]                                  |         r3 = *(fp);
    0x000106f8 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x000106fc beq 0x10750                                   |             
    0x00010700 ldr r3, [pc, 0x1fc]                           |             
    0x00010704 ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x00010708 ldr r3, [r3]                                  |             r3 = *(0x10900);
    0x0001070c str r3, [sp, 0xc]                             |             stream = r3;
    0x00010710 bl 0x8204                                     |             getpid ();
    0x00010714 ldr r3, [pc, 0x1fc]                           |             r3 = *(0x10914);
    0x00010718 ldr r1, [pc, 0x1fc]                           |             r1 = *(0x10918);
    0x0001071c add r3, pc, r3                                |             r3 = pc + r3;
    0x00010720 str r3, [sp]                                  |             *(sp) = r3;
    0x00010724 ldr r3, [pc, 0x1f4]                           |             r3 = *(0x1091c);
    0x00010728 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001072c add r3, pc, r3                                |             r3 = pc + r3;
    0x00010730 mov r2, r0                                    |             r2 = r0;
    0x00010734 ldr r0, [sp, 0xc]                             |             r0 = stream;
    0x00010738 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001073c ldr r1, [pc, 0x1e0]                           |             r1 = *(0x10920);
    0x00010740 mov r2, sl                                    |             r2 = sl;
    0x00010744 add r1, pc, r1                                |             r1 = pc + r1;
    0x00010748 mov r0, r4                                    |             r0 = r4;
    0x0001074c bl 0xf520                                     |             fcn_0000f520 (r0);
                                                             |         }
    0x00010750 mov r1, r7                                    |         r1 = r7;
    0x00010754 mov r0, r6                                    |         r0 = r6;
    0x00010758 bl 0x8588                                     |         fcn_00008588 ();
                                                             | label_4:
    0x0001075c mov r2, sb                                    |         r2 = sb;
    0x00010760 mov r1, r6                                    |         r1 = r6;
    0x00010764 mov r0, r4                                    |         r0 = r4;
    0x00010768 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x0001076c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010770 beq 0x108c4                                   |             goto label_9;
                                                             |         }
    0x00010774 mov r0, sl                                    |         r0 = sl;
    0x00010778 bl 0x91c4                                     |         free (r0);
                                                             |     }
                                                             | label_8:
    0x0001077c ldr r1, [r4, 0x18]                            |     r1 = *((r4 + 0x18));
    0x00010780 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00010784 beq 0x10620                                   |         goto label_0;
                                                             |     }
    0x00010788 mov r0, r5                                    |     r0 = r5;
    0x0001078c bl 0x8d38                                     |     r0 = fcn_00008d38 ();
    0x00010790 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x00010794 beq 0x10620                                   |         goto label_0;
                                                             |     }
    0x00010798 ldr r3, [fp]                                  |     r3 = *(fp);
    0x0001079c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000107a0 beq 0x107f0                                   |         
    0x000107a4 ldr r3, [pc, 0x158]                           |         r3 = *(0x10900);
    0x000107a8 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x000107ac ldr r8, [r3]                                  |         r8 = *(0x10900);
    0x000107b0 bl 0x8204                                     |         getpid ();
    0x000107b4 ldr r3, [pc, 0x16c]                           |         r3 = *(0x10924);
    0x000107b8 ldr r1, [pc, 0x16c]                           |         r1 = *(0x10928);
    0x000107bc add r3, pc, r3                                |         r3 = pc + r3;
    0x000107c0 str r3, [sp]                                  |         *(sp) = r3;
    0x000107c4 ldr r3, [pc, 0x164]                           |         r3 = *(0x1092c);
    0x000107c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000107cc add r3, pc, r3                                |         r3 = pc + r3;
    0x000107d0 mov r2, r0                                    |         r2 = r0;
    0x000107d4 mov r0, r8                                    |         r0 = r8;
    0x000107d8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000107dc ldr r1, [pc, 0x150]                           |         r1 = *(0x10930);
    0x000107e0 mov r2, r5                                    |         r2 = r5;
    0x000107e4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000107e8 mov r0, r4                                    |         r0 = r4;
    0x000107ec bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000107f0 mov r1, r7                                    |     r1 = r7;
    0x000107f4 mov r0, r6                                    |     r0 = r6;
    0x000107f8 bl 0x8588                                     |     fcn_00008588 ();
                                                             | label_6:
    0x000107fc mov r2, sb                                    |     r2 = sb;
    0x00010800 mov r1, r6                                    |     r1 = r6;
    0x00010804 mov r0, r4                                    |     r0 = r4;
    0x00010808 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x0001080c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010810 beq 0x108e4                                   |         goto label_10;
                                                             |     }
    0x00010814 mov r1, r7                                    |     r1 = r7;
    0x00010818 mov r0, r6                                    |     r0 = r6;
    0x0001081c bl 0x8588                                     |     fcn_00008588 ();
                                                             | label_1:
    0x00010820 mov r2, sb                                    |     r2 = sb;
    0x00010824 mov r1, r6                                    |     r1 = r6;
    0x00010828 mov r0, r4                                    |     r0 = r4;
    0x0001082c bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00010830 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010834 bne 0x10620                                   |         goto label_0;
                                                             |     }
    0x00010838 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x0001083c ldr r3, [r0, 0x34]                            |     r3 = *((r0 + 0x34));
    0x00010840 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00010844 beq 0x10820                                   |         goto label_1;
                                                             |     }
    0x00010848 bl 0x845c                                     |     r0 = fcn_0000845c ();
    0x0001084c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010850 bne 0x10820                                   |         goto label_1;
                                                             |     }
    0x00010854 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00010858 bl 0x8300                                     |     r0 = fcn_00008300 ();
    0x0001085c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010860 bne 0x10820                                   |         goto label_1;
                                                             |     }
    0x00010864 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00010868 ldr r0, [r3, 0x34]                            |     r0 = *((r3 + 0x34));
    0x0001086c ldrsb r3, [r0]                                |     r3 = *(r0);
    0x00010870 cmp r3, 0x2f                                  |     
                                                             |     if (r3 != 0x2f) {
    0x00010874 bne 0x10884                                   |         goto label_11;
                                                             |     }
    0x00010878 ldrsb r3, [r0, 1]                             |     r3 = *((r0 + 1));
    0x0001087c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00010880 beq 0x10820                                   |         goto label_1;
                                                             |     }
                                                             | label_11:
    0x00010884 ldr r1, [r4, 0x18]                            |     r1 = *((r4 + 0x18));
    0x00010888 bl 0x8390                                     |     r0 = fcn_00008390 ();
    0x0001088c subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x00010890 beq 0x10820                                   |         goto label_1;
                                                             |     }
    0x00010894 mov r0, r5                                    |     r0 = r5;
    0x00010898 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x0001089c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000108a0 bne 0x10820                                   |         goto label_1;
                                                             |     }
    0x000108a4 b 0x108bc                                     |     goto label_5;
                                                             | label_7:
    0x000108a8 mov r1, r5                                    |     r1 = r5;
    0x000108ac ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x000108b0 bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x000108b4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000108b8 beq 0x106c0                                   |         goto label_2;
                                                             |     }
                                                             | label_5:
    0x000108bc ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x000108c0 b 0x10624                                     |     goto label_3;
                                                             | label_9:
    0x000108c4 mov r1, sl                                    |     r1 = sl;
    0x000108c8 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x000108cc bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x000108d0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000108d4 beq 0x1075c                                   |         goto label_4;
                                                             |     }
    0x000108d8 mov r0, sl                                    |     r0 = sl;
    0x000108dc bl 0x91c4                                     |     free (r0);
    0x000108e0 b 0x108bc                                     |     goto label_5;
                                                             | label_10:
    0x000108e4 mov r1, r5                                    |     r1 = r5;
    0x000108e8 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x000108ec bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x000108f0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000108f4 beq 0x107fc                                   |         goto label_6;
                                                             |     }
    0x000108f8 b 0x108bc                                     |     goto label_5;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x110f8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_find_target_with_option ()         | void mnt_table_find_target_with_option (int32_t arg_50h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * s1;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000110f8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000110fc ldr sb, [pc, 0x178]                           |     sb = *(0x0001127c);
    0x00011100 sub sp, sp, 0x2c                              |     
    0x00011104 mov r6, r2                                    |     r6 = r2;
    0x00011108 subs r4, r3, 0                                |     r4 = r3 - 0;
    0x0001110c mov r2, 0                                     |     r2 = 0;
    0x00011110 add sb, pc, sb                                |     sb = pc + sb;
    0x00011114 mov r7, r0                                    |     r7 = r0;
    0x00011118 mov r5, r1                                    |     r5 = r1;
    0x0001111c ldr sl, [sp, 0x50]                            |     sl = *(arg_50h);
    0x00011120 str r2, [sp, 0x10]                            |     var_10h = r2;
    0x00011124 str r2, [sp, 0x14]                            |     s1 = r2;
    0x00011128 str r2, [sp, 0x18]                            |     var_18h = r2;
                                                             |     if (r4 != r3) {
    0x0001112c moveq r8, r4                                  |         r8 = r4;
                                                             |     }
                                                             |     if (r4 != r3) {
    0x00011130 beq 0x11140                                   |         
    0x00011134 mov r0, r4                                    |         r0 = r4;
    0x00011138 bl 0x905c                                     |         r0 = strlen (r0);
    0x0001113c mov r8, r0                                    |         r8 = r0;
                                                             |     }
    0x00011140 cmp r5, 0                                     |     
    0x00011144 cmpne r7, 0                                   |     __asm ("cmpne r7, 0");
    0x00011148 bne 0x11158                                   |     
                                                             |     while (r6 == 0) {
                                                             | label_0:
    0x0001114c mov r0, 0                                     |         r0 = 0;
                                                             | label_2:
    0x00011150 add sp, sp, 0x2c                              |         
    0x00011154 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00011158 ldrsb r3, [r5]                                |         r3 = *(r5);
    0x0001115c cmp r6, 0                                     |         
    0x00011160 cmpne r3, 0                                   |         __asm ("cmpne r3, 0");
    0x00011164 beq 0x1114c                                   |         
                                                             |     }
    0x00011168 ldrsb r3, [r6]                                |     r3 = *(r6);
    0x0001116c cmp r4, 0                                     |     
    0x00011170 cmpne r3, 0                                   |     __asm ("cmpne r3, 0");
                                                             |     if (r4 == 0) {
    0x00011174 beq 0x1114c                                   |         goto label_0;
                                                             |     }
    0x00011178 cmp sl, 1                                     |     
                                                             |     if (sl > 1) {
    0x0001117c bhi 0x1114c                                   |         goto label_0;
                                                             |     }
    0x00011180 ldr r3, [pc, 0xf8]                            |     
    0x00011184 ldr r3, [sb, r3]                              |     r3 = *((sb + r3));
    0x00011188 ldr r3, [r3]                                  |     r3 = *(0x1127c);
    0x0001118c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00011190 beq 0x111e8                                   |         
    0x00011194 ldr r3, [pc, 0xe8]                            |         r3 = *(0x11280);
    0x00011198 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x0001119c ldr sb, [r3]                                  |         sb = *(0x11280);
    0x000111a0 bl 0x8204                                     |         getpid ();
    0x000111a4 ldr r3, [pc, 0xdc]                            |         r3 = *(0x11284);
    0x000111a8 ldr r1, [pc, 0xdc]                            |         r1 = *(0x11288);
    0x000111ac add r3, pc, r3                                |         r3 = pc + r3;
    0x000111b0 str r3, [sp]                                  |         *(sp) = r3;
    0x000111b4 ldr r3, [pc, 0xd4]                            |         r3 = *(0x1128c);
    0x000111b8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000111bc add r3, pc, r3                                |         r3 = pc + r3;
    0x000111c0 mov r2, r0                                    |         r2 = r0;
    0x000111c4 mov r0, sb                                    |         r0 = sb;
    0x000111c8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000111cc ldr r1, [pc, 0xc0]                            |         r1 = *(0x11290);
    0x000111d0 str r4, [sp]                                  |         *(sp) = r4;
    0x000111d4 mov r3, r6                                    |         r3 = r6;
    0x000111d8 mov r2, r5                                    |         r2 = r5;
    0x000111dc add r1, pc, r1                                |         r1 = pc + r1;
    0x000111e0 mov r0, r7                                    |         r0 = r7;
    0x000111e4 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000111e8 add sb, sp, 0x1c                              |     sb += var_1ch;
    0x000111ec mov r1, sl                                    |     r1 = sl;
    0x000111f0 mov r0, sb                                    |     r0 = sb;
    0x000111f4 bl 0x8588                                     |     fcn_00008588 ();
    0x000111f8 add sl, sp, 0x18                              |     sl += var_18h;
    0x000111fc add r3, sp, 0x10                              |     r3 += var_10h;
    0x00011200 add fp, sp, 0x14                              |     
    0x00011204 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             | label_1:
    0x00011208 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x0001120c mov r1, sb                                    |     r1 = sb;
    0x00011210 mov r0, r7                                    |     r0 = r7;
    0x00011214 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00011218 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001121c bne 0x1114c                                   |         goto label_0;
                                                             |     }
    0x00011220 mov r1, r5                                    |     r1 = r5;
    0x00011224 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00011228 bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x0001122c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011230 beq 0x11208                                   |         goto label_1;
                                                             |     }
    0x00011234 mov r3, sl                                    |     r3 = sl;
    0x00011238 mov r2, fp                                    |     r2 = fp;
    0x0001123c mov r1, r6                                    |     r1 = r6;
    0x00011240 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00011244 bl 0x88ac                                     |     r0 = fcn_000088ac ();
    0x00011248 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001124c bne 0x11208                                   |         goto label_1;
                                                             |     }
    0x00011250 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00011254 cmp r3, r8                                    |     
                                                             |     if (r3 != r8) {
    0x00011258 bne 0x11208                                   |         goto label_1;
                                                             |     }
    0x0001125c mov r2, r8                                    |     r2 = r8;
    0x00011260 mov r1, r4                                    |     r1 = r4;
    0x00011264 ldr r0, [sp, 0x14]                            |     r0 = s1;
    0x00011268 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x0001126c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011270 bne 0x11208                                   |         goto label_1;
                                                             |     }
    0x00011274 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00011278 b 0x11150                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x110f8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_find_target_with_option ()         | void mnt_table_find_target_with_option (int32_t arg_50h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * s1;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000110f8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000110fc ldr sb, [pc, 0x178]                           |     sb = *(0x0001127c);
    0x00011100 sub sp, sp, 0x2c                              |     
    0x00011104 mov r6, r2                                    |     r6 = r2;
    0x00011108 subs r4, r3, 0                                |     r4 = r3 - 0;
    0x0001110c mov r2, 0                                     |     r2 = 0;
    0x00011110 add sb, pc, sb                                |     sb = pc + sb;
    0x00011114 mov r7, r0                                    |     r7 = r0;
    0x00011118 mov r5, r1                                    |     r5 = r1;
    0x0001111c ldr sl, [sp, 0x50]                            |     sl = *(arg_50h);
    0x00011120 str r2, [sp, 0x10]                            |     var_10h = r2;
    0x00011124 str r2, [sp, 0x14]                            |     s1 = r2;
    0x00011128 str r2, [sp, 0x18]                            |     var_18h = r2;
                                                             |     if (r4 != r3) {
    0x0001112c moveq r8, r4                                  |         r8 = r4;
                                                             |     }
                                                             |     if (r4 != r3) {
    0x00011130 beq 0x11140                                   |         
    0x00011134 mov r0, r4                                    |         r0 = r4;
    0x00011138 bl 0x905c                                     |         r0 = strlen (r0);
    0x0001113c mov r8, r0                                    |         r8 = r0;
                                                             |     }
    0x00011140 cmp r5, 0                                     |     
    0x00011144 cmpne r7, 0                                   |     __asm ("cmpne r7, 0");
    0x00011148 bne 0x11158                                   |     
                                                             |     while (r6 == 0) {
                                                             | label_0:
    0x0001114c mov r0, 0                                     |         r0 = 0;
                                                             | label_2:
    0x00011150 add sp, sp, 0x2c                              |         
    0x00011154 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00011158 ldrsb r3, [r5]                                |         r3 = *(r5);
    0x0001115c cmp r6, 0                                     |         
    0x00011160 cmpne r3, 0                                   |         __asm ("cmpne r3, 0");
    0x00011164 beq 0x1114c                                   |         
                                                             |     }
    0x00011168 ldrsb r3, [r6]                                |     r3 = *(r6);
    0x0001116c cmp r4, 0                                     |     
    0x00011170 cmpne r3, 0                                   |     __asm ("cmpne r3, 0");
                                                             |     if (r4 == 0) {
    0x00011174 beq 0x1114c                                   |         goto label_0;
                                                             |     }
    0x00011178 cmp sl, 1                                     |     
                                                             |     if (sl > 1) {
    0x0001117c bhi 0x1114c                                   |         goto label_0;
                                                             |     }
    0x00011180 ldr r3, [pc, 0xf8]                            |     
    0x00011184 ldr r3, [sb, r3]                              |     r3 = *((sb + r3));
    0x00011188 ldr r3, [r3]                                  |     r3 = *(0x1127c);
    0x0001118c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00011190 beq 0x111e8                                   |         
    0x00011194 ldr r3, [pc, 0xe8]                            |         r3 = *(0x11280);
    0x00011198 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x0001119c ldr sb, [r3]                                  |         sb = *(0x11280);
    0x000111a0 bl 0x8204                                     |         getpid ();
    0x000111a4 ldr r3, [pc, 0xdc]                            |         r3 = *(0x11284);
    0x000111a8 ldr r1, [pc, 0xdc]                            |         r1 = *(0x11288);
    0x000111ac add r3, pc, r3                                |         r3 = pc + r3;
    0x000111b0 str r3, [sp]                                  |         *(sp) = r3;
    0x000111b4 ldr r3, [pc, 0xd4]                            |         r3 = *(0x1128c);
    0x000111b8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000111bc add r3, pc, r3                                |         r3 = pc + r3;
    0x000111c0 mov r2, r0                                    |         r2 = r0;
    0x000111c4 mov r0, sb                                    |         r0 = sb;
    0x000111c8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000111cc ldr r1, [pc, 0xc0]                            |         r1 = *(0x11290);
    0x000111d0 str r4, [sp]                                  |         *(sp) = r4;
    0x000111d4 mov r3, r6                                    |         r3 = r6;
    0x000111d8 mov r2, r5                                    |         r2 = r5;
    0x000111dc add r1, pc, r1                                |         r1 = pc + r1;
    0x000111e0 mov r0, r7                                    |         r0 = r7;
    0x000111e4 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000111e8 add sb, sp, 0x1c                              |     sb += var_1ch;
    0x000111ec mov r1, sl                                    |     r1 = sl;
    0x000111f0 mov r0, sb                                    |     r0 = sb;
    0x000111f4 bl 0x8588                                     |     fcn_00008588 ();
    0x000111f8 add sl, sp, 0x18                              |     sl += var_18h;
    0x000111fc add r3, sp, 0x10                              |     r3 += var_10h;
    0x00011200 add fp, sp, 0x14                              |     
    0x00011204 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             | label_1:
    0x00011208 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x0001120c mov r1, sb                                    |     r1 = sb;
    0x00011210 mov r0, r7                                    |     r0 = r7;
    0x00011214 bl 0x7fa0                                     |     r0 = fcn_00007fa0 ();
    0x00011218 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001121c bne 0x1114c                                   |         goto label_0;
                                                             |     }
    0x00011220 mov r1, r5                                    |     r1 = r5;
    0x00011224 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00011228 bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x0001122c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011230 beq 0x11208                                   |         goto label_1;
                                                             |     }
    0x00011234 mov r3, sl                                    |     r3 = sl;
    0x00011238 mov r2, fp                                    |     r2 = fp;
    0x0001123c mov r1, r6                                    |     r1 = r6;
    0x00011240 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00011244 bl 0x88ac                                     |     r0 = fcn_000088ac ();
    0x00011248 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001124c bne 0x11208                                   |         goto label_1;
                                                             |     }
    0x00011250 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00011254 cmp r3, r8                                    |     
                                                             |     if (r3 != r8) {
    0x00011258 bne 0x11208                                   |         goto label_1;
                                                             |     }
    0x0001125c mov r2, r8                                    |     r2 = r8;
    0x00011260 mov r1, r4                                    |     r1 = r4;
    0x00011264 ldr r0, [sp, 0x14]                            |     r0 = s1;
    0x00011268 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x0001126c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011270 bne 0x11208                                   |         goto label_1;
                                                             |     }
    0x00011274 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00011278 b 0x11150                                     |     goto label_2;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0xfd04 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mnt_table_get_root_fs ()                         | void mnt_table_get_root_fs (uint32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     char * format;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_3ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000fd04 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000fd08 ldr r6, [pc, 0x1f4]                               |     r6 = *(0xff00);
    0x0000fd0c cmp r1, 0                                         |     
    0x0000fd10 cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
    0x0000fd14 add r6, pc, r6                                    |     r6 = pc + r6;
    0x0000fd18 sub sp, sp, 0x3c                                  |     
                                                                 |     if (r1 == 0) {
    0x0000fd1c beq 0xfdf0                                        |         goto label_0;
                                                                 |     }
    0x0000fd20 mov r5, r0                                        |     r5 = r0;
    0x0000fd24 mov r4, r1                                        |     r4 = r1;
    0x0000fd28 bl 0xf714                                         |     r0 = fcn_0000f714 (r0);
    0x0000fd2c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000fd30 beq 0xfdf0                                        |         goto label_0;
                                                                 |     }
    0x0000fd34 ldr r3, [pc, 0x1cc]                               |     r3 = *(0xff04);
    0x0000fd38 ldr r7, [r6, r3]                                  |     r7 = *((r6 + r3));
    0x0000fd3c ldr r3, [r7]                                      |     r3 = *(r7);
    0x0000fd40 tst r3, 0x20                                      |     
                                                                 |     if ((r3 & 0x20) != 0) {
    0x0000fd44 beq 0xfd90                                        |         
    0x0000fd48 ldr r3, [pc, 0x1bc]                               |         r3 = *(0xff08);
    0x0000fd4c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000fd50 ldr r8, [r3]                                      |         r8 = *(0xff08);
    0x0000fd54 bl 0x8204                                         |         getpid ();
    0x0000fd58 ldr r3, [pc, 0x1b0]                               |         r3 = *(0xff0c);
    0x0000fd5c ldr r1, [pc, 0x1b0]                               |         r1 = *(0xff10);
    0x0000fd60 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000fd64 str r3, [sp]                                      |         *(sp) = r3;
    0x0000fd68 ldr r3, [pc, 0x1a8]                               |         r3 = *(0xff14);
    0x0000fd6c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000fd70 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000fd74 mov r2, r0                                        |         r2 = r0;
    0x0000fd78 mov r0, r8                                        |         r0 = r8;
    0x0000fd7c bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0000fd80 ldr r1, [pc, 0x194]                               |         r1 = *(0xff18);
    0x0000fd84 mov r0, r5                                        |         r0 = r5;
    0x0000fd88 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000fd8c bl 0xf520                                         |         fcn_0000f520 (r0);
                                                                 |     }
    0x0000fd90 mov r8, 0                                         |     r8 = 0;
    0x0000fd94 add sb, sp, 0x20                                  |     sb += var_20h;
    0x0000fd98 str r8, [r4]                                      |     *(r4) = r8;
    0x0000fd9c mov r1, r8                                        |     r1 = r8;
    0x0000fda0 mov r0, sb                                        |     r0 = sb;
    0x0000fda4 bl 0x8588                                         |     fcn_00008588 ();
    0x0000fda8 add sl, sp, 0x18                                  |     sl += var_18h;
                                                                 |     do {
    0x0000fdac mov r2, sl                                        |         r2 = sl;
    0x0000fdb0 mov r1, sb                                        |         r1 = sb;
    0x0000fdb4 mov r0, r5                                        |         r0 = r5;
    0x0000fdb8 bl 0x7fa0                                         |         r0 = fcn_00007fa0 ();
    0x0000fdbc cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000fdc0 beq 0xfdf8                                        |             
    0x0000fdc4 ldr r3, [pc, 0x154]                               |             r3 = *(0xff1c);
    0x0000fdc8 ldr sb, [pc, 0x154]                               |             sb = ":_default_linkfile_s__lockfile_s";
    0x0000fdcc add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000fdd0 str r3, [sp, 0xc]                                 |             var_ch = r3;
    0x0000fdd4 ldr r3, [pc, 0x14c]                               |             r3 = ":_default_linkfile_s__lockfile_s";
    0x0000fdd8 add sb, pc, sb                                    |             sb = pc + sb;
    0x0000fddc add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000fde0 str r3, [sp, 0x10]                                |             format = r3;
                                                                 | label_1:
    0x0000fde4 ldr r0, [r4]                                      |             r0 = *(r4);
    0x0000fde8 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0000fdec bne 0xfe2c                                        |                 goto label_2;
                                                                 |             }
                                                                 | label_0:
    0x0000fdf0 mvn r3, 0x15                                      |             r3 = ~0x15;
    0x0000fdf4 b 0xfe98                                          |             goto label_3;
                                                                 |         }
    0x0000fdf8 ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x0000fdfc bl 0x8b34                                         |         fcn_00008b34 ();
    0x0000fe00 ldr r2, [r4]                                      |         r2 = *(r4);
    0x0000fe04 cmp r8, r0                                        |         
                                                                 |         if (r8 > r0) {
    0x0000fe08 movle r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r8 <= r0) {
    0x0000fe0c movgt r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0000fe10 cmp r2, 0                                         |         
                                                                 |         if (r2 != 0) {
    0x0000fe14 moveq r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0000fe18 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000fe1c ldrne r3, [sp, 0x18]                              |             r3 = var_18h;
                                                                 |         }
                                                                 |         if (r3 == 0) {
    0x0000fe20 movne r8, r0                                      |             r8 = r0;
                                                                 |         }
                                                                 |         if (r3 == 0) {
    0x0000fe24 strne r3, [r4]                                    |             *(r4) = r3;
                                                                 |         }
    0x0000fe28 b 0xfdac                                          |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x0000fe2c bl 0x8b34                                         |     fcn_00008b34 ();
    0x0000fe30 add r8, sp, 0x2c                                  |     r8 += var_2ch;
    0x0000fe34 mov r1, 0                                         |     r1 = 0;
    0x0000fe38 add sl, sp, 0x1c                                  |     sl += var_1ch;
    0x0000fe3c mov fp, r0                                        |     
    0x0000fe40 mov r0, r8                                        |     r0 = r8;
    0x0000fe44 bl 0x8588                                         |     fcn_00008588 ();
                                                                 |     do {
    0x0000fe48 mov r2, sl                                        |         r2 = sl;
    0x0000fe4c mov r1, r8                                        |         r1 = r8;
    0x0000fe50 mov r0, r5                                        |         r0 = r5;
    0x0000fe54 bl 0x7fa0                                         |         r0 = fcn_00007fa0 ();
    0x0000fe58 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 != r0) {
    0x0000fe5c bne 0xfe88                                        |             goto label_4;
                                                                 |         }
    0x0000fe60 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x0000fe64 str r3, [sp, 0x14]                                |         var_14h = r3;
    0x0000fe68 bl 0x8c24                                         |         fcn_00008c24 ();
    0x0000fe6c ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0000fe70 cmp fp, r0                                        |         
    0x0000fe74 bne 0xfe48                                        |         
                                                                 |     } while (fp != r0);
    0x0000fe78 ldr r8, [sp, 0x1c]                                |     r8 = var_1ch;
    0x0000fe7c ldr r2, [r4]                                      |     r2 = *(r4);
    0x0000fe80 cmp r8, 0                                         |     
                                                                 |     if (r8 != 0) {
    0x0000fe84 bne 0xfea4                                        |         goto label_5;
                                                                 |     }
                                                                 | label_4:
    0x0000fe88 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0000fe8c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000fe90 movne r3, 0                                       |         r3 = 0;
                                                                 |         goto label_6;
                                                                 |     }
                                                                 |     if (r3 == 0) {
                                                                 | label_6:
    0x0000fe94 beq 0xfdf0                                        |         goto label_0;
                                                                 |     }
                                                                 |     do {
                                                                 | label_3:
    0x0000fe98 mov r0, r3                                        |         r0 = r3;
    0x0000fe9c add sp, sp, 0x3c                                  |         
    0x0000fea0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_5:
    0x0000fea4 cmp r2, r8                                        |         
    0x0000fea8 beq 0xfe98                                        |         
                                                                 |     } while (r2 == r8);
    0x0000feac ldr r3, [r7]                                      |     r3 = *(r7);
    0x0000feb0 tst r3, 0x20                                      |     
                                                                 |     if ((r3 & 0x20) != 0) {
    0x0000feb4 beq 0xfefc                                        |         
    0x0000feb8 ldr r3, [pc, 0x4c]                                |         r3 = *(0xff08);
    0x0000febc ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000fec0 ldr sl, [r3]                                      |         sl = *(0xff08);
    0x0000fec4 bl 0x8204                                         |         getpid ();
    0x0000fec8 ldr r1, [sp, 0x10]                                |         r1 = format;
    0x0000fecc ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000fed0 str sb, [sp]                                      |         *(sp) = sb;
    0x0000fed4 mov r2, r0                                        |         r2 = r0;
    0x0000fed8 mov r0, sl                                        |         r0 = sl;
    0x0000fedc bl 0x8798                                         |         fprintf (r0, r1, r2, r3)
    0x0000fee0 mov r0, r8                                        |         r0 = r8;
    0x0000fee4 bl 0x81d4                                         |         fcn_000081d4 ();
    0x0000fee8 ldr r1, [pc, 0x3c]                                |         r1 = *(0xff28);
    0x0000feec add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000fef0 mov r2, r0                                        |         r2 = r0;
    0x0000fef4 mov r0, r5                                        |         r0 = r5;
    0x0000fef8 bl 0xf520                                         |         fcn_0000f520 (r0);
                                                                 |     }
    0x0000fefc str r8, [r4]                                      |     *(r4) = r8;
    0x0000ff00 b 0xfde4                                          |     goto label_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/lib/libmount.so.1.1.0 @ 0x120e8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_is_fs_mounted ()                   | void mnt_table_is_fs_mounted (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     char * s2;
                                                             |     char * format;
                                                             |     int32_t var_28h;
                                                             |     char * ptr;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_38h_2;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_60h_2;
                                                             |     int32_t var_a8h;
                                                             |     int32_t var_ach;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000120e8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000120ec ldr r7, [pc, 0x738]                           |     r7 = *(0x12828);
    0x000120f0 mov r3, 0                                     |     r3 = 0;
    0x000120f4 sub sp, sp, 0xac                              |     
    0x000120f8 str r3, [sp, 0x2c]                            |     ptr = r3;
    0x000120fc ldr r3, [pc, 0x72c]                           |     r3 = "refix";
    0x00012100 add r7, pc, r7                                |     r7 = pc + r7;
    0x00012104 ldr sb, [r7, r3]                              |     sb = *(0x12828);
    0x00012108 mov r8, r0                                    |     r8 = r0;
    0x0001210c ldr r3, [sb]                                  |     r3 = *(0x12828);
    0x00012110 mov r4, r1                                    |     r4 = r1;
    0x00012114 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) != 0) {
    0x00012118 beq 0x12180                                   |         
    0x0001211c ldr r3, [pc, 0x710]                           |         r3 = *(0x12830);
    0x00012120 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00012124 ldr r5, [r3]                                  |         r5 = *(0x12830);
    0x00012128 bl 0x8204                                     |         getpid ();
    0x0001212c ldr r3, [pc, 0x704]                           |         r3 = *(0x12834);
    0x00012130 ldr r1, [pc, 0x704]                           |         r1 = *(0x12838);
    0x00012134 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012138 str r3, [sp]                                  |         *(sp) = r3;
    0x0001213c ldr r3, [pc, 0x6fc]                           |         r3 = *(0x1283c);
    0x00012140 add r1, pc, r1                                |         r1 = pc + r1;
    0x00012144 add r3, pc, r3                                |         r3 = pc + r3;
    0x00012148 mov r2, r0                                    |         r2 = r0;
    0x0001214c mov r0, r5                                    |         r0 = r5;
    0x00012150 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00012154 mov r0, r4                                    |         r0 = r4;
    0x00012158 bl 0x81d4                                     |         r0 = fcn_000081d4 ();
    0x0001215c mov r5, r0                                    |         r5 = r0;
    0x00012160 mov r0, r4                                    |         r0 = r4;
    0x00012164 bl 0x8c90                                     |         fcn_00008c90 ();
    0x00012168 ldr r1, [pc, 0x6d4]                           |         r1 = *(0x12840);
    0x0001216c mov r2, r5                                    |         r2 = r5;
    0x00012170 add r1, pc, r1                                |         r1 = pc + r1;
    0x00012174 mov r3, r0                                    |         r3 = r0;
    0x00012178 mov r0, r4                                    |         r0 = r4;
    0x0001217c bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x00012180 mov r0, r4                                    |     r0 = r4;
    0x00012184 bl 0x845c                                     |     r0 = fcn_0000845c ();
    0x00012188 cmp r0, 0                                     |     
    0x0001218c beq 0x121f4                                   |     
                                                             |     while (r5 != r0) {
    0x00012190 ldr sl, [sb]                                  |         sl = *(sb);
    0x00012194 ands sl, sl, 0x40                             |         sl &= 0x40;
                                                             |         if (sl != sl) {
    0x00012198 beq 0x121e8                                   |             
    0x0001219c ldr r3, [pc, 0x690]                           |             r3 = *(0x12830);
    0x000121a0 mov sl, 0                                     |             sl = 0;
    0x000121a4 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000121a8 ldr r5, [r3]                                  |             r5 = *(0x12830);
    0x000121ac bl 0x8204                                     |             getpid ();
    0x000121b0 ldr r3, [pc, 0x690]                           |             r3 = *(0x12844);
    0x000121b4 ldr r1, [pc, 0x690]                           |             r1 = *(0x12848);
    0x000121b8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000121bc str r3, [sp]                                  |             *(sp) = r3;
    0x000121c0 ldr r3, [pc, 0x688]                           |             r3 = *(0x1284c);
    0x000121c4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000121c8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000121cc mov r2, r0                                    |             r2 = r0;
    0x000121d0 mov r0, r5                                    |             r0 = r5;
    0x000121d4 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000121d8 ldr r1, [pc, 0x674]                           |             r1 = *(0x12850);
    0x000121dc mov r0, r4                                    |             r0 = r4;
    0x000121e0 add r1, pc, r1                                |             r1 = pc + r1;
    0x000121e4 bl 0xf520                                     |             fcn_0000f520 (r0);
                                                             |         }
                                                             | label_2:
    0x000121e8 mov r0, sl                                    |         r0 = sl;
    0x000121ec add sp, sp, 0xac                              |         
    0x000121f0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x000121f4 mov r0, r8                                    |         r0 = r8;
    0x000121f8 bl 0x8c54                                     |         r0 = fcn_00008c54 ();
    0x000121fc subs r5, r0, 0                                |         r5 = r0 - 0;
    0x00012200 bne 0x12190                                   |         
                                                             |     }
    0x00012204 mov r0, r8                                    |     r0 = r8;
    0x00012208 bl 0xf714                                     |     r0 = fcn_0000f714 (r0);
    0x0001220c cmp r0, 0                                     |     
    0x00012210 bne 0x12234                                   |     
                                                             |     while (r5 == r0) {
    0x00012214 mov r6, 0                                     |         r6 = 0;
                                                             | label_0:
    0x00012218 mov r0, r4                                    |         r0 = r4;
    0x0001221c bl 0x8c90                                     |         r0 = fcn_00008c90 ();
    0x00012220 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 != r0) {
    0x00012224 bne 0x12304                                   |             goto label_9;
                                                             |         }
                                                             | label_1:
    0x00012228 mov r2, 0                                     |         r2 = 0;
    0x0001222c mov r3, 0                                     |         r3 = 0;
    0x00012230 b 0x12384                                     |         goto label_10;
    0x00012234 ldr r1, [pc, 0x61c]                           |         r1 = *(0x12854);
    0x00012238 mov r3, r5                                    |         r3 = r5;
    0x0001223c mov r2, r5                                    |         r2 = r5;
    0x00012240 add r1, pc, r1                                |         r1 = pc + r1;
    0x00012244 mov r0, r4                                    |         r0 = r4;
    0x00012248 bl 0x88ac                                     |         r0 = fcn_000088ac ();
    0x0001224c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00012250 beq 0x12278                                   |             
    0x00012254 ldr r1, [pc, 0x600]                           |             r1 = *(0x12858);
    0x00012258 mov r2, r5                                    |             r2 = r5;
    0x0001225c mov r3, r5                                    |             r3 = r5;
    0x00012260 add r1, pc, r1                                |             r1 = pc + r1;
    0x00012264 mov r0, r4                                    |             r0 = r4;
    0x00012268 bl 0x88ac                                     |             r0 = fcn_000088ac ();
    0x0001226c cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00012270 movne r2, r5                                  |                 r2 = r5;
                                                             |             }
                                                             |             if (r0 != 0) {
    0x00012274 bne 0x1227c                                   |                 goto label_11;
                                                             |             }
                                                             |         }
    0x00012278 mov r2, 0x1000                                |         r2 = 0x1000;
                                                             | label_11:
    0x0001227c add r3, sp, 0x2c                              |         r3 += ptr;
    0x00012280 mov r1, r4                                    |         r1 = r4;
    0x00012284 mov r0, r8                                    |         r0 = r8;
    0x00012288 bl 0x1160c                                    |         r0 = fcn_0001160c (r0, r1, r2);
    0x0001228c subs r5, r0, 0                                |         r5 = r0 - 0;
    0x00012290 beq 0x12214                                   |         
                                                             |     }
    0x00012294 bl 0x8de0                                     |     r0 = fcn_00008de0 ();
    0x00012298 mov r6, r0                                    |     r6 = r0;
    0x0001229c mov r0, r5                                    |     r0 = r5;
    0x000122a0 bl 0x80cc                                     |     fcn_000080cc ();
    0x000122a4 cmp r6, 0                                     |     
    0x000122a8 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r6 != 0) {
    0x000122ac beq 0x122fc                                   |         
    0x000122b0 ldr r1, [pc, 0x5a8]                           |         r1 = *(0x1285c);
    0x000122b4 mov r0, r6                                    |         r0 = r6;
    0x000122b8 mov r2, 3                                     |         r2 = 3;
    0x000122bc add r1, pc, r1                                |         r1 = pc + r1;
    0x000122c0 bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x000122c4 subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl == r0) {
    0x000122c8 movne r6, 0                                   |             r6 = 0;
                                                             |         }
                                                             |         if (sl != r0) {
    0x000122cc bne 0x122fc                                   |             goto label_12;
                                                             |         }
    0x000122d0 ldr r6, [sp, 0x2c]                            |         r6 = ptr;
    0x000122d4 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x000122d8 beq 0x122fc                                   |             goto label_12;
                                                             |         }
    0x000122dc mov r1, r6                                    |         r1 = r6;
    0x000122e0 mov r0, r5                                    |         r0 = r5;
    0x000122e4 bl 0x30d64                                    |         r0 = fcn_00030d64 (r0, r1);
    0x000122e8 mov r6, r0                                    |         r6 = r0;
    0x000122ec mov r5, r6                                    |         r5 = r6;
    0x000122f0 ldr r0, [sp, 0x2c]                            |         r0 = ptr;
    0x000122f4 bl 0x91c4                                     |         free (r0);
    0x000122f8 str sl, [sp, 0x2c]                            |         ptr = sl;
                                                             |     }
                                                             | label_12:
    0x000122fc cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00012300 beq 0x12218                                   |         goto label_0;
                                                             |     }
                                                             | label_9:
    0x00012304 ldr r3, [r8, 0x18]                            |     r3 = *((r8 + 0x18));
    0x00012308 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001230c beq 0x12334                                   |         goto label_13;
                                                             |     }
    0x00012310 mov r0, r4                                    |     r0 = r4;
    0x00012314 bl 0x8894                                     |     r0 = fcn_00008894 ();
    0x00012318 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001231c bne 0x12334                                   |         goto label_13;
                                                             |     }
    0x00012320 mov r0, r5                                    |     r0 = r5;
    0x00012324 ldr r1, [r8, 0x18]                            |     r1 = *((r8 + 0x18));
    0x00012328 bl 0x7ec8                                     |     r0 = fcn_00007ec8 ();
    0x0001232c subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x00012330 beq 0x12228                                   |         goto label_1;
                                                             |     }
                                                             | label_13:
    0x00012334 ldr r3, [sp, 0x2c]                            |     r3 = ptr;
    0x00012338 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001233c beq 0x12228                                   |         goto label_1;
                                                             |     }
    0x00012340 mov r0, r4                                    |     r0 = r4;
    0x00012344 bl 0x7ed4                                     |     r0 = fcn_00007ed4 ();
    0x00012348 mov r2, r0                                    |     r2 = r0;
    0x0001234c mov r3, r1                                    |     r3 = r1;
    0x00012350 orrs r3, r2, r3                               |     r3 = r2 | r3;
    0x00012354 strd r0, r1, [sp, 0x10]                       |     __asm ("strd r0, r1, [var_10h]");
                                                             |     if (r3 == r2) {
    0x00012358 bne 0x12388                                   |         
    0x0001235c add r1, sp, 0x40                              |         r1 += var_40h;
    0x00012360 mov r0, r5                                    |         r0 = r5;
    0x00012364 bl 0x8060                                     |         r0 = stat64 ();
    0x00012368 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001236c bne 0x12388                                   |             goto label_14;
                                                             |         }
    0x00012370 ldr r3, [sp, 0x50]                            |         r3 = var_50h;
    0x00012374 and r3, r3, 0xf000                            |         r3 &= 0xf000;
    0x00012378 cmp r3, 0x6000                                |         
                                                             |         if (r3 != fcn.00000004) {
    0x0001237c bne 0x12388                                   |             goto label_14;
                                                             |         }
    0x00012380 ldrd r2, r3, [sp, 0x60]                       |         __asm ("ldrd r2, r3, [var_60h]");
                                                             | label_10:
    0x00012384 strd r2, r3, [sp, 0x10]                       |         __asm ("strd r2, r3, [var_10h]");
                                                             |     }
                                                             | label_14:
    0x00012388 mov r0, r4                                    |     r0 = r4;
    0x0001238c bl 0x81d4                                     |     fcn_000081d4 ();
    0x00012390 clz r1, r5                                    |     r1 &= r5;
    0x00012394 lsr r1, r1, 5                                 |     r1 >>= 5;
    0x00012398 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001239c moveq r1, 1                                   |         r1 = 1;
                                                             |     }
    0x000123a0 cmp r1, 0                                     |     
    0x000123a4 str r0, [sp, 0x18]                            |     var_18h = r0;
                                                             |     if (r1 != 0) {
    0x000123a8 beq 0x12474                                   |         
    0x000123ac ldr sl, [sb]                                  |         sl = *(sb);
    0x000123b0 ands sl, sl, 0x40                             |         sl &= 0x40;
                                                             |         if (sl != sl) {
    0x000123b4 beq 0x12404                                   |             
    0x000123b8 ldr r3, [pc, 0x474]                           |             r3 = *(0x12830);
    0x000123bc ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000123c0 ldr sl, [r3]                                  |             sl = *(0x12830);
    0x000123c4 bl 0x8204                                     |             getpid ();
    0x000123c8 ldr r3, [pc, 0x494]                           |             r3 = *(0x12860);
    0x000123cc ldr r1, [pc, 0x494]                           |             r1 = *(0x12864);
    0x000123d0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000123d4 str r3, [sp]                                  |             *(sp) = r3;
    0x000123d8 ldr r3, [pc, 0x48c]                           |             r3 = *(0x12868);
    0x000123dc add r1, pc, r1                                |             r1 = pc + r1;
    0x000123e0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000123e4 mov r2, r0                                    |             r2 = r0;
    0x000123e8 mov r0, sl                                    |             r0 = sl;
    0x000123ec bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000123f0 ldr r1, [pc, 0x478]                           |             r1 = *(0x1286c);
    0x000123f4 mov r0, r4                                    |             r0 = r4;
    0x000123f8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000123fc bl 0xf520                                     |             fcn_0000f520 (r0);
    0x00012400 mov sl, 0                                     |             sl = 0;
                                                             |         }
                                                             | label_4:
    0x00012404 ldr r0, [sp, 0x2c]                            |         r0 = ptr;
    0x00012408 bl 0x91c4                                     |         free (r0);
    0x0001240c ldr r3, [sb]                                  |         r3 = *(sb);
    0x00012410 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x00012414 beq 0x12468                                   |             
    0x00012418 ldr r3, [pc, 0x414]                           |             r3 = *(0x12830);
    0x0001241c ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x00012420 ldr r4, [r3]                                  |             r4 = *(0x12830);
    0x00012424 bl 0x8204                                     |             getpid ();
    0x00012428 ldr r3, [pc, 0x444]                           |             r3 = *(0x12870);
    0x0001242c ldr r1, [pc, 0x444]                           |             r1 = *(0x12874);
    0x00012430 add r3, pc, r3                                |             r3 = pc + r3;
    0x00012434 str r3, [sp]                                  |             *(sp) = r3;
    0x00012438 ldr r3, [pc, 0x43c]                           |             r3 = *(0x12878);
    0x0001243c add r1, pc, r1                                |             r1 = pc + r1;
    0x00012440 add r3, pc, r3                                |             r3 = pc + r3;
    0x00012444 mov r2, r0                                    |             r2 = r0;
    0x00012448 mov r0, r4                                    |             r0 = r4;
    0x0001244c bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00012450 ldr r1, [pc, 0x428]                           |             r1 = *(0x1287c);
    0x00012454 mov r3, sl                                    |             r3 = sl;
    0x00012458 mov r2, r5                                    |             r2 = r5;
    0x0001245c add r1, pc, r1                                |             r1 = pc + r1;
    0x00012460 mov r0, r8                                    |             r0 = r8;
    0x00012464 bl 0xf520                                     |             fcn_0000f520 (r0);
                                                             |         }
    0x00012468 mov r0, r6                                    |         r0 = r6;
    0x0001246c bl 0x91c4                                     |         free (r0);
    0x00012470 b 0x121e8                                     |         goto label_2;
                                                             |     }
    0x00012474 add r0, sp, 0x40                              |     r0 += var_40h;
    0x00012478 bl 0x8588                                     |     fcn_00008588 ();
    0x0001247c ldr r3, [sb]                                  |     r3 = *(sb);
    0x00012480 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) != 0) {
    0x00012484 beq 0x124e0                                   |         
    0x00012488 ldr r3, [pc, 0x3a4]                           |         r3 = *(0x12830);
    0x0001248c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00012490 ldr sl, [r3]                                  |         sl = *(0x12830);
    0x00012494 bl 0x8204                                     |         getpid ();
    0x00012498 ldr r3, [pc, 0x3e4]                           |         r3 = *(0x12880);
    0x0001249c ldr r1, [pc, 0x3e4]                           |         r1 = *(0x12884);
    0x000124a0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000124a4 str r3, [sp]                                  |         *(sp) = r3;
    0x000124a8 ldr r3, [pc, 0x3dc]                           |         r3 = *(0x12888);
    0x000124ac add r1, pc, r1                                |         r1 = pc + r1;
    0x000124b0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000124b4 mov r2, r0                                    |         r2 = r0;
    0x000124b8 mov r0, sl                                    |         r0 = sl;
    0x000124bc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000124c0 ldr r3, [sp, 0x2c]                            |         r3 = ptr;
    0x000124c4 ldr r1, [pc, 0x3c4]                           |         r1 = *(0x1288c);
    0x000124c8 str r3, [sp]                                  |         *(sp) = r3;
    0x000124cc mov r2, r5                                    |         r2 = r5;
    0x000124d0 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x000124d4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000124d8 mov r0, r4                                    |         r0 = r4;
    0x000124dc bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000124e0 mov r3, 0                                     |     r3 = 0;
    0x000124e4 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x000124e8 ldr r3, [pc, 0x3a4]                           |     r3 = *(0x12890);
    0x000124ec add r3, pc, r3                                |     r3 = pc + r3;
    0x000124f0 str r3, [sp, 0x20]                            |     s2 = r3;
    0x000124f4 ldr r3, [pc, 0x39c]                           |     r3 = *(0x12894);
    0x000124f8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000124fc str r3, [sp, 0x24]                            |     format = r3;
    0x00012500 b 0x12568                                     |     
                                                             |     while (sl == r0) {
    0x00012504 mov r1, r5                                    |         r1 = r5;
    0x00012508 ldr r0, [sp, 0x28]                            |         r0 = var_28h;
    0x0001250c bl 0x8600                                     |         fcn_00008600 ();
    0x00012510 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00012514 ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x00012518 orrs r3, r3, r2                               |         r3 |= r2;
                                                             |         if (r3 == r3) {
    0x0001251c movne r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r3 != r3) {
    0x00012520 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00012524 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00012528 movne r3, 0                                   |             r3 = 0;
                                                             |         }
    0x0001252c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00012530 beq 0x12584                                   |             goto label_15;
                                                             |         }
    0x00012534 ldr r0, [sp, 0x28]                            |         r0 = var_28h;
    0x00012538 bl 0x7ed4                                     |         fcn_00007ed4 ();
    0x0001253c ldrd r2, r3, [sp, 0x10]                       |         __asm ("ldrd r2, r3, [var_10h]");
    0x00012540 cmp r1, r3                                    |         
    0x00012544 cmpeq r0, r2                                  |         __asm ("cmpeq r0, r2");
                                                             |         if (r1 == r3) {
    0x00012548 beq 0x1258c                                   |             goto label_6;
                                                             |         }
                                                             | label_3:
    0x0001254c mov r2, 0                                     |         r2 = 0;
    0x00012550 mov r3, 0                                     |         r3 = 0;
    0x00012554 ldr r0, [sp, 0x28]                            |         r0 = var_28h;
    0x00012558 strd r2, r3, [sp, 0x38]                       |         __asm ("strd r2, r3, [var_38h]");
    0x0001255c bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x00012560 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00012564 bne 0x125c8                                   |             goto label_16;
                                                             |         }
                                                             | label_5:
    0x00012568 add r2, sp, 0x28                              |         r2 += var_28h;
    0x0001256c add r1, sp, 0x40                              |         r1 += var_40h;
    0x00012570 mov r0, r8                                    |         r0 = r8;
    0x00012574 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00012578 subs sl, r0, 0                                |         sl = r0 - 0;
    0x0001257c beq 0x12504                                   |         
                                                             |     }
    0x00012580 b 0x125b8                                     |     goto label_8;
                                                             | label_15:
    0x00012584 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00012588 beq 0x1254c                                   |         goto label_3;
                                                             |     }
                                                             | label_6:
    0x0001258c ldr r3, [sp, 0x2c]                            |     r3 = ptr;
    0x00012590 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012594 bne 0x1275c                                   |         goto label_17;
                                                             |     }
                                                             | label_7:
    0x00012598 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x0001259c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000125a0 bne 0x12814                                   |         goto label_18;
                                                             |     }
    0x000125a4 ldr r1, [sp, 0x18]                            |     r1 = var_18h;
    0x000125a8 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x000125ac bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x000125b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000125b4 beq 0x127f4                                   |         goto label_19;
                                                             |     }
                                                             | label_8:
    0x000125b8 ldr sl, [sp, 0x28]                            |     sl = var_28h;
    0x000125bc adds sl, sl, 0                                |     sl += 0;
                                                             |     if (sl == sl) {
    0x000125c0 movne sl, 1                                   |         sl = 1;
                                                             |     }
    0x000125c4 b 0x12404                                     |     goto label_4;
                                                             | label_16:
    0x000125c8 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x000125cc bl 0x80cc                                     |     fcn_000080cc ();
    0x000125d0 ldr r1, [pc, 0x2c4]                           |     r1 = *(0x12898);
    0x000125d4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000125d8 bl 0xf6bc                                     |     r0 = fcn_0000f6bc (r0, r1);
    0x000125dc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000125e0 beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x000125e4 ldr r1, [pc, 0x2b4]                           |     r1 = *(0x1289c);
    0x000125e8 add r3, sp, 0x34                              |     r3 += var_34h;
    0x000125ec add r2, sp, 0x30                              |     r2 += var_30h;
    0x000125f0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000125f4 mov r0, r4                                    |     r0 = r4;
    0x000125f8 bl 0x88ac                                     |     r0 = fcn_000088ac ();
    0x000125fc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012600 bne 0x12674                                   |         goto label_20;
                                                             |     }
    0x00012604 add r2, sp, 0x38                              |     r2 += var_38h;
    0x00012608 ldrd r0, r1, [sp, 0x30]                       |     __asm ("ldrd r0, r1, [var_34h]");
    0x0001260c bl 0x18084                                    |     r0 = fcn_00018084 (r0, r1);
    0x00012610 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012614 moveq sl, 0x10                                |         sl = 0x10;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00012618 beq 0x12674                                   |         goto label_20;
                                                             |     }
    0x0001261c ldr r3, [sb]                                  |     r3 = *(sb);
    0x00012620 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) == 0) {
    0x00012624 beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x00012628 ldr r3, [pc, 0x204]                           |     r3 = *(0x12830);
    0x0001262c ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00012630 ldr sl, [r3]                                  |     sl = *(0x12830);
    0x00012634 bl 0x8204                                     |     getpid ();
    0x00012638 ldr r3, [pc, 0x264]                           |     r3 = *(0x128a0);
    0x0001263c ldr r1, [pc, 0x264]                           |     r1 = *(0x128a4);
    0x00012640 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012644 str r3, [sp]                                  |     *(sp) = r3;
    0x00012648 ldr r3, [pc, 0x25c]                           |     r3 = *(0x128a8);
    0x0001264c add r1, pc, r1                                |     r1 = pc + r1;
    0x00012650 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012654 mov r2, r0                                    |     r2 = r0;
    0x00012658 mov r0, sl                                    |     r0 = sl;
    0x0001265c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00012660 ldr r1, [pc, 0x248]                           |     r1 = *(0x128ac);
    0x00012664 mov r0, r4                                    |     r0 = r4;
    0x00012668 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001266c bl 0xf520                                     |     fcn_0000f520 (r0);
    0x00012670 b 0x12568                                     |     goto label_5;
                                                             | label_20:
    0x00012674 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00012678 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) != 0) {
    0x0001267c beq 0x126d8                                   |         
    0x00012680 ldr r3, [pc, 0x1ac]                           |         r3 = *(0x12830);
    0x00012684 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00012688 ldr fp, [r3]                                  |         fp = *(0x12830);
    0x0001268c bl 0x8204                                     |         getpid ();
    0x00012690 ldr r3, [pc, 0x21c]                           |         r3 = *(0x128b0);
    0x00012694 ldr r1, [pc, 0x21c]                           |         r1 = *(0x128b4);
    0x00012698 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001269c str r3, [sp]                                  |         *(sp) = r3;
    0x000126a0 ldr r3, [pc, 0x214]                           |         r3 = *(0x128b8);
    0x000126a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000126a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000126ac mov r2, r0                                    |         r2 = r0;
    0x000126b0 mov r0, fp                                    |         r0 = fp;
    0x000126b4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000126b8 ldr fp, [sp, 0x28]                            |         fp = var_28h;
    0x000126bc mov r0, fp                                    |         r0 = fp;
    0x000126c0 bl 0x80cc                                     |         fcn_000080cc ();
    0x000126c4 ldr r1, [pc, 0x1f4]                           |         r1 = *(0x128bc);
    0x000126c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000126cc mov r2, r0                                    |         r2 = r0;
    0x000126d0 mov r0, fp                                    |         r0 = fp;
    0x000126d4 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000126d8 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x000126dc bl 0x80cc                                     |     fcn_000080cc ();
    0x000126e0 mov r2, 0                                     |     r2 = 0;
    0x000126e4 mov r3, 0                                     |     r3 = 0;
    0x000126e8 strd r2, r3, [sp]                             |     __asm ("strd r2, r3, [sp]");
    0x000126ec str sl, [sp, 8]                               |     var_8h = sl;
    0x000126f0 ldrd r2, r3, [sp, 0x38]                       |     __asm ("ldrd r2, r3, [var_38h]");
    0x000126f4 mov r1, r5                                    |     r1 = r5;
    0x000126f8 bl 0x38050                                    |     r0 = fcn_00038050 (r0, r1, r2, r3);
    0x000126fc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00012700 beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x00012704 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00012708 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) == 0) {
    0x0001270c beq 0x1258c                                   |         goto label_6;
                                                             |     }
    0x00012710 ldr r3, [pc, 0x11c]                           |     r3 = *(0x12830);
    0x00012714 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00012718 ldr sl, [r3]                                  |     sl = *(0x12830);
    0x0001271c bl 0x8204                                     |     getpid ();
    0x00012720 ldr r3, [pc, 0x19c]                           |     r3 = *(0x128c0);
    0x00012724 ldr r1, [pc, 0x19c]                           |     r1 = *(0x128c4);
    0x00012728 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001272c str r3, [sp]                                  |     *(sp) = r3;
    0x00012730 ldr r3, [pc, 0x194]                           |     r3 = *(0x128c8);
    0x00012734 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012738 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001273c mov r2, r0                                    |     r2 = r0;
    0x00012740 mov r0, sl                                    |     r0 = sl;
    0x00012744 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00012748 ldr r1, [pc, 0x180]                           |     r1 = *(0x128cc);
    0x0001274c ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x00012750 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012754 bl 0xf520                                     |     fcn_0000f520 (r0);
    0x00012758 b 0x1258c                                     |     goto label_6;
                                                             | label_17:
    0x0001275c ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x00012760 bl 0x8de0                                     |     r0 = fcn_00008de0 ();
    0x00012764 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00012768 beq 0x127d0                                   |         goto label_21;
                                                             |     }
    0x0001276c ldr r1, [sp, 0x20]                            |     r1 = s2;
    0x00012770 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00012774 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl != r0) {
    0x00012778 bne 0x127d0                                   |         goto label_21;
                                                             |     }
    0x0001277c add r2, sp, 0xa8                              |     r2 += var_a8h;
    0x00012780 str sl, [r2, -0x70]!                          |     *((r2 -= 0x70)) = sl;
    0x00012784 ldr r1, [sp, 0x24]                            |     r1 = format;
    0x00012788 mov r0, r5                                    |     r0 = r5;
    0x0001278c bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x00012790 cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x00012794 beq 0x127a4                                   |         
    0x00012798 ldr sl, [sp, 0x38]                            |         sl = var_38h;
    0x0001279c cmp sl, 0                                     |         
                                                             |         if (sl != 0) {
    0x000127a0 addne sl, r5, sl                              |             sl = r5 + sl;
                                                             |             goto label_22;
                                                             |         }
                                                             |     }
                                                             | label_22:
    0x000127a4 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x000127a8 bl 0x8f54                                     |     r0 = fcn_00008f54 ();
    0x000127ac cmp r0, 0                                     |     
    0x000127b0 cmpne sl, 0                                   |     __asm ("cmpne sl, 0");
    0x000127b4 mov r1, r0                                    |     r1 = r0;
                                                             |     if (r0 == 0) {
    0x000127b8 beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x000127bc mov r0, sl                                    |     r0 = sl;
    0x000127c0 bl 0x30bec                                    |     r0 = fcn_00030bec (r0, r1);
    0x000127c4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000127c8 bne 0x12598                                   |         goto label_7;
                                                             |     }
    0x000127cc b 0x12568                                     |     goto label_5;
                                                             | label_21:
    0x000127d0 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x000127d4 bl 0x8f54                                     |     r0 = fcn_00008f54 ();
    0x000127d8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000127dc beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x000127e0 ldr r1, [sp, 0x2c]                            |     r1 = ptr;
    0x000127e4 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x000127e8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000127ec beq 0x12598                                   |         goto label_7;
                                                             |     }
    0x000127f0 b 0x12568                                     |     goto label_5;
                                                             | label_19:
    0x000127f4 ldr r1, [r8, 0x18]                            |     r1 = *((r8 + 0x18));
    0x000127f8 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000127fc beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x00012800 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00012804 bl 0x8d38                                     |     r0 = fcn_00008d38 ();
    0x00012808 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001280c beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x00012810 str r0, [sp, 0x1c]                            |     var_1ch = r0;
                                                             | label_18:
    0x00012814 ldr r1, [sp, 0x1c]                            |     r1 = var_1ch;
    0x00012818 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x0001281c bl 0x9170                                     |     r0 = fcn_00009170 ();
    0x00012820 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00012824 beq 0x12568                                   |         goto label_5;
                                                             |     }
    0x00012828 b 0x125b8                                     |     goto label_8;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x1041c */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.mnt_table_next_child_fs ()                               | void mnt_table_next_child_fs (uint32_t arg1, uint32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_ch;
                                                                         |     int32_t var_10h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x0001041c cmp r1, 0                                                 |     
    0x00010420 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00010424 ldr r7, [pc, 0x1b4]                                       |     r7 = *(0x105dc);
    0x00010428 mov r5, r2                                                |     r5 = r2;
    0x0001042c clz r2, r2                                                |     r2 &= r2;
    0x00010430 lsr r2, r2, 5                                             |     r2 >>= 5;
                                                                         |     if (r1 != 0) {
    0x00010434 moveq r2, 1                                               |         r2 = 1;
                                                                         |     }
    0x00010438 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x0001043c moveq r2, 1                                               |         r2 = 1;
                                                                         |     }
    0x00010440 cmp r2, 0                                                 |     
    0x00010444 add r7, pc, r7                                            |     r7 = pc + r7;
    0x00010448 beq 0x10458                                               |     
                                                                         |     while (r0 == 0) {
    0x0001044c mvn r0, 0x15                                              |         r0 = ~0x15;
                                                                         | label_0:
    0x00010450 add sp, sp, 0x10                                          |         
    0x00010454 pop {r4, r5, r6, r7, r8, sb, sl, pc}                      |         
    0x00010458 mov r8, r0                                                |         r8 = r0;
    0x0001045c mov r4, r1                                                |         r4 = r1;
    0x00010460 mov r6, r3                                                |         r6 = r3;
    0x00010464 bl 0xf714                                                 |         r0 = fcn_0000f714 (r0);
    0x00010468 cmp r0, 0                                                 |         
    0x0001046c beq 0x1044c                                               |         
                                                                         |     }
    0x00010470 ldr r3, [pc, 0x16c]                                       |     
    0x00010474 ldr r3, [r7, r3]                                          |     r3 = *((r7 + r3));
    0x00010478 ldr r3, [r3]                                              |     r3 = *(0x105e0);
    0x0001047c tst r3, 0x20                                              |     
                                                                         |     if ((r3 & 0x20) != 0) {
    0x00010480 beq 0x104d8                                               |         
    0x00010484 ldr r3, [pc, 0x15c]                                       |         r3 = *(0x105e4);
    0x00010488 ldr r3, [r7, r3]                                          |         r3 = *((r7 + r3));
    0x0001048c ldr r7, [r3]                                              |         r7 = *(0x105e4);
    0x00010490 bl 0x8204                                                 |         getpid ();
    0x00010494 ldr r3, [pc, 0x150]                                       |         r3 = *(0x105e8);
    0x00010498 ldr r1, [pc, 0x150]                                       |         r1 = *(0x105ec);
    0x0001049c add r3, pc, r3                                            |         r3 = pc + r3;
    0x000104a0 str r3, [sp]                                              |         *(sp) = r3;
    0x000104a4 ldr r3, [pc, 0x148]                                       |         r3 = *(0x105f0);
    0x000104a8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000104ac add r3, pc, r3                                            |         r3 = pc + r3;
    0x000104b0 mov r2, r0                                                |         r2 = r0;
    0x000104b4 mov r0, r7                                                |         r0 = r7;
    0x000104b8 bl 0x8798                                                 |         fprintf (r0, r1, r2, r3)
    0x000104bc mov r0, r5                                                |         r0 = r5;
    0x000104c0 bl 0x81d4                                                 |         fcn_000081d4 ();
    0x000104c4 ldr r1, [pc, 0x12c]                                       |         r1 = *(0x105f4);
    0x000104c8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000104cc mov r2, r0                                                |         r2 = r0;
    0x000104d0 mov r0, r8                                                |         r0 = r8;
    0x000104d4 bl 0xf520                                                 |         fcn_0000f520 (r0);
                                                                         |     }
    0x000104d8 mov r0, r5                                                |     r0 = r5;
    0x000104dc bl 0x8c24                                                 |     fcn_00008c24 ();
    0x000104e0 ldr r5, [r4, 4]                                           |     r5 = *((r4 + 4));
    0x000104e4 cmp r5, 0                                                 |     
    0x000104e8 mov sb, r0                                                |     sb = r0;
                                                                         |     if (r5 != 0) {
    0x000104ec beq 0x10524                                               |         
    0x000104f0 ldr r0, [r4]                                              |         r0 = *(r4);
    0x000104f4 cmp r5, r0                                                |         
                                                                         |         if (r5 != r0) {
    0x000104f8 moveq r5, 0                                               |             r5 = 0;
                                                                         |         }
                                                                         |         if (r5 == r0) {
    0x000104fc beq 0x10524                                               |             goto label_2;
                                                                         |         }
    0x00010500 ldr r1, [r4, 8]                                           |         r1 = *((r4 + 8));
    0x00010504 ldr r2, [r0, 4]                                           |         r2 = *((r0 + 4));
    0x00010508 ldr r3, [r0]                                              |         r3 = *(r0);
    0x0001050c cmp r1, 0                                                 |         
                                                                         |         if (r1 == 0) {
    0x00010510 movne r3, r2                                              |             r3 = r2;
                                                                         |         }
    0x00010514 str r3, [r4]                                              |         *(r4) = r3;
    0x00010518 str r0, [sp, 0xc]                                         |         var_ch = r0;
    0x0001051c bl 0x8c24                                                 |         r0 = fcn_00008c24 ();
    0x00010520 mov r5, r0                                                |         r5 = r0;
                                                                         |     }
                                                                         | label_2:
    0x00010524 mov r7, 0                                                 |     r7 = 0;
    0x00010528 str r7, [r6]                                              |     *(r6) = r7;
    0x0001052c mov r1, r7                                                |     r1 = r7;
    0x00010530 mov r0, r4                                                |     r0 = r4;
    0x00010534 bl 0x8588                                                 |     fcn_00008588 ();
    0x00010538 add sl, sp, 0xc                                           |     sl += var_ch;
                                                                         | label_1:
    0x0001053c mov r2, sl                                                |     r2 = sl;
    0x00010540 mov r1, r4                                                |     r1 = r4;
    0x00010544 mov r0, r8                                                |     r0 = r8;
    0x00010548 bl 0x7fa0                                                 |     r0 = fcn_00007fa0 ();
    0x0001054c cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x00010550 beq 0x10578                                               |         goto label_3;
                                                                         |     }
    0x00010554 ldr r2, [r6]                                              |     r2 = *(r6);
    0x00010558 cmp r2, 0                                                 |     
                                                                         |     if (r2 == 0) {
    0x0001055c moveq r0, 1                                               |         r0 = 1;
                                                                         |         goto label_4;
                                                                         |     }
                                                                         |     if (r2 == 0) {
                                                                         | label_4:
    0x00010560 beq 0x10450                                               |         goto label_0;
                                                                         |     }
    0x00010564 mov r1, r4                                                |     r1 = r4;
    0x00010568 mov r0, r8                                                |     r0 = r8;
    0x0001056c bl 0x8d5c                                                 |     fcn_00008d5c ();
    0x00010570 mov r0, 0                                                 |     r0 = 0;
    0x00010574 b 0x10450                                                 |     goto label_0;
                                                                         | label_3:
    0x00010578 ldr r0, [sp, 0xc]                                         |     r0 = var_ch;
    0x0001057c bl 0x8b34                                                 |     r0 = fcn_00008b34 ();
    0x00010580 cmp r0, sb                                                |     
                                                                         |     if (r0 != sb) {
    0x00010584 bne 0x1053c                                               |         goto label_1;
                                                                         |     }
    0x00010588 ldr r0, [sp, 0xc]                                         |     r0 = var_ch;
    0x0001058c bl 0x8c24                                                 |     r0 = fcn_00008c24 ();
    0x00010590 cmp sb, r0                                                |     
                                                                         |     if (sb == r0) {
    0x00010594 beq 0x1053c                                               |         goto label_1;
                                                                         |     }
    0x00010598 cmp r5, r0                                                |     
                                                                         |     if (r5 < r0) {
    0x0001059c movge r3, 0                                               |         r3 = 0;
                                                                         |     }
                                                                         |     if (r5 >= r0) {
    0x000105a0 movlt r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x000105a4 cmp r5, 0                                                 |     
                                                                         |     if (r5 != 0) {
    0x000105a8 moveq r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x000105ac cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x000105b0 beq 0x1053c                                               |         goto label_1;
                                                                         |     }
    0x000105b4 ldr r2, [r6]                                              |     r2 = *(r6);
    0x000105b8 cmp r7, r0                                                |     
                                                                         |     if (r7 > r0) {
    0x000105bc movle r3, 0                                               |         r3 = 0;
                                                                         |     }
                                                                         |     if (r7 <= r0) {
    0x000105c0 movgt r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x000105c4 cmp r2, 0                                                 |     
                                                                         |     if (r2 != 0) {
    0x000105c8 moveq r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x000105cc cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x000105d0 ldrne r3, [sp, 0xc]                                       |         r3 = var_ch;
                                                                         |     }
                                                                         |     if (r3 == 0) {
    0x000105d4 movne r7, r0                                              |         r7 = r0;
                                                                         |     }
                                                                         |     if (r3 == 0) {
    0x000105d8 strne r3, [r6]                                            |         *(r6) = r3;
                                                                         |     }
    0x000105dc b 0x1053c                                                 |     goto label_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/lib/libmount.so.1.1.0 @ 0x14be4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_parse_file ()                      | void mnt_table_parse_file (uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00014be4 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x00014be8 ldr r6, [pc, 0xcc]                            |     r6 = *(0x14cb8);
    0x00014bec cmp r0, 0                                     |     
    0x00014bf0 cmpne r1, 0                                   |     __asm ("cmpne r1, 0");
    0x00014bf4 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r0 != 0) {
    0x00014bf8 mvneq r4, 0x15                                |         r4 = ~0x15;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00014bfc beq 0x14ca0                                   |         goto label_0;
                                                             |     }
    0x00014c00 mov r5, r1                                    |     r5 = r1;
    0x00014c04 ldr r1, [pc, 0xb4]                            |     r1 = "try___o_loop_";
    0x00014c08 mov r8, r0                                    |     r8 = r0;
    0x00014c0c add r1, pc, r1                                |     r1 = pc + r1;
    0x00014c10 mov r0, r5                                    |     r0 = r5;
    0x00014c14 bl 0x91e8                                     |     r0 = fopen64 ();
    0x00014c18 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x00014c1c beq 0x14cac                                   |         goto label_1;
                                                             |     }
    0x00014c20 mov r2, r5                                    |     r2 = r5;
    0x00014c24 mov r1, r7                                    |     r1 = r7;
    0x00014c28 mov r0, r8                                    |     r0 = r8;
    0x00014c2c bl 0x8384                                     |     r0 = fcn_00008384 ();
    0x00014c30 mov r4, r0                                    |     r4 = r0;
    0x00014c34 mov r0, r7                                    |     r0 = r7;
    0x00014c38 bl 0x8b94                                     |     fclose (r0);
                                                             |     do {
    0x00014c3c ldr r3, [pc, 0x80]                            |         
    0x00014c40 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00014c44 ldr r3, [r3]                                  |         r3 = *(0x14cc0);
    0x00014c48 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x00014c4c beq 0x14ca0                                   |             
    0x00014c50 ldr r3, [pc, 0x70]                            |             r3 = *(0x14cc4);
    0x00014c54 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00014c58 ldr r6, [r3]                                  |             r6 = *(0x14cc4);
    0x00014c5c bl 0x8204                                     |             getpid ();
    0x00014c60 ldr r3, [pc, 0x64]                            |             r3 = *(0x14cc8);
    0x00014c64 ldr r1, [pc, 0x64]                            |             r1 = *(0x14ccc);
    0x00014c68 add r3, pc, r3                                |             r3 = pc + r3;
    0x00014c6c str r3, [sp]                                  |             *(sp) = r3;
    0x00014c70 ldr r3, [pc, 0x5c]                            |             r3 = *(0x14cd0);
    0x00014c74 add r1, pc, r1                                |             r1 = pc + r1;
    0x00014c78 add r3, pc, r3                                |             r3 = pc + r3;
    0x00014c7c mov r2, r0                                    |             r2 = r0;
    0x00014c80 mov r0, r6                                    |             r0 = r6;
    0x00014c84 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00014c88 ldr r1, [pc, 0x48]                            |             r1 = *(0x14cd4);
    0x00014c8c mov r3, r4                                    |             r3 = r4;
    0x00014c90 mov r2, r5                                    |             r2 = r5;
    0x00014c94 add r1, pc, r1                                |             r1 = pc + r1;
    0x00014c98 mov r0, r8                                    |             r0 = r8;
    0x00014c9c bl 0x13354                                    |             fcn_00013354 (r0);
                                                             |         }
                                                             | label_0:
    0x00014ca0 mov r0, r4                                    |         r0 = r4;
    0x00014ca4 add sp, sp, 8                                 |         
    0x00014ca8 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_1:
    0x00014cac bl 0x8f6c                                     |         r0 = errno_location ();
    0x00014cb0 ldr r4, [r0]                                  |         r4 = *(r0);
    0x00014cb4 rsb r4, r4, 0                                 |         r4 -= ;
    0x00014cb8 b 0x14c3c                                     |         
                                                             |     } 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/lib/libmount.so.1.1.0 @ 0x13724 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_parse_stream ()                    | void mnt_table_parse_stream (int32_t arg_0h, int32_t arg1, FILE * arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     char * s1;
                                                             |     int32_t var_20h;
                                                             |     FILE * stream;
                                                             |     int32_t var_28h;
                                                             |     char * format;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_3ch;
                                                             |     void * var_40h;
                                                             |     char * var_44h;
                                                             |     void * var_48h;
                                                             |     int32_t var_48h_2;
                                                             |     char * * endptr;
                                                             |     int32_t var_50h_2;
                                                             |     FILE * s;
                                                             |     int32_t var_60h;
                                                             |     char * ptr;
                                                             |     int32_t var_68h;
                                                             |     int32_t var_6ch;
                                                             |     int32_t var_70h;
                                                             |     int32_t var_74h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00013724 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00013728 ldr r7, [pc, 0xf90]                           |     r7 = *(0x146bc);
    0x0001372c sub sp, sp, 0x74                              |     
    0x00013730 mov r5, r0                                    |     r5 = r0;
    0x00013734 str r1, [sp, 0x24]                            |     stream = r1;
    0x00013738 str r2, [sp, 0x1c]                            |     s1 = r2;
    0x0001373c mov r1, 0                                     |     r1 = 0;
    0x00013740 mov r2, 0x14                                  |     r2 = 0x14;
    0x00013744 add r0, sp, 0x5c                              |     r0 += s;
    0x00013748 bl 0x8b4c                                     |     memset (r0, r1, r2);
    0x0001374c cmp r5, 0                                     |     
    0x00013750 add r7, pc, r7                                |     r7 = pc + r7;
                                                             |     if (r5 != 0) {
    0x00013754 bne 0x1377c                                   |         goto label_30;
                                                             |     }
    0x00013758 ldr r3, [pc, 0xf64]                           |     
    0x0001375c ldr r1, [pc, 0xf64]                           |     r1 = *(0x146c4);
    0x00013760 ldr r0, [pc, 0xf64]                           |     r0 = *(0x146c8);
    0x00013764 ldr r2, [pc, 0xf64]                           |     r2 = *(0x146cc);
    0x00013768 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001376c add r3, r3, 0xc                               |     r3 = 0x146cc;
    0x00013770 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013774 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_0:
    0x00013778 bl 0x908c                                     |         assert ();
                                                             | label_30:
    0x0001377c ldr r3, [sp, 0x24]                            |         r3 = stream;
    0x00013780 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00013784 bne 0x137ac                                   |             goto label_31;
                                                             |         }
    0x00013788 ldr r3, [pc, 0xf44]                           |         
    0x0001378c ldr r1, [pc, 0xf44]                           |         r1 = *(0x146d4);
    0x00013790 ldr r0, [pc, 0xf44]                           |         r0 = *(0x146d8);
    0x00013794 add r3, pc, r3                                |         r3 = pc + r3;
    0x00013798 add r3, r3, 0xc                               |         r3 = 0x146dc;
    0x0001379c ldr r2, [pc, 0xf3c]                           |         r2 = *(0x146dc);
    0x000137a0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000137a4 add r0, pc, r0                                |         r0 = pc + r0;
    0x000137a8 b 0x13778                                     |         
                                                             |     } while (1);
                                                             | label_31:
    0x000137ac ldr r3, [sp, 0x1c]                            |     r3 = s1;
    0x000137b0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000137b4 bne 0x137dc                                   |         
    0x000137b8 ldr r3, [pc, 0xf24]                           |         
    0x000137bc ldr r1, [pc, 0xf24]                           |         r1 = *(0x146e4);
    0x000137c0 ldr r0, [pc, 0xf24]                           |         r0 = *(0x146e8);
    0x000137c4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000137c8 add r3, r3, 0xc                               |         r3 = 0x146ec;
    0x000137cc mov r2, 0x294                                 |         r2 = 0x294;
    0x000137d0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000137d4 add r0, pc, r0                                |         r0 = pc + r0;
    0x000137d8 b 0x13778                                     |         goto label_0;
                                                             |     }
    0x000137dc ldr r3, [pc, 0xf0c]                           |     r3 = *(0x146ec);
    0x000137e0 ldr r8, [r7, r3]                              |     r8 = *((r7 + r3));
    0x000137e4 ldr r3, [r8]                                  |     r3 = *(r8);
    0x000137e8 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x000137ec beq 0x13860                                   |         goto label_32;
                                                             |     }
    0x000137f0 ldr r3, [pc, 0xefc]                           |     r3 = *(0x146f0);
    0x000137f4 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x000137f8 ldr r4, [r3]                                  |     r4 = *(0x146f0);
    0x000137fc bl 0x8204                                     |     getpid ();
    0x00013800 ldr r3, [pc, 0xef0]                           |     r3 = *(0x146f4);
    0x00013804 ldr r1, [pc, 0xef0]                           |     r1 = *(0x146f8);
    0x00013808 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001380c str r3, [sp]                                  |     *(sp) = r3;
    0x00013810 ldr r3, [pc, 0xee8]                           |     r3 = *(0x146fc);
    0x00013814 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013818 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001381c mov r2, r0                                    |     r2 = r0;
    0x00013820 mov r0, r4                                    |     r0 = r4;
    0x00013824 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00013828 mov r0, r5                                    |     r0 = r5;
    0x0001382c bl 0x87f8                                     |     fcn_000087f8 ();
    0x00013830 ldr r2, [r5, 0x20]                            |     r2 = *((r5 + 0x20));
    0x00013834 cmp r2, 0                                     |     
    0x00013838 mov r3, r0                                    |     r3 = r0;
                                                             |     if (r2 == 0) {
    0x0001383c beq 0x13938                                   |         goto label_33;
                                                             |     }
    0x00013840 ldr r2, [pc, 0xebc]                           |     r2 = *(0x14700);
    0x00013844 add r2, pc, r2                                |     r2 = pc + r2;
                                                             |     do {
    0x00013848 ldr r1, [pc, 0xeb8]                           |         r1 = *(0x14704);
    0x0001384c str r2, [sp]                                  |         *(sp) = r2;
    0x00013850 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013854 ldr r2, [sp, 0x1c]                            |         r2 = s1;
    0x00013858 mov r0, r5                                    |         r0 = r5;
    0x0001385c bl 0x13354                                    |         fcn_00013354 (r0);
                                                             | label_32:
    0x00013860 ldr r3, [sp, 0x1c]                            |         r3 = s1;
    0x00013864 ldr r1, [pc, 0xea0]                           |         r1 = *(0x14708);
    0x00013868 str r3, [sp, 0x60]                            |         var_60h = r3;
    0x0001386c ldr r3, [sp, 0x24]                            |         r3 = stream;
    0x00013870 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013874 ldr r0, [sp, 0x1c]                            |         r0 = s1;
    0x00013878 str r3, [sp, 0x5c]                            |         s = r3;
    0x0001387c bl 0x8cb4                                     |         strcmp (r0, r1);
    0x00013880 mov r4, 0                                     |         r4 = 0;
    0x00013884 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00013888 moveq r3, 0x10                                |             r3 = 0x10;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001388c movne r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00013890 str r3, [sp, 0x28]                            |         var_28h = r3;
    0x00013894 mvn r3, 0                                     |         r3 = ~0;
    0x00013898 str r3, [sp, 0x20]                            |         var_20h = r3;
    0x0001389c mov r6, r3                                    |         r6 = r3;
    0x000138a0 ldr r3, [pc, 0xe68]                           |         r3 = *(0x1470c);
    0x000138a4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000138a8 str r3, [sp, 0x34]                            |         var_34h = r3;
                                                             | label_16:
    0x000138ac ldr r0, [sp, 0x24]                            |         r0 = stream;
    0x000138b0 bl 0x83a8                                     |         r0 = feof (r0);
    0x000138b4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000138b8 bne 0x148c4                                   |             goto label_34;
                                                             |         }
    0x000138bc cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x000138c0 bne 0x14950                                   |             goto label_35;
                                                             |         }
    0x000138c4 bl 0x87a4                                     |         r0 = fcn_000087a4 ();
    0x000138c8 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 != r0) {
    0x000138cc bne 0x14950                                   |             goto label_35;
                                                             |         }
                                                             | label_17:
    0x000138d0 ldr r3, [r8]                                  |         r3 = *(r8);
    0x000138d4 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x000138d8 beq 0x1392c                                   |             
    0x000138dc ldr r3, [pc, 0xe10]                           |             r3 = *(0x146f0);
    0x000138e0 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000138e4 ldr r4, [r3]                                  |             r4 = *(0x146f0);
    0x000138e8 bl 0x8204                                     |             getpid ();
    0x000138ec ldr r3, [pc, 0xe20]                           |             r3 = *(0x14710);
    0x000138f0 ldr r1, [pc, 0xe20]                           |             r1 = *(0x14714);
    0x000138f4 add r3, pc, r3                                |             r3 = pc + r3;
    0x000138f8 str r3, [sp]                                  |             *(sp) = r3;
    0x000138fc ldr r3, [pc, 0xe18]                           |             r3 = *(0x14718);
    0x00013900 add r1, pc, r1                                |             r1 = pc + r1;
    0x00013904 add r3, pc, r3                                |             r3 = pc + r3;
    0x00013908 mov r2, r0                                    |             r2 = r0;
    0x0001390c mov r0, r4                                    |             r0 = r4;
    0x00013910 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00013914 ldr r1, [pc, 0xe04]                           |             r1 = *(0x1471c);
    0x00013918 mov r3, r6                                    |             r3 = r6;
    0x0001391c ldr r2, [sp, 0x1c]                            |             r2 = s1;
    0x00013920 add r1, pc, r1                                |             r1 = pc + r1;
    0x00013924 mov r0, r5                                    |             r0 = r5;
    0x00013928 bl 0x13354                                    |             fcn_00013354 (r0);
                                                             |         }
    0x0001392c ldr r0, [sp, 0x64]                            |         r0 = ptr;
    0x00013930 bl 0x91c4                                     |         free (r0);
    0x00013934 b 0x14934                                     |         goto label_36;
                                                             | label_33:
    0x00013938 ldr r2, [pc, 0xde4]                           |         r2 = *(0x14720);
    0x0001393c add r2, pc, r2                                |         r2 = pc + r2;
    0x00013940 b 0x13848                                     |         
                                                             |     } while (1);
                                                             | label_19:
    0x00013944 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00013948 beq 0x13a20                                   |         goto label_8;
                                                             |     }
    0x0001394c ldr r3, [pc, 0xda0]                           |     r3 = *(0x146f0);
    0x00013950 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00013954 ldr r6, [r3]                                  |     r6 = *(0x146f0);
    0x00013958 bl 0x8204                                     |     getpid ();
    0x0001395c ldr r3, [pc, 0xdc4]                           |     r3 = *(0x14724);
    0x00013960 ldr r1, [pc, 0xdc4]                           |     r1 = *(0x14728);
    0x00013964 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013968 str r3, [sp]                                  |     *(sp) = r3;
    0x0001396c ldr r3, [pc, 0xdbc]                           |     r3 = *(0x1472c);
    0x00013970 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013974 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013978 mov r2, r0                                    |     r2 = r0;
    0x0001397c mov r0, r6                                    |     r0 = r6;
    0x00013980 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00013984 ldr r1, [pc, 0xda8]                           |     r1 = *(0x14730);
    0x00013988 ldr r3, [sp, 0x6c]                            |     r3 = var_6ch;
    0x0001398c ldr r2, [sp, 0x60]                            |     r2 = var_60h;
    0x00013990 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013994 mov r0, r5                                    |     r0 = r5;
    0x00013998 bl 0x13354                                    |     fcn_00013354 (r0);
                                                             |     do {
                                                             | label_1:
    0x0001399c ldr r3, [r8]                                  |         r3 = *(r8);
    0x000139a0 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x000139a4 beq 0x13a20                                   |             
    0x000139a8 ldr r3, [pc, 0xd44]                           |             r3 = *(0x146f0);
    0x000139ac ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000139b0 ldr r6, [r3]                                  |             r6 = *(0x146f0);
    0x000139b4 bl 0x8204                                     |             getpid ();
    0x000139b8 ldr r3, [pc, 0xd78]                           |             r3 = *(0x14734);
    0x000139bc ldr r1, [pc, 0xd78]                           |             r1 = *(0x14738);
    0x000139c0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000139c4 str r3, [sp]                                  |             *(sp) = r3;
    0x000139c8 ldr r3, [pc, 0xd70]                           |             r3 = *(0x1473c);
    0x000139cc add r1, pc, r1                                |             r1 = pc + r1;
    0x000139d0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000139d4 mov r2, r0                                    |             r2 = r0;
    0x000139d8 mov r0, r6                                    |             r0 = r6;
    0x000139dc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000139e0 ldr r1, [r5]                                  |             r1 = *(r5);
    0x000139e4 ldr r2, [sp, 0x60]                            |             r2 = var_60h;
    0x000139e8 cmp r1, 2                                     |             
    0x000139ec ldr r3, [sp, 0x6c]                            |             r3 = var_6ch;
                                                             |             if (r1 == 2) {
    0x000139f0 beq 0x14580                                   |                 goto label_37;
                                                             |             }
    0x000139f4 cmp r1, 4                                     |             
                                                             |             if (r1 == 4) {
    0x000139f8 beq 0x1458c                                   |                 goto label_38;
                                                             |             }
    0x000139fc cmp r1, 1                                     |             
                                                             |             if (r1 != 1) {
    0x00013a00 bne 0x14598                                   |                 goto label_39;
                                                             |             }
    0x00013a04 ldr r1, [pc, 0xd38]                           |             r1 = *(0x14740);
    0x00013a08 add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_12:
    0x00013a0c str r1, [sp]                                  |             *(sp) = r1;
    0x00013a10 ldr r1, [pc, 0xd30]                           |             r1 = *(0x14744);
    0x00013a14 mov r0, r5                                    |             r0 = r5;
    0x00013a18 add r1, pc, r1                                |             r1 = pc + r1;
    0x00013a1c bl 0x13354                                    |             fcn_00013354 (r0);
                                                             |         }
                                                             | label_8:
    0x00013a20 ldr r3, [r5, 0x1c]                            |         r3 = *((r5 + 0x1c));
    0x00013a24 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00013a28 beq 0x14684                                   |             goto label_40;
                                                             |         }
    0x00013a2c ldr r2, [sp, 0x6c]                            |         r2 = var_6ch;
    0x00013a30 ldr r1, [sp, 0x60]                            |         r1 = var_60h;
    0x00013a34 mov r0, r5                                    |         r0 = r5;
    0x00013a38 blx r3                                        |         r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00013a3c subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x00013a40 beq 0x140b8                                   |             goto label_5;
                                                             |         }
                                                             | label_4:
    0x00013a44 cmp r6, 0                                     |         
                                                             |         if (r6 > 0) {
    0x00013a48 bgt 0x14688                                   |             goto label_41;
                                                             |         }
    0x00013a4c b 0x148ac                                     |         goto label_22;
                                                             | label_20:
    0x00013a50 ldr r6, [sp, 0x64]                            |         r6 = ptr;
    0x00013a54 ldr r3, [sp, 0x6c]                            |         r3 = var_6ch;
    0x00013a58 mov r1, 0xa                                   |         r1 = 0xa;
    0x00013a5c add r3, r3, 1                                 |         r3++;
    0x00013a60 mov r0, r6                                    |         r0 = r6;
    0x00013a64 str r3, [sp, 0x6c]                            |         var_6ch = r3;
    0x00013a68 bl 0x90a4                                     |         r0 = strchr (r0, r1);
    0x00013a6c mov sb, r0                                    |         sb = r0;
    0x00013a70 mov r0, r6                                    |         r0 = r6;
    0x00013a74 bl 0x132a0                                    |         r0 = fcn_000132a0 (r0);
    0x00013a78 clz r6, r0                                    |         r6 &= r0;
    0x00013a7c lsr r6, r6, 5                                 |         r6 >>= 5;
    0x00013a80 b 0x14a98                                     |         goto label_42;
                                                             | label_24:
    0x00013a84 str r0, [r5]                                  |         *(r5) = r0;
    0x00013a88 b 0x14bc0                                     |         goto label_43;
                                                             | label_26:
    0x00013a8c mov r3, 0                                     |         r3 = 0;
    0x00013a90 str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00013a94 str r3, [sp, 0x40]                            |         var_40h = r3;
    0x00013a98 str r3, [sp, 0x44]                            |         var_44h = r3;
    0x00013a9c str r3, [sp, 0x48]                            |         var_48h = r3;
    0x00013aa0 ldr r1, [pc, 0xca4]                           |         r1 = *(0x14748);
    0x00013aa4 add r3, sp, 0x3c                              |         r3 += var_3ch;
    0x00013aa8 str r3, [sp, 8]                               |         var_8h = r3;
    0x00013aac add r3, sp, 0x48                              |         r3 += var_48h;
    0x00013ab0 str r3, [sp, 4]                               |         var_4h = r3;
    0x00013ab4 add r3, sp, 0x44                              |         r3 += var_44h;
    0x00013ab8 str r3, [sp]                                  |         *(sp) = r3;
    0x00013abc add r2, sp, 0x40                              |         r2 += var_40h;
    0x00013ac0 add r3, r4, 0x34                              |         r3 = r4 + 0x34;
    0x00013ac4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013ac8 mov r0, r6                                    |         r0 = r6;
    0x00013acc bl 0x8a74                                     |         r0 = sscanf (r0, r1, r2);
    0x00013ad0 sub r3, r0, 3                                 |         r3 = r0 - 3;
    0x00013ad4 cmp r3, 1                                     |         
    0x00013ad8 mov sl, r0                                    |         sl = r0;
                                                             |         if (r3 > 1) {
    0x00013adc bhi 0x13c38                                   |             goto label_44;
                                                             |         }
    0x00013ae0 ldr r0, [sp, 0x40]                            |         r0 = var_40h;
    0x00013ae4 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013ae8 ldr r0, [r4, 0x34]                            |         r0 = *((r4 + 0x34));
    0x00013aec bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013af0 ldr r0, [sp, 0x44]                            |         r0 = var_44h;
    0x00013af4 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013af8 ldr r0, [sp, 0x48]                            |         r0 = var_48h;
    0x00013afc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00013b00 beq 0x13b14                                   |             
    0x00013b04 ldrsb r3, [r0]                                |             r3 = *(r0);
    0x00013b08 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00013b0c beq 0x13b14                                   |                 goto label_45;
                                                             |             }
    0x00013b10 bl 0x135ec                                    |             fcn_000135ec (r0);
                                                             |         }
                                                             | label_45:
    0x00013b14 ldr r1, [sp, 0x40]                            |         r1 = var_40h;
    0x00013b18 mov r0, r4                                    |         r0 = r4;
    0x00013b1c bl 0xad90                                     |         r0 = fcn_0000ad90 (r0, r1);
    0x00013b20 subs sb, r0, 0                                |         sb = r0 - 0;
                                                             |         if (sb == r0) {
    0x00013b24 bne 0x13b5c                                   |             
    0x00013b28 ldr r1, [sp, 0x44]                            |             r1 = var_44h;
    0x00013b2c mov r0, r4                                    |             r0 = r4;
    0x00013b30 str sb, [sp, 0x40]                            |             var_40h = sb;
    0x00013b34 bl 0xb070                                     |             r0 = fcn_0000b070 (r0, r1);
    0x00013b38 subs sb, r0, 0                                |             sb = r0 - 0;
                                                             |             if (sb != r0) {
    0x00013b3c bne 0x13b5c                                   |                 goto label_46;
                                                             |             }
    0x00013b40 ldr r1, [sp, 0x48]                            |             r1 = var_48h;
    0x00013b44 str sb, [sp, 0x44]                            |             var_44h = sb;
    0x00013b48 cmp r1, 0                                     |             
                                                             |             if (r1 == 0) {
    0x00013b4c beq 0x13b5c                                   |                 goto label_46;
                                                             |             }
    0x00013b50 mov r0, r4                                    |             r0 = r4;
    0x00013b54 bl 0x9128                                     |             r0 = fcn_00009128 ();
    0x00013b58 mov sb, r0                                    |             sb = r0;
                                                             |         }
                                                             | label_46:
    0x00013b5c ldr r0, [sp, 0x48]                            |         r0 = var_48h;
    0x00013b60 bl 0x91c4                                     |         free (r0);
    0x00013b64 mov r3, 0                                     |         r3 = 0;
    0x00013b68 cmp sb, r3                                    |         
    0x00013b6c str r3, [sp, 0x48]                            |         var_48h = r3;
                                                             |         if (sb != r3) {
    0x00013b70 bne 0x13c94                                   |             goto label_47;
                                                             |         }
    0x00013b74 cmp sl, 4                                     |         
    0x00013b78 str sb, [r4, 0x54]                            |         *((r4 + 0x54)) = sb;
    0x00013b7c str sb, [r4, 0x58]                            |         *((r4 + 0x58)) = sb;
                                                             |         if (sl != 4) {
    0x00013b80 bne 0x140b8                                   |             goto label_5;
                                                             |         }
    0x00013b84 ldr r0, [sp, 0x3c]                            |         r0 = var_3ch;
    0x00013b88 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00013b8c beq 0x13b9c                                   |             
    0x00013b90 add r0, r6, r0                                |             r0 = r6 + r0;
    0x00013b94 bl 0x13260                                    |             r0 = fcn_00013260 (r0);
    0x00013b98 mov r6, r0                                    |             r6 = r0;
                                                             |         }
    0x00013b9c ldrsb r3, [r6]                                |         r3 = *(r6);
    0x00013ba0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00013ba4 beq 0x140b8                                   |             goto label_5;
                                                             |         }
    0x00013ba8 add sb, sp, 0x70                              |         sb += var_70h;
    0x00013bac mov r3, 0                                     |         r3 = 0;
    0x00013bb0 str r3, [sb, -0x20]!                          |         *((sb -= 0x20)) = r3;
    0x00013bb4 add r1, r4, 0x54                              |         r1 = r4 + 0x54;
    0x00013bb8 mov r2, sb                                    |         r2 = sb;
    0x00013bbc mov r0, r6                                    |         r0 = r6;
    0x00013bc0 bl 0x1360c                                    |         fcn_0001360c (r0, r1);
    0x00013bc4 ldr r2, [sp, 0x50]                            |         r2 = endptr;
    0x00013bc8 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00013bcc bne 0x13d04                                   |             goto label_48;
                                                             |         }
    0x00013bd0 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00013bd4 beq 0x140b8                                   |             goto label_5;
                                                             |         }
    0x00013bd8 ldrsb r3, [r0]                                |         r3 = *(r0);
    0x00013bdc cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00013be0 beq 0x140b8                                   |             goto label_5;
                                                             |         }
    0x00013be4 ldr r3, [r8]                                  |         r3 = *(r8);
    0x00013be8 tst r3, 0x20                                  |         
    0x00013bec beq 0x1399c                                   |         
                                                             |     } while ((r3 & 0x20) == 0);
    0x00013bf0 ldr r3, [pc, 0xafc]                           |     r3 = *(0x146f0);
    0x00013bf4 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00013bf8 ldr r6, [r3]                                  |     r6 = *(0x146f0);
    0x00013bfc bl 0x8204                                     |     getpid ();
    0x00013c00 ldr r3, [pc, 0xb48]                           |     r3 = *(0x1474c);
    0x00013c04 ldr r1, [pc, 0xb48]                           |     r1 = *(0x14750);
    0x00013c08 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013c0c str r3, [sp]                                  |     *(sp) = r3;
    0x00013c10 ldr r3, [pc, 0xb40]                           |     r3 = *(0x14754);
    0x00013c14 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013c18 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013c1c mov r2, r0                                    |     r2 = r0;
    0x00013c20 mov r0, r6                                    |     r0 = r6;
    0x00013c24 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00013c28 ldr r0, [pc, 0xb2c]                           |     r0 = *(0x14758);
    0x00013c2c add r0, pc, r0                                |     r0 = pc + r0;
                                                             | label_2:
    0x00013c30 bl 0x132c8                                    |     fcn_000132c8 ();
    0x00013c34 b 0x1399c                                     |     goto label_1;
                                                             | label_44:
    0x00013c38 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00013c3c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00013c40 beq 0x13c90                                   |         
    0x00013c44 ldr r3, [pc, 0xaa8]                           |         r3 = *(0x146f0);
    0x00013c48 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00013c4c ldr sb, [r3]                                  |         sb = *(0x146f0);
    0x00013c50 bl 0x8204                                     |         getpid ();
    0x00013c54 ldr r3, [pc, 0xb04]                           |         r3 = *(0x1475c);
    0x00013c58 ldr r1, [pc, 0xb04]                           |         r1 = *(0x14760);
    0x00013c5c add r3, pc, r3                                |         r3 = pc + r3;
    0x00013c60 str r3, [sp]                                  |         *(sp) = r3;
    0x00013c64 ldr r3, [pc, 0xafc]                           |         r3 = *(0x14764);
    0x00013c68 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013c6c add r3, pc, r3                                |         r3 = pc + r3;
    0x00013c70 mov r2, r0                                    |         r2 = r0;
    0x00013c74 mov r0, sb                                    |         r0 = sb;
    0x00013c78 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00013c7c ldr r0, [pc, 0xae8]                           |         r0 = *(0x14768);
    0x00013c80 mov r2, r6                                    |         r2 = r6;
    0x00013c84 mov r1, sl                                    |         r1 = sl;
    0x00013c88 add r0, pc, r0                                |         r0 = pc + r0;
    0x00013c8c bl 0x132c8                                    |         fcn_000132c8 ();
                                                             |     }
    0x00013c90 mvn sb, 0x15                                  |     sb = ~0x15;
                                                             | label_47:
    0x00013c94 ldr r0, [sp, 0x40]                            |     r0 = var_40h;
    0x00013c98 bl 0x91c4                                     |     free (r0);
    0x00013c9c ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x00013ca0 bl 0x91c4                                     |     free (r0);
    0x00013ca4 ldr r0, [sp, 0x48]                            |     r0 = var_48h;
    0x00013ca8 bl 0x91c4                                     |     free (r0);
    0x00013cac ldr r3, [r8]                                  |     r3 = *(r8);
    0x00013cb0 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00013cb4 beq 0x1399c                                   |         goto label_1;
                                                             |     }
    0x00013cb8 ldr r3, [pc, 0xa34]                           |     r3 = *(0x146f0);
    0x00013cbc ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00013cc0 ldr r6, [r3]                                  |     r6 = *(0x146f0);
    0x00013cc4 bl 0x8204                                     |     getpid ();
    0x00013cc8 ldr r3, [pc, 0xaa0]                           |     r3 = *(0x1476c);
    0x00013ccc ldr r1, [pc, 0xaa0]                           |     r1 = *(0x14770);
    0x00013cd0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013cd4 str r3, [sp]                                  |     *(sp) = r3;
    0x00013cd8 ldr r3, [pc, 0xa98]                           |     r3 = *(0x14774);
    0x00013cdc add r1, pc, r1                                |     r1 = pc + r1;
    0x00013ce0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013ce4 mov r2, r0                                    |     r2 = r0;
    0x00013ce8 mov r0, r6                                    |     r0 = r6;
    0x00013cec bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00013cf0 ldr r0, [pc, 0xa84]                           |     r0 = *(0x14778);
    0x00013cf4 mov r1, sb                                    |     r1 = sb;
    0x00013cf8 add r0, pc, r0                                |     r0 = pc + r0;
    0x00013cfc bl 0x132c8                                    |     fcn_000132c8 ();
    0x00013d00 b 0x1399c                                     |     goto label_1;
                                                             | label_48:
    0x00013d04 mov r2, sb                                    |     r2 = sb;
    0x00013d08 add r1, r4, 0x58                              |     r1 = r4 + 0x58;
    0x00013d0c bl 0x1360c                                    |     fcn_0001360c (r0, r1);
    0x00013d10 ldr r3, [sp, 0x50]                            |     r3 = endptr;
    0x00013d14 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00013d18 bne 0x140b8                                   |         goto label_5;
                                                             |     }
    0x00013d1c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00013d20 beq 0x140b8                                   |         goto label_5;
                                                             |     }
    0x00013d24 ldrsb r3, [r0]                                |     r3 = *(r0);
    0x00013d28 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00013d2c beq 0x140b8                                   |         goto label_5;
                                                             |     }
    0x00013d30 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00013d34 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00013d38 beq 0x1399c                                   |         goto label_1;
                                                             |     }
    0x00013d3c ldr r3, [pc, 0x9b0]                           |     r3 = *(0x146f0);
    0x00013d40 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00013d44 ldr r6, [r3]                                  |     r6 = *(0x146f0);
    0x00013d48 bl 0x8204                                     |     getpid ();
    0x00013d4c ldr r3, [pc, 0xa2c]                           |     r3 = *(0x1477c);
    0x00013d50 ldr r1, [pc, 0xa2c]                           |     r1 = *(0x14780);
    0x00013d54 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013d58 str r3, [sp]                                  |     *(sp) = r3;
    0x00013d5c ldr r3, [pc, 0xa24]                           |     r3 = *(0x14784);
    0x00013d60 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013d64 add r3, pc, r3                                |     r3 = pc + r3;
    0x00013d68 mov r2, r0                                    |     r2 = r0;
    0x00013d6c mov r0, r6                                    |     r0 = r6;
    0x00013d70 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00013d74 ldr r0, [pc, 0xa10]                           |     r0 = *(0x14788);
    0x00013d78 add r0, pc, r0                                |     r0 = pc + r0;
    0x00013d7c b 0x13c30                                     |     goto label_2;
                                                             | label_27:
    0x00013d80 mov r3, 0                                     |     r3 = 0;
    0x00013d84 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00013d88 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00013d8c str r3, [sp, 0x50]                            |     endptr = r3;
    0x00013d90 add r3, r4, 0x40                              |     r3 = r4 + 0x40;
    0x00013d94 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00013d98 add r3, r4, 0x34                              |     r3 = r4 + 0x34;
    0x00013d9c str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00013da0 ldr r1, [pc, 0x9e8]                           |     r1 = *(0x1478c);
    0x00013da4 add r3, r4, 0x30                              |     r3 = r4 + 0x30;
    0x00013da8 str r3, [sp, 8]                               |     var_8h = r3;
    0x00013dac add r3, sp, 0x44                              |     r3 += var_44h;
    0x00013db0 str r3, [sp, 4]                               |     var_4h = r3;
    0x00013db4 add sl, sp, 0x3c                              |     sl += var_3ch;
    0x00013db8 add r3, sp, 0x40                              |     r3 += var_40h;
    0x00013dbc str r3, [sp]                                  |     *(sp) = r3;
    0x00013dc0 str sl, [sp, 0x14]                            |     var_14h = sl;
    0x00013dc4 add r3, r4, 0x10                              |     r3 = r4 + 0x10;
    0x00013dc8 add r2, r4, 0xc                               |     r2 = r4 + 0xc;
    0x00013dcc add r1, pc, r1                                |     r1 = pc + r1;
    0x00013dd0 mov r0, r6                                    |     r0 = r6;
    0x00013dd4 bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x00013dd8 cmp r0, 6                                     |     
    0x00013ddc mov sb, r0                                    |     sb = r0;
                                                             |     if (r0 > 6) {
    0x00013de0 ble 0x13df0                                   |         
    0x00013de4 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x00013de8 cmp r3, 0                                     |         
                                                             |         if (r3 > 0) {
    0x00013dec addgt r6, r6, r3                              |             r6 += r3;
                                                             |             goto label_49;
                                                             |         }
                                                             |     }
                                                             | label_49:
    0x00013df0 ldr r1, [pc, 0x99c]                           |     r1 = *(0x14790);
    0x00013df4 mov r0, r6                                    |     r0 = r6;
    0x00013df8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013dfc bl 0x88b8                                     |     r0 = strstr (r0, r1);
    0x00013e00 subs fp, r0, 0                                |     
                                                             |     if (fp != r0) {
    0x00013e04 bne 0x13e58                                   |         goto label_50;
                                                             |     }
    0x00013e08 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00013e0c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00013e10 beq 0x1399c                                   |         goto label_1;
                                                             |     }
    0x00013e14 ldr r3, [pc, 0x8d8]                           |     r3 = *(0x146f0);
    0x00013e18 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00013e1c ldr r6, [r3]                                  |     r6 = *(0x146f0);
    0x00013e20 bl 0x8204                                     |     getpid ();
    0x00013e24 ldr r3, [pc, 0x96c]                           |     r3 = *(0x14794);
    0x00013e28 ldr r1, [pc, 0x96c]                           |     r1 = *(0x14798);
    0x00013e2c add r3, pc, r3                                |     r3 = pc + r3;
    0x00013e30 str r3, [sp]                                  |     *(sp) = r3;
    0x00013e34 ldr r3, [pc, 0x964]                           |     r3 = *(0x1479c);
    0x00013e38 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013e3c add r3, pc, r3                                |     r3 = pc + r3;
    0x00013e40 mov r2, r0                                    |     r2 = r0;
    0x00013e44 mov r0, r6                                    |     r0 = r6;
    0x00013e48 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00013e4c ldr r0, [pc, 0x950]                           |     r0 = *(0x147a0);
    0x00013e50 add r0, pc, r0                                |     r0 = pc + r0;
    0x00013e54 b 0x13c30                                     |     goto label_2;
                                                             | label_50:
    0x00013e58 add r0, r6, 1                                 |     r0 = r6 + 1;
    0x00013e5c cmp fp, r0                                    |     
                                                             |     if (fp >= r0) {
    0x00013e60 bls 0x13e74                                   |         
    0x00013e64 sub r1, fp, r6                                |         r1 = fp - r6;
    0x00013e68 sub r1, r1, 1                                 |         r1--;
    0x00013e6c bl 0x8048                                     |         strndup (r0, r1);
    0x00013e70 str r0, [r4, 0x44]                            |         *((r4 + 0x44)) = r0;
                                                             |     }
    0x00013e74 ldr r1, [pc, 0x92c]                           |     r1 = *(0x147a4);
    0x00013e78 mov r3, 0                                     |     r3 = 0;
    0x00013e7c add fp, fp, 3                                 |     
    0x00013e80 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00013e84 add r2, sp, 0x48                              |     r2 += var_48h;
    0x00013e88 mov r3, sl                                    |     r3 = sl;
    0x00013e8c add r1, pc, r1                                |     r1 = pc + r1;
    0x00013e90 mov r0, fp                                    |     r0 = fp;
    0x00013e94 bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x00013e98 add sb, sb, r0                                |     sb += r0;
    0x00013e9c cmp sb, 7                                     |     
                                                             |     if (sb > 7) {
    0x00013ea0 ble 0x13eb0                                   |         
    0x00013ea4 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x00013ea8 cmp r3, 0                                     |         
                                                             |         if (r3 > 0) {
    0x00013eac addgt fp, fp, r3                              |             goto label_51;
                                                             |         }
                                                             |     }
                                                             | label_51:
    0x00013eb0 ldrsb r3, [fp]                                |     r3 = *(fp);
    0x00013eb4 add sl, r4, 0x48                              |     sl = r4 + 0x48;
    0x00013eb8 cmp r3, 0x20                                  |     
                                                             |     if (r3 != 0x20) {
    0x00013ebc addeq fp, fp, 1                               |         
                                                             |     }
    0x00013ec0 ldrsb r3, [fp]                                |     r3 = *(fp);
    0x00013ec4 cmp r3, 0x20                                  |     
                                                             |     if (r3 != 0x20) {
    0x00013ec8 bne 0x13fd8                                   |         goto label_52;
                                                             |     }
    0x00013ecc ldr r0, [pc, 0x8d8]                           |     r0 = *(0x147a8);
    0x00013ed0 add fp, fp, 1                                 |     
    0x00013ed4 add r0, pc, r0                                |     r0 = pc + r0;
    0x00013ed8 bl 0x8ae0                                     |     strdup (r0);
    0x00013edc ldr r1, [pc, 0x8cc]                           |     r1 = *(0x147ac);
    0x00013ee0 mov r2, sl                                    |     r2 = sl;
    0x00013ee4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00013ee8 add sb, sb, 1                                 |     sb++;
    0x00013eec str r0, [sp, 0x50]                            |     endptr = r0;
    0x00013ef0 mov r0, fp                                    |     r0 = fp;
    0x00013ef4 bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
                                                             |     do {
    0x00013ef8 add sb, sb, r0                                |         sb += r0;
    0x00013efc cmp sb, 9                                     |         
                                                             |         if (sb <= 9) {
    0x00013f00 ble 0x13ff4                                   |             goto label_53;
                                                             |         }
    0x00013f04 ldr r3, [r4, 0x74]                            |         r3 = *((r4 + 0x74));
    0x00013f08 orr r3, r3, 0x10                              |         r3 |= 0x10;
    0x00013f0c str r3, [r4, 0x74]                            |         *((r4 + 0x74)) = r3;
    0x00013f10 ldrd r0, r1, [sp, 0x40]                       |         __asm ("ldrd r0, r1, [var_40h]");
    0x00013f14 bl 0x8fd8                                     |         gnu_dev_makedev ();
    0x00013f18 ldr sb, [r4, 0x34]                            |         sb = *((r4 + 0x34));
    0x00013f1c strd r0, r1, [r4, 0x18]                       |         __asm ("strd r0, r1, [r4, 0x18]");
    0x00013f20 mov r0, sb                                    |         r0 = sb;
    0x00013f24 bl 0x905c                                     |         r0 = strlen (r0);
    0x00013f28 cmp r0, 0xd                                   |         
                                                             |         if (r0 >= 0xd) {
    0x00013f2c bls 0x13f4c                                   |             
    0x00013f30 ldr r1, [pc, 0x87c]                           |             r1 = *(0x147b0);
    0x00013f34 sub r6, r0, 0xd                               |             r6 = r0 - 0xd;
    0x00013f38 add r1, pc, r1                                |             r1 = pc + r1;
    0x00013f3c add r0, sb, r6                                |             r0 = sb + r6;
    0x00013f40 bl 0x8cb4                                     |             r0 = strcmp (r0, r1);
    0x00013f44 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00013f48 strbeq r0, [sb, r6]                           |                 *((sb + r6)) = r0;
                                                             |                 goto label_54;
                                                             |             }
                                                             |         }
                                                             | label_54:
    0x00013f4c ldr r0, [r4, 0x30]                            |         r0 = *((r4 + 0x30));
    0x00013f50 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013f54 ldr r0, [r4, 0x34]                            |         r0 = *((r4 + 0x34));
    0x00013f58 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013f5c ldr r0, [r4, 0x40]                            |         r0 = *((r4 + 0x40));
    0x00013f60 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013f64 ldr r0, [sp, 0x48]                            |         r0 = var_48h;
    0x00013f68 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013f6c ldr r0, [sp, 0x50]                            |         r0 = endptr;
    0x00013f70 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013f74 ldr r0, [r4, 0x48]                            |         r0 = *((r4 + 0x48));
    0x00013f78 bl 0x135ec                                    |         fcn_000135ec (r0);
    0x00013f7c ldr r1, [sp, 0x48]                            |         r1 = var_48h;
    0x00013f80 mov r0, r4                                    |         r0 = r4;
    0x00013f84 bl 0xb070                                     |         r0 = fcn_0000b070 (r0, r1);
    0x00013f88 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x00013f8c bne 0x13fa8                                   |             
    0x00013f90 ldr r1, [sp, 0x50]                            |             r1 = endptr;
    0x00013f94 mov r0, r4                                    |             r0 = r4;
    0x00013f98 str r6, [sp, 0x48]                            |             var_48h = r6;
    0x00013f9c bl 0xad90                                     |             r0 = fcn_0000ad90 (r0, r1);
    0x00013fa0 subs r6, r0, 0                                |             r6 = r0 - 0;
                                                             |             if (r6 == r0) {
    0x00013fa4 streq r6, [sp, 0x50]                          |                 endptr = r6;
                                                             |                 goto label_55;
                                                             |             }
                                                             |         }
                                                             | label_55:
    0x00013fa8 mov r0, r4                                    |         r0 = r4;
    0x00013fac bl 0x9020                                     |         r0 = fcn_00009020 ();
    0x00013fb0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00013fb4 mvneq r6, 0xb                                 |             r6 = ~0xb;
                                                             |         }
    0x00013fb8 str r0, [r4, 0x3c]                            |         *((r4 + 0x3c)) = r0;
                                                             | label_3:
    0x00013fbc ldr r0, [sp, 0x48]                            |         r0 = var_48h;
    0x00013fc0 bl 0x91c4                                     |         free (r0);
    0x00013fc4 ldr r0, [sp, 0x50]                            |         r0 = endptr;
                                                             | label_11:
    0x00013fc8 bl 0x91c4                                     |         free (r0);
    0x00013fcc cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x00013fd0 beq 0x140b8                                   |             goto label_5;
                                                             |         }
    0x00013fd4 b 0x1399c                                     |         goto label_1;
                                                             | label_52:
    0x00013fd8 ldr r1, [pc, 0x7d8]                           |         r1 = *(0x147b4);
    0x00013fdc mov r3, sl                                    |         r3 = sl;
    0x00013fe0 add r2, sp, 0x50                              |         r2 += endptr;
    0x00013fe4 add r1, pc, r1                                |         r1 = pc + r1;
    0x00013fe8 mov r0, fp                                    |         r0 = fp;
    0x00013fec bl 0x8a74                                     |         sscanf (r0, r1, r2);
    0x00013ff0 b 0x13ef8                                     |         
                                                             |     } while (1);
                                                             | label_53:
    0x00013ff4 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00013ff8 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00013ffc beq 0x1404c                                   |         
    0x00014000 ldr r3, [pc, 0x6ec]                           |         r3 = *(0x146f0);
    0x00014004 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00014008 ldr sl, [r3]                                  |         sl = *(0x146f0);
    0x0001400c bl 0x8204                                     |         getpid ();
    0x00014010 ldr r3, [pc, 0x7a4]                           |         r3 = *(0x147b8);
    0x00014014 ldr r1, [pc, 0x7a4]                           |         r1 = *(0x147bc);
    0x00014018 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001401c str r3, [sp]                                  |         *(sp) = r3;
    0x00014020 ldr r3, [pc, 0x79c]                           |         r3 = *(0x147c0);
    0x00014024 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014028 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001402c mov r2, r0                                    |         r2 = r0;
    0x00014030 mov r0, sl                                    |         r0 = sl;
    0x00014034 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00014038 ldr r0, [pc, 0x788]                           |         r0 = *(0x147c4);
    0x0001403c mov r2, fp                                    |         r2 = fp;
    0x00014040 mov r1, sb                                    |         r1 = sb;
    0x00014044 add r0, pc, r0                                |         r0 = pc + r0;
    0x00014048 bl 0x132c8                                    |         fcn_000132c8 ();
                                                             |     }
    0x0001404c mvn r6, 0x15                                  |     r6 = ~0x15;
    0x00014050 b 0x13fbc                                     |     goto label_3;
                                                             | label_28:
    0x00014054 ldr r3, [r4, 0x24]                            |     r3 = *((r4 + 0x24));
    0x00014058 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001405c beq 0x14084                                   |         
    0x00014060 ldr r3, [pc, 0x764]                           |         
    0x00014064 ldr r1, [pc, 0x764]                           |         r1 = *(0x147cc);
    0x00014068 ldr r0, [pc, 0x764]                           |         r0 = *(0x147d0);
    0x0001406c add r3, pc, r3                                |         r3 = pc + r3;
    0x00014070 add r3, r3, 0x23                              |         r3 = 0x147eb;
    0x00014074 ldr r2, [pc, 0x75c]                           |         r2 = *(0x147d4);
    0x00014078 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001407c add r0, pc, r0                                |         r0 = pc + r0;
    0x00014080 b 0x13778                                     |         goto label_0;
                                                             |     }
    0x00014084 ldr r3, [r4, 0x34]                            |     r3 = *((r4 + 0x34));
    0x00014088 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001408c bne 0x1421c                                   |         goto label_56;
                                                             |     }
    0x00014090 ldr r3, [pc, 0x744]                           |     r3 = *(0x147d8);
    0x00014094 ldr fp, [pc, 0x744]                           |     fp = *(0x147dc);
    0x00014098 ldr sl, [pc, 0x744]                           |     sl = *(0x000147e4);
    0x0001409c add r3, pc, r3                                |     r3 = pc + r3;
    0x000140a0 add fp, pc, fp                                |     
    0x000140a4 add sl, pc, sl                                |     sl = pc + sl;
    0x000140a8 str r3, [sp, 0x2c]                            |     format = r3;
                                                             | label_6:
    0x000140ac ldrsb r3, [r6]                                |     r3 = *(r6);
    0x000140b0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000140b4 bne 0x14240                                   |         goto label_57;
                                                             |     }
                                                             | label_5:
    0x000140b8 ldr r3, [r5, 0x20]                            |     r3 = *((r5 + 0x20));
    0x000140bc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000140c0 beq 0x140d8                                   |         
    0x000140c4 ldr r1, [r5, 0x24]                            |         r1 = *((r5 + 0x24));
    0x000140c8 mov r0, r4                                    |         r0 = r4;
    0x000140cc blx r3                                        |         r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x000140d0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000140d4 bne 0x14684                                   |             goto label_40;
                                                             |         }
                                                             |     }
    0x000140d8 mov r1, r4                                    |     r1 = r4;
    0x000140dc mov r0, r5                                    |     r0 = r5;
    0x000140e0 bl 0x8780                                     |     fcn_00008780 ();
    0x000140e4 ldr r3, [r4, 0x74]                            |     r3 = *((r4 + 0x74));
    0x000140e8 ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x000140ec orr r3, r3, r2                                |     r3 |= r2;
    0x000140f0 str r3, [r4, 0x74]                            |     *((r4 + 0x74)) = r3;
    0x000140f4 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x000140f8 bne 0x13a44                                   |         goto label_4;
                                                             |     }
    0x000140fc ldr r3, [r5]                                  |     r3 = *(r5);
    0x00014100 cmp r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x00014104 bne 0x14940                                   |         goto label_58;
                                                             |     }
    0x00014108 mov r0, r4                                    |     r0 = r4;
    0x0001410c bl 0x80cc                                     |     fcn_000080cc ();
    0x00014110 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00014114 cmn r3, 1                                     |     
    0x00014118 mov sl, r0                                    |     sl = r0;
                                                             |     if (r3 == 1) {
    0x0001411c bne 0x14148                                   |         
    0x00014120 mov r1, r6                                    |         r1 = r6;
    0x00014124 ldr r0, [sp, 0x1c]                            |         r0 = s1;
    0x00014128 bl 0x8d38                                     |         fcn_00008d38 ();
    0x0001412c str r6, [sp, 0x50]                            |         endptr = r6;
    0x00014130 subs fp, r0, 0                                |         
                                                             |         if (fp != r0) {
    0x00014134 bne 0x145a4                                   |             goto label_59;
                                                             |         }
                                                             | label_13:
    0x00014138 mov r3, 0                                     |         r3 = 0;
    0x0001413c str r3, [sp, 0x20]                            |         var_20h = r3;
                                                             | label_14:
    0x00014140 mov r0, fp                                    |         r0 = fp;
    0x00014144 bl 0x91c4                                     |         free (r0);
                                                             |     }
    0x00014148 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x0001414c cmp sl, 0                                     |     
    0x00014150 str r3, [r4, 0x78]                            |     *((r4 + 0x78)) = r3;
                                                             |     if (sl == 0) {
    0x00014154 beq 0x14940                                   |         goto label_58;
                                                             |     }
    0x00014158 ldr r1, [pc, 0x688]                           |     r1 = *(0x147e4);
    0x0001415c mov r0, sl                                    |     r0 = sl;
    0x00014160 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014164 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00014168 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001416c bne 0x14940                                   |         goto label_58;
                                                             |     }
    0x00014170 add r3, sp, 0x70                              |     r3 += var_70h;
    0x00014174 str r0, [r3, -0x20]!                          |     *((r3 -= 0x20)) = r0;
    0x00014178 ldr r2, [r5, 0x18]                            |     r2 = *((r5 + 0x18));
    0x0001417c ldrd r0, r1, [r4, 0x18]                       |     __asm ("ldrd r0, r1, [r4, 0x18]");
    0x00014180 bl 0x19fb4                                    |     r0 = fcn_00019fb4 (r0, r1);
    0x00014184 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb >= r0) {
    0x00014188 blt 0x14208                                   |         
                                                             |         if (sb != r0) {
    0x0001418c bne 0x1467c                                   |             goto label_60;
                                                             |         }
    0x00014190 ldr r3, [sp, 0x50]                            |         r3 = endptr;
    0x00014194 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00014198 beq 0x14940                                   |             goto label_58;
                                                             |         }
    0x0001419c ldr r3, [r8]                                  |         r3 = *(r8);
    0x000141a0 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x000141a4 beq 0x141f4                                   |             
    0x000141a8 ldr r3, [pc, 0x544]                           |             r3 = *(0x146f0);
    0x000141ac ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000141b0 ldr sb, [r3]                                  |             sb = *(0x146f0);
    0x000141b4 bl 0x8204                                     |             getpid ();
    0x000141b8 ldr r3, [pc, 0x62c]                           |             r3 = *(0x147e8);
    0x000141bc ldr r1, [pc, 0x62c]                           |             r1 = *(0x147ec);
    0x000141c0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000141c4 str r3, [sp]                                  |             *(sp) = r3;
    0x000141c8 ldr r3, [pc, 0x624]                           |             r3 = *(0x147f0);
    0x000141cc add r1, pc, r1                                |             r1 = pc + r1;
    0x000141d0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000141d4 mov r2, r0                                    |             r2 = r0;
    0x000141d8 mov r0, sb                                    |             r0 = sb;
    0x000141dc bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000141e0 ldr r1, [pc, 0x610]                           |             r1 = *(0x147f4);
    0x000141e4 ldr r2, [sp, 0x50]                            |             r2 = endptr;
    0x000141e8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000141ec mov r0, r5                                    |             r0 = r5;
    0x000141f0 bl 0x13354                                    |             fcn_00013354 (r0);
                                                             |         }
    0x000141f4 ldr r1, [sp, 0x50]                            |         r1 = endptr;
    0x000141f8 mov r0, r4                                    |         r0 = r4;
    0x000141fc bl 0xad90                                     |         r0 = fcn_0000ad90 (r0, r1);
    0x00014200 subs sb, r0, 0                                |         sb = r0 - 0;
                                                             |         if (sb == r0) {
                                                             | label_15:
    0x00014204 beq 0x14940                                   |             goto label_58;
                                                             |         }
                                                             |     }
    0x00014208 mov r1, r4                                    |     r1 = r4;
    0x0001420c mov r0, r5                                    |     r0 = r5;
    0x00014210 bl 0x8288                                     |     fcn_00008288 ();
    0x00014214 mov r6, sb                                    |     r6 = sb;
    0x00014218 b 0x13a44                                     |     goto label_4;
                                                             | label_56:
    0x0001421c ldr r3, [pc, 0x5d8]                           |     
    0x00014220 ldr r1, [pc, 0x5d8]                           |     r1 = *(0x147fc);
    0x00014224 ldr r0, [pc, 0x5d8]                           |     r0 = *(0x14800);
    0x00014228 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001422c add r3, r3, 0x23                              |     r3 = 0x1481b;
    0x00014230 mov r2, 0x114                                 |     r2 = 0x114;
    0x00014234 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014238 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001423c b 0x13778                                     |     goto label_0;
                                                             | label_57:
    0x00014240 mov r3, 0                                     |     r3 = 0;
    0x00014244 str r3, [sp, 0x50]                            |     endptr = r3;
                                                             | label_7:
    0x00014248 ldrsb r3, [r6]                                |     r3 = *(r6);
    0x0001424c mov sb, r6                                    |     sb = r6;
    0x00014250 cmp r3, 0x20                                  |     
    0x00014254 add r2, r6, 1                                 |     r2 = r6 + 1;
                                                             |     if (r3 == 0x20) {
    0x00014258 beq 0x142b8                                   |         goto label_61;
                                                             |     }
    0x0001425c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00014260 beq 0x140b8                                   |         goto label_5;
                                                             |     }
    0x00014264 ldr r3, [r4, 0x24]                            |     r3 = *((r4 + 0x24));
    0x00014268 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001426c bne 0x142c0                                   |         goto label_62;
                                                             |     }
    0x00014270 ldr r1, [pc, 0x590]                           |     r1 = *(0x14804);
    0x00014274 mov r2, 4                                     |     r2 = 4;
    0x00014278 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001427c mov r0, r6                                    |     r0 = r6;
    0x00014280 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00014284 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00014288 bne 0x142c0                                   |         goto label_62;
                                                             |     }
    0x0001428c add r1, sp, 0x50                              |     r1 += endptr;
    0x00014290 add r0, r6, 4                                 |     r0 = r6 + 4;
    0x00014294 bl 0x2aa58                                    |     r0 = fcn_0002aa58 (r0);
    0x00014298 subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x0001429c beq 0x14300                                   |         goto label_63;
                                                             |     }
    0x000142a0 mov r0, r4                                    |     r0 = r4;
    0x000142a4 bl 0xad90                                     |     fcn_0000ad90 (r0, r1);
                                                             |     do {
                                                             | label_10:
    0x000142a8 ldr r6, [sp, 0x50]                            |         r6 = endptr;
    0x000142ac cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x000142b0 moveq r6, sb                                  |             r6 = sb;
                                                             |         }
    0x000142b4 b 0x140ac                                     |         goto label_6;
                                                             | label_61:
    0x000142b8 mov r6, r2                                    |         r6 = r2;
    0x000142bc b 0x14248                                     |         goto label_7;
                                                             | label_62:
    0x000142c0 ldr r3, [r4, 0x34]                            |         r3 = *((r4 + 0x34));
    0x000142c4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000142c8 bne 0x14350                                   |             goto label_64;
                                                             |         }
    0x000142cc ldr r1, [pc, 0x538]                           |         r1 = *(0x14808);
    0x000142d0 mov r2, 7                                     |         r2 = 7;
    0x000142d4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000142d8 mov r0, r6                                    |         r0 = r6;
    0x000142dc bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x000142e0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000142e4 bne 0x14350                                   |             goto label_64;
                                                             |         }
    0x000142e8 add r1, sp, 0x50                              |         r1 += endptr;
    0x000142ec add r0, r6, 7                                 |         r0 = r6 + 7;
    0x000142f0 bl 0x2aa58                                    |         fcn_0002aa58 (r0);
    0x000142f4 str r0, [r4, 0x34]                            |         *((r4 + 0x34)) = r0;
                                                             | label_9:
    0x000142f8 cmp r0, 0                                     |         
    0x000142fc bne 0x142a8                                   |         
                                                             |     } while (r0 != 0);
                                                             | label_63:
    0x00014300 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00014304 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00014308 beq 0x13a20                                   |         goto label_8;
                                                             |     }
    0x0001430c ldr r3, [pc, 0x3e0]                           |     r3 = *(0x146f0);
    0x00014310 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00014314 ldr r6, [r3]                                  |     r6 = *(0x146f0);
    0x00014318 bl 0x8204                                     |     getpid ();
    0x0001431c ldr r3, [pc, 0x4ec]                           |     r3 = *(0x1480c);
    0x00014320 ldr r1, [pc, 0x4ec]                           |     r1 = *(0x14810);
    0x00014324 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014328 str r3, [sp]                                  |     *(sp) = r3;
    0x0001432c ldr r3, [pc, 0x4e4]                           |     r3 = *(0x14814);
    0x00014330 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014334 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014338 mov r2, r0                                    |     r2 = r0;
    0x0001433c mov r0, r6                                    |     r0 = r6;
    0x00014340 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00014344 ldr r0, [pc, 0x4d0]                           |     r0 = *(0x14818);
    0x00014348 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001434c b 0x13c30                                     |     goto label_2;
                                                             | label_64:
    0x00014350 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x00014354 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00014358 bne 0x1438c                                   |         
    0x0001435c ldr r1, [pc, 0x4bc]                           |         r1 = *(0x1481c);
    0x00014360 mov r2, 5                                     |         r2 = 5;
    0x00014364 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014368 mov r0, r6                                    |         r0 = r6;
    0x0001436c bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x00014370 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00014374 bne 0x1438c                                   |             goto label_65;
                                                             |         }
    0x00014378 add r1, sp, 0x50                              |         r1 += endptr;
    0x0001437c add r0, r6, 5                                 |         r0 = r6 + 5;
    0x00014380 bl 0x2aa58                                    |         fcn_0002aa58 (r0);
    0x00014384 str r0, [r4, 0x30]                            |         *((r4 + 0x30)) = r0;
    0x00014388 b 0x142f8                                     |         goto label_9;
                                                             |     }
                                                             | label_65:
    0x0001438c ldr r3, [r4, 0x20]                            |     r3 = *((r4 + 0x20));
    0x00014390 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00014394 bne 0x143c4                                   |         
    0x00014398 mov r2, 8                                     |         r2 = 8;
    0x0001439c mov r1, sl                                    |         r1 = sl;
    0x000143a0 mov r0, r6                                    |         r0 = r6;
    0x000143a4 bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x000143a8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000143ac bne 0x143c4                                   |             goto label_66;
                                                             |         }
    0x000143b0 add r1, sp, 0x50                              |         r1 += endptr;
    0x000143b4 add r0, r6, 8                                 |         r0 = r6 + 8;
    0x000143b8 bl 0x2aa58                                    |         fcn_0002aa58 (r0);
    0x000143bc str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x000143c0 b 0x142f8                                     |         goto label_9;
                                                             |     }
                                                             | label_66:
    0x000143c4 ldr r3, [r4, 0x4c]                            |     r3 = *((r4 + 0x4c));
    0x000143c8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000143cc bne 0x143fc                                   |         
    0x000143d0 mov r2, 5                                     |         r2 = 5;
    0x000143d4 mov r1, fp                                    |         r1 = fp;
    0x000143d8 mov r0, r6                                    |         r0 = r6;
    0x000143dc bl 0x8948                                     |         r0 = strncmp (r0, r1, r2);
    0x000143e0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000143e4 bne 0x143fc                                   |             goto label_67;
                                                             |         }
    0x000143e8 add r1, sp, 0x50                              |         r1 += endptr;
    0x000143ec add r0, r6, 5                                 |         r0 = r6 + 5;
    0x000143f0 bl 0x2aa58                                    |         fcn_0002aa58 (r0);
    0x000143f4 str r0, [r4, 0x4c]                            |         *((r4 + 0x4c)) = r0;
    0x000143f8 b 0x142f8                                     |         goto label_9;
                                                             |     }
                                                             | label_67:
    0x000143fc ldr r3, [r4, 0x50]                            |     r3 = *((r4 + 0x50));
    0x00014400 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00014404 bne 0x14434                                   |         goto label_68;
                                                             |     }
    0x00014408 mov r2, 6                                     |     r2 = 6;
    0x0001440c ldr r1, [sp, 0x2c]                            |     r1 = format;
    0x00014410 mov r0, r6                                    |     r0 = r6;
    0x00014414 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00014418 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001441c bne 0x14434                                   |         goto label_68;
                                                             |     }
    0x00014420 add r1, sp, 0x50                              |     r1 += endptr;
    0x00014424 add r0, r6, 6                                 |     r0 = r6 + 6;
    0x00014428 bl 0x2aa58                                    |     fcn_0002aa58 (r0);
    0x0001442c str r0, [r4, 0x50]                            |     *((r4 + 0x50)) = r0;
    0x00014430 b 0x142f8                                     |     goto label_9;
                                                             |     do {
                                                             | label_68:
    0x00014434 mov sb, r6                                    |         sb = r6;
    0x00014438 ldrsb r3, [sb]                                |         r3 = *(sb);
    0x0001443c add r6, r6, 1                                 |         r6++;
    0x00014440 bics r3, r3, 0x20                             |         __asm ("bics r3, r3, 0x20");
    0x00014444 bne 0x14434                                   |         
                                                             |     } while (r0 != 0);
    0x00014448 b 0x142a8                                     |     goto label_10;
                                                             | label_29:
    0x0001444c ldr r1, [pc, 0x3d0]                           |     r1 = *(0x14820);
    0x00014450 mov r2, 9                                     |     r2 = 9;
    0x00014454 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014458 mov r0, r6                                    |     r0 = r6;
    0x0001445c bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00014460 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00014464 beq 0x1495c                                   |         goto label_25;
                                                             |     }
    0x00014468 add r2, sp, 0x70                              |     r2 += var_70h;
    0x0001446c mov r3, 0                                     |     r3 = 0;
    0x00014470 str r3, [r2, -0x2c]!                          |     *((r2 -= 0x2c)) = r3;
    0x00014474 ldr r1, [pc, 0x3ac]                           |     r1 = *(0x14824);
    0x00014478 add r3, r4, 0x70                              |     r3 = r4 + 0x70;
    0x0001447c str r3, [sp, 8]                               |     var_8h = r3;
    0x00014480 add r3, sp, 0x50                              |     r3 += endptr;
    0x00014484 str r3, [sp, 4]                               |     var_4h = r3;
    0x00014488 add r3, sp, 0x48                              |     r3 += var_48h;
    0x0001448c str r3, [sp]                                  |     *(sp) = r3;
    0x00014490 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014494 add r3, r4, 0x5c                              |     r3 = r4 + 0x5c;
    0x00014498 mov r0, r6                                    |     r0 = r6;
    0x0001449c bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x000144a0 cmp r0, 5                                     |     
    0x000144a4 mov sb, r0                                    |     sb = r0;
                                                             |     if (r0 != 5) {
    0x000144a8 bne 0x14520                                   |         goto label_69;
                                                             |     }
    0x000144ac ldrd r2, r3, [sp, 0x48]                       |     __asm ("ldrd r2, r3, [var_48h]");
    0x000144b0 ldr sb, [sp, 0x44]                            |     sb = var_44h;
    0x000144b4 strd r2, r3, [r4, 0x60]                       |     __asm ("strd r2, r3, [r4, 0x60]");
    0x000144b8 ldrd r2, r3, [sp, 0x50]                       |     __asm ("ldrd r2, r3, [endptr]");
    0x000144bc mov r0, sb                                    |     r0 = sb;
    0x000144c0 strd r2, r3, [r4, 0x68]                       |     __asm ("strd r2, r3, [r4, 0x68]");
    0x000144c4 bl 0x905c                                     |     r0 = strlen (r0);
    0x000144c8 cmp r0, 0xd                                   |     
                                                             |     if (r0 >= 0xd) {
    0x000144cc bls 0x144ec                                   |         
    0x000144d0 ldr r1, [pc, 0x354]                           |         r1 = *(0x14828);
    0x000144d4 sub r6, r0, 0xd                               |         r6 = r0 - 0xd;
    0x000144d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000144dc add r0, sb, r6                                |         r0 = sb + r6;
    0x000144e0 bl 0x8cb4                                     |         r0 = strcmp (r0, r1);
    0x000144e4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000144e8 strbeq r0, [sb, r6]                           |             *((sb + r6)) = r0;
                                                             |             goto label_70;
                                                             |         }
                                                             |     }
                                                             | label_70:
    0x000144ec ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x000144f0 bl 0x135ec                                    |     fcn_000135ec (r0);
    0x000144f4 ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x000144f8 mov r0, r4                                    |     r0 = r4;
    0x000144fc bl 0x8594                                     |     r0 = fcn_00008594 ();
    0x00014500 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00014504 bne 0x14518                                   |         goto label_71;
                                                             |     }
    0x00014508 ldr r1, [pc, 0x320]                           |     r1 = *(0x1482c);
    0x0001450c mov r0, r4                                    |     r0 = r4;
    0x00014510 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014514 bl 0x8144                                     |     fcn_00008144 ();
                                                             |     do {
                                                             | label_71:
    0x00014518 ldr r0, [sp, 0x44]                            |         r0 = var_44h;
    0x0001451c b 0x13fc8                                     |         goto label_11;
                                                             | label_69:
    0x00014520 ldr r3, [r8]                                  |         r3 = *(r8);
    0x00014524 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x00014528 beq 0x14578                                   |             
    0x0001452c ldr r3, [pc, 0x1c0]                           |             r3 = *(0x146f0);
    0x00014530 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x00014534 ldr sl, [r3]                                  |             sl = *(0x146f0);
    0x00014538 bl 0x8204                                     |             getpid ();
    0x0001453c ldr r3, [pc, 0x2f0]                           |             r3 = *(0x14830);
    0x00014540 ldr r1, [pc, 0x2f0]                           |             r1 = *(0x14834);
    0x00014544 add r3, pc, r3                                |             r3 = pc + r3;
    0x00014548 str r3, [sp]                                  |             *(sp) = r3;
    0x0001454c ldr r3, [pc, 0x2e8]                           |             r3 = *(0x14838);
    0x00014550 add r1, pc, r1                                |             r1 = pc + r1;
    0x00014554 add r3, pc, r3                                |             r3 = pc + r3;
    0x00014558 mov r2, r0                                    |             r2 = r0;
    0x0001455c mov r0, sl                                    |             r0 = sl;
    0x00014560 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x00014564 ldr r0, [pc, 0x2d4]                           |             r0 = *(0x1483c);
    0x00014568 mov r2, r6                                    |             r2 = r6;
    0x0001456c mov r1, sb                                    |             r1 = sb;
    0x00014570 add r0, pc, r0                                |             r0 = pc + r0;
    0x00014574 bl 0x132c8                                    |             fcn_000132c8 ();
                                                             |         }
    0x00014578 mvn r6, 0x15                                  |         r6 = ~0x15;
    0x0001457c b 0x14518                                     |         
                                                             |     } while (1);
                                                             | label_37:
    0x00014580 ldr r1, [pc, 0x2bc]                           |     r1 = *(0x14840);
    0x00014584 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014588 b 0x13a0c                                     |     goto label_12;
                                                             | label_38:
    0x0001458c ldr r1, [pc, 0x2b4]                           |     r1 = *(0x14844);
    0x00014590 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014594 b 0x13a0c                                     |     goto label_12;
                                                             | label_39:
    0x00014598 ldr r1, [pc, 0x2ac]                           |     r1 = *(0x14848);
    0x0001459c add r1, pc, r1                                |     r1 = pc + r1;
    0x000145a0 b 0x13a0c                                     |     goto label_12;
                                                             | label_59:
    0x000145a4 mov r1, 0x2f                                  |     r1 = 0x2f;
    0x000145a8 bl 0x86b4                                     |     r0 = strrchr (r0, r1);
    0x000145ac cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000145b0 beq 0x14138                                   |         goto label_13;
                                                             |     }
    0x000145b4 strb r6, [r0]                                 |     *(r0) = r6;
    0x000145b8 mov r1, 0x2f                                  |     r1 = 0x2f;
    0x000145bc mov r0, fp                                    |     r0 = fp;
    0x000145c0 bl 0x86b4                                     |     r0 = strrchr (r0, r1);
    0x000145c4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000145c8 beq 0x14138                                   |         goto label_13;
                                                             |     }
    0x000145cc add sb, r0, 1                                 |     sb = r0 + 1;
    0x000145d0 bl 0x8f6c                                     |     errno_location ();
    0x000145d4 mov r2, 0xa                                   |     r2 = 0xa;
    0x000145d8 add r1, sp, 0x50                              |     r1 += endptr;
    0x000145dc str r6, [r0]                                  |     *(r0) = r6;
    0x000145e0 str r0, [sp, 0x2c]                            |     format = r0;
    0x000145e4 mov r0, sb                                    |     r0 = sb;
    0x000145e8 bl 0x863c                                     |     strtol (r0, r1, r2);
    0x000145ec ldr r3, [sp, 0x2c]                            |     r3 = format;
    0x000145f0 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000145f4 cmp r3, 0                                     |     
    0x000145f8 str r0, [sp, 0x20]                            |     var_20h = r0;
                                                             |     if (r3 != 0) {
    0x000145fc bne 0x14138                                   |         goto label_13;
                                                             |     }
    0x00014600 ldr r3, [sp, 0x50]                            |     r3 = endptr;
    0x00014604 cmp sb, r3                                    |     
                                                             |     if (sb == r3) {
    0x00014608 beq 0x14138                                   |         goto label_13;
                                                             |     }
    0x0001460c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00014610 beq 0x14620                                   |         goto label_72;
                                                             |     }
    0x00014614 ldrsb r3, [r3]                                |     r3 = *(r3);
    0x00014618 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001461c bne 0x14138                                   |         goto label_13;
                                                             |     }
                                                             | label_72:
    0x00014620 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00014624 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) == 0) {
    0x00014628 beq 0x14140                                   |         goto label_14;
                                                             |     }
    0x0001462c ldr r3, [pc, 0xc0]                            |     r3 = *(0x146f0);
    0x00014630 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00014634 ldr sb, [r3]                                  |     sb = *(0x146f0);
    0x00014638 bl 0x8204                                     |     getpid ();
    0x0001463c ldr r3, [pc, 0x20c]                           |     r3 = *(0x1484c);
    0x00014640 ldr r1, [pc, 0x20c]                           |     r1 = *(0x14850);
    0x00014644 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014648 str r3, [sp]                                  |     *(sp) = r3;
    0x0001464c ldr r3, [pc, 0x204]                           |     r3 = *(0x14854);
    0x00014650 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014654 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014658 mov r2, r0                                    |     r2 = r0;
    0x0001465c mov r0, sb                                    |     r0 = sb;
    0x00014660 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00014664 ldr r0, [pc, 0x1f0]                           |     r0 = *(0x14858);
    0x00014668 ldr r2, [sp, 0x20]                            |     r2 = var_20h;
    0x0001466c ldr r1, [sp, 0x1c]                            |     r1 = s1;
    0x00014670 add r0, pc, r0                                |     r0 = pc + r0;
    0x00014674 bl 0x132c8                                    |     fcn_000132c8 ();
    0x00014678 b 0x14140                                     |     goto label_14;
                                                             | label_60:
    0x0001467c cmp sb, 1                                     |     
    0x00014680 b 0x14204                                     |     goto label_15;
                                                             | label_40:
    0x00014684 mov r6, 1                                     |     r6 = 1;
                                                             | label_41:
    0x00014688 mov r0, r4                                    |     r0 = r4;
    0x0001468c bl 0x80e4                                     |     fcn_000080e4 ();
    0x00014690 ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x00014694 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x00014698 beq 0x138ac                                   |         goto label_16;
                                                             |     }
    0x0001469c ldr r3, [pc, 0x1bc]                           |     
    0x000146a0 ldr r1, [pc, 0x1bc]                           |     r1 = *(0x14860);
    0x000146a4 ldr r0, [pc, 0x1bc]                           |     r0 = *(0x14864);
    0x000146a8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000146ac add r3, r3, 0xc                               |     r3 = 0x14868;
    0x000146b0 ldr r2, [pc, 0x1b4]                           |     r2 = *(0x14868);
    0x000146b4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000146b8 add r0, pc, r0                                |     r0 = pc + r0;
    0x000146bc b 0x13778                                     |     goto label_0;
                                                             | label_18:
    0x000148a8 mvn r6, 0x15                                  |     r6 = ~0x15;
                                                             | label_22:
    0x000148ac mov r0, r4                                    |     r0 = r4;
    0x000148b0 bl 0x8960                                     |     fcn_00008960 ();
    0x000148b4 ldr r0, [sp, 0x24]                            |     r0 = stream;
    0x000148b8 bl 0x83a8                                     |     r0 = feof (r0);
    0x000148bc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000148c0 beq 0x138d0                                   |         goto label_17;
                                                             |     }
                                                             | label_34:
    0x000148c4 ldr r3, [r8]                                  |     r3 = *(r8);
    0x000148c8 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000148cc beq 0x14928                                   |         
    0x000148d0 ldr r3, [pc, -0x4c]                           |         r3 = *(0x14888);
    0x000148d4 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x000148d8 ldr r4, [r3]                                  |         r4 = *(0x14888);
    0x000148dc bl 0x8204                                     |         getpid ();
    0x000148e0 ldr r3, [pc, -0x78]                           |         r3 = *(0x00014870);
    0x000148e4 ldr r1, [pc, -0x78]                           |         r1 = *(0x00014874);
    0x000148e8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000148ec str r3, [sp]                                  |         *(sp) = r3;
    0x000148f0 ldr r3, [pc, -0x80]                           |         r3 = *(0x14874);
    0x000148f4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000148f8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000148fc mov r2, r0                                    |         r2 = r0;
    0x00014900 mov r0, r4                                    |         r0 = r4;
    0x00014904 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00014908 mov r0, r5                                    |         r0 = r5;
    0x0001490c bl 0x87f8                                     |         fcn_000087f8 ();
    0x00014910 ldr r1, [pc, -0x9c]                           |         r1 = *(0x14878);
    0x00014914 ldr r2, [sp, 0x1c]                            |         r2 = s1;
    0x00014918 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001491c mov r3, r0                                    |         r3 = r0;
    0x00014920 mov r0, r5                                    |         r0 = r5;
    0x00014924 bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x00014928 ldr r0, [sp, 0x64]                            |     r0 = ptr;
    0x0001492c bl 0x91c4                                     |     free (r0);
    0x00014930 mov r6, 0                                     |     r6 = 0;
                                                             | label_36:
    0x00014934 mov r0, r6                                    |     r0 = r6;
    0x00014938 add sp, sp, 0x74                              |     
    0x0001493c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_58:
    0x00014940 mov r0, r4                                    |     r0 = r4;
    0x00014944 bl 0x8960                                     |     fcn_00008960 ();
    0x00014948 mov r4, 0                                     |     r4 = 0;
    0x0001494c b 0x138ac                                     |     goto label_16;
                                                             | label_35:
    0x00014950 ldr r3, [pc, -0xd8]                           |     r3 = *(0x00014880);
    0x00014954 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014958 str r3, [sp, 0x2c]                            |     format = r3;
                                                             | label_25:
    0x0001495c ldr r3, [pc, -0xe0]                           |     r3 = *(0x00014884);
    0x00014960 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014964 str r3, [sp, 0x30]                            |     var_30h = r3;
                                                             | label_23:
    0x00014968 add sl, sp, 0x68                              |     sl += var_68h;
    0x0001496c ldr r2, [sp, 0x5c]                            |     r2 = s;
    0x00014970 mov r1, sl                                    |     r1 = sl;
    0x00014974 add r0, sp, 0x64                              |     r0 += ptr;
    0x00014978 bl 0x902c                                     |     r0 = getline ();
    0x0001497c cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00014980 blt 0x148a8                                   |         goto label_18;
                                                             |     }
    0x00014984 ldr r3, [sp, 0x6c]                            |     r3 = var_6ch;
    0x00014988 mov r1, 0xa                                   |     r1 = 0xa;
    0x0001498c add r3, r3, 1                                 |     r3++;
    0x00014990 ldr r0, [sp, 0x64]                            |     r0 = ptr;
    0x00014994 str r3, [sp, 0x6c]                            |     var_6ch = r3;
    0x00014998 bl 0x90a4                                     |     r0 = strchr (r0, r1);
    0x0001499c subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x000149a0 bne 0x14a10                                   |         goto label_73;
                                                             |     }
    0x000149a4 ldr r0, [sp, 0x5c]                            |     r0 = s;
    0x000149a8 bl 0x83a8                                     |     feof (r0);
    0x000149ac ldr r3, [r8]                                  |     r3 = *(r8);
    0x000149b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000149b4 beq 0x13944                                   |         goto label_19;
                                                             |     }
    0x000149b8 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000149bc beq 0x14a00                                   |         
    0x000149c0 ldr r3, [pc, -0x13c]                          |         r3 = *(0x14888);
    0x000149c4 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x000149c8 ldr r6, [r3]                                  |         r6 = *(0x14888);
    0x000149cc bl 0x8204                                     |         getpid ();
    0x000149d0 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x000149d4 ldr r1, [sp, 0x2c]                            |         r1 = format;
    0x000149d8 str r3, [sp]                                  |         *(sp) = r3;
    0x000149dc ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x000149e0 mov r2, r0                                    |         r2 = r0;
    0x000149e4 mov r0, r6                                    |         r0 = r6;
    0x000149e8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000149ec ldr r1, [pc, -0x16c]                          |         r1 = *(0x14884);
    0x000149f0 ldr r2, [sp, 0x60]                            |         r2 = var_60h;
    0x000149f4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000149f8 mov r0, r5                                    |         r0 = r5;
    0x000149fc bl 0x13354                                    |         fcn_00013354 (r0);
                                                             |     }
    0x00014a00 ldr sb, [sp, 0x64]                            |     sb = ptr;
    0x00014a04 mov r0, sb                                    |     r0 = sb;
    0x00014a08 bl 0x905c                                     |     r0 = strlen (r0);
    0x00014a0c add sb, sb, r0                                |     sb += r0;
                                                             | label_73:
    0x00014a10 ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
    0x00014a14 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00014a18 beq 0x14ad8                                   |         goto label_74;
                                                             |     }
    0x00014a1c ldr r3, [r5]                                  |     r3 = *(r5);
    0x00014a20 cmp r3, 1                                     |     
                                                             |     if (r3 > 1) {
    0x00014a24 bhi 0x14ad8                                   |         goto label_74;
                                                             |     }
    0x00014a28 ldr r0, [sp, 0x64]                            |     r0 = ptr;
    0x00014a2c bl 0x132a0                                    |     r0 = fcn_000132a0 (r0);
    0x00014a30 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00014a34 beq 0x14ad8                                   |         goto label_74;
                                                             |     }
    0x00014a38 add fp, sp, 0x64                              |     
                                                             | label_21:
    0x00014a3c ldr r0, [sp, 0x5c]                            |     r0 = s;
    0x00014a40 ldr r6, [sp, 0x64]                            |     r6 = ptr;
    0x00014a44 bl 0x83a8                                     |     feof (r0);
    0x00014a48 mov r1, r4                                    |     r1 = r4;
    0x00014a4c mov r2, r6                                    |     r2 = r6;
    0x00014a50 mov r3, r0                                    |     r3 = r0;
    0x00014a54 mov r0, r5                                    |     r0 = r5;
    0x00014a58 bl 0x13414                                    |     r0 = fcn_00013414 (r0, r1);
    0x00014a5c subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00014a60 bne 0x14aa0                                   |         goto label_75;
                                                             |     }
    0x00014a64 ldr r2, [sp, 0x5c]                            |     r2 = s;
    0x00014a68 mov r1, sl                                    |     r1 = sl;
    0x00014a6c mov r0, fp                                    |     r0 = fp;
    0x00014a70 bl 0x902c                                     |     r0 = getline ();
    0x00014a74 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00014a78 bge 0x13a50                                   |         goto label_20;
                                                             |     }
    0x00014a7c ldr r0, [sp, 0x5c]                            |     r0 = s;
    0x00014a80 bl 0x83a8                                     |     r0 = feof (r0);
    0x00014a84 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00014a88 bne 0x14aa8                                   |         goto label_76;
                                                             |     }
    0x00014a8c bl 0x8f6c                                     |     r0 = errno_location ();
    0x00014a90 ldr r6, [r0]                                  |     r6 = *(r0);
    0x00014a94 rsb r6, r6, 0                                 |     r6 -= ;
                                                             | label_42:
    0x00014a98 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00014a9c beq 0x14a3c                                   |         goto label_21;
                                                             |     }
                                                             | label_75:
    0x00014aa0 cmp r6, 1                                     |     
                                                             |     if (r6 == 1) {
    0x00014aa4 bne 0x14ad0                                   |         
                                                             | label_76:
    0x00014aa8 ldr r0, [sp, 0x5c]                            |         r0 = s;
    0x00014aac bl 0x83a8                                     |         r0 = feof (r0);
    0x00014ab0 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00014ab4 beq 0x14ad8                                   |             goto label_74;
                                                             |         }
    0x00014ab8 mov r3, 1                                     |         r3 = 1;
    0x00014abc mov r2, 0                                     |         r2 = 0;
    0x00014ac0 mov r1, r4                                    |         r1 = r4;
    0x00014ac4 mov r0, r5                                    |         r0 = r5;
    0x00014ac8 bl 0x13414                                    |         r0 = fcn_00013414 (r0, r1);
    0x00014acc mov r6, r0                                    |         r6 = r0;
                                                             |     }
    0x00014ad0 cmp r6, 0                                     |     
                                                             |     if (r6 < 0) {
    0x00014ad4 blt 0x148ac                                   |         goto label_22;
                                                             |     }
                                                             | label_74:
    0x00014ad8 mov r3, sb                                    |     r3 = sb;
    0x00014adc mov r2, 0                                     |     r2 = 0;
    0x00014ae0 strb r2, [r3], -1                             |     *(r3) = r2;
                                                             |     r3 += -1;
    0x00014ae4 ldr r1, [sp, 0x64]                            |     r1 = ptr;
    0x00014ae8 cmp r1, r3                                    |     
                                                             |     if (r1 <= r3) {
    0x00014aec bhi 0x14afc                                   |         
    0x00014af0 ldrsb r3, [sb, -1]                            |         r3 = *((sb - 1));
    0x00014af4 cmp r3, 0xd                                   |         
                                                             |         if (r3 == 0xd) {
    0x00014af8 strbeq r2, [sb, -1]                           |             *((sb - 1)) = r2;
                                                             |             goto label_77;
                                                             |         }
                                                             |     }
                                                             | label_77:
    0x00014afc ldr r0, [sp, 0x64]                            |     r0 = ptr;
    0x00014b00 bl 0x13260                                    |     r0 = fcn_00013260 (r0);
    0x00014b04 ldrsb r3, [r0]                                |     r3 = *(r0);
    0x00014b08 mov r6, r0                                    |     r6 = r0;
    0x00014b0c cmp r3, 0x23                                  |     
    0x00014b10 cmpne r3, 0                                   |     __asm ("cmpne r3, 0");
                                                             |     if (r3 == 0x23) {
    0x00014b14 beq 0x14968                                   |         goto label_23;
                                                             |     }
    0x00014b18 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00014b1c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00014b20 bne 0x14bc0                                   |         goto label_43;
                                                             |     }
    0x00014b24 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00014b28 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00014b2c beq 0x14b74                                   |         
    0x00014b30 ldr r3, [pc, -0x2ac]                          |         r3 = *(0x14888);
    0x00014b34 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00014b38 ldr sb, [r3]                                  |         sb = *(0x14888);
    0x00014b3c bl 0x8204                                     |         getpid ();
    0x00014b40 ldr r3, [pc, -0x2b8]                          |         r3 = *(0x00014890);
    0x00014b44 ldr r1, [pc, -0x2b8]                          |         r1 = *(0x00014894);
    0x00014b48 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014b4c str r3, [sp]                                  |         *(sp) = r3;
    0x00014b50 ldr r3, [pc, -0x2c0]                          |         r3 = *(0x14894);
    0x00014b54 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014b58 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014b5c mov r2, r0                                    |         r2 = r0;
    0x00014b60 mov r0, sb                                    |         r0 = sb;
    0x00014b64 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00014b68 ldr r0, [pc, -0x2d4]                          |         r0 = *(0x14898);
    0x00014b6c add r0, pc, r0                                |         r0 = pc + r0;
    0x00014b70 bl 0x132c8                                    |         fcn_000132c8 ();
                                                             |     }
    0x00014b74 ldr r1, [pc, -0x2dc]                          |     r1 = *(0x1489c);
    0x00014b78 add r3, sp, 0x50                              |     r3 += endptr;
    0x00014b7c add r2, sp, 0x48                              |     r2 += var_48h;
    0x00014b80 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014b84 mov r0, r6                                    |     r0 = r6;
    0x00014b88 bl 0x8a74                                     |     r0 = sscanf (r0, r1, r2);
    0x00014b8c cmp r0, 2                                     |     
                                                             |     if (r0 == 2) {
    0x00014b90 beq 0x13a84                                   |         goto label_24;
                                                             |     }
    0x00014b94 ldr r1, [pc, -0x2f8]                          |     r1 = *(0x148a0);
    0x00014b98 mov r2, 9                                     |     r2 = 9;
    0x00014b9c add r1, pc, r1                                |     r1 = pc + r1;
    0x00014ba0 mov r0, r6                                    |     r0 = r6;
    0x00014ba4 bl 0x8948                                     |     r0 = strncmp (r0, r1, r2);
    0x00014ba8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00014bac movne r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00014bb0 moveq r3, 4                                   |         r3 = 4;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00014bb4 strne r3, [r5]                                |         *(r5) = r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00014bb8 streq r3, [r5]                                |         *(r5) = r3;
                                                             |         goto label_78;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_78:
    0x00014bbc beq 0x1495c                                   |         goto label_25;
                                                             |     }
                                                             | label_43:
    0x00014bc0 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00014bc4 sub r3, r3, 1                                 |     r3--;
    0x00014bc8 cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
                                                             |         /* switch table (4 cases) at 0x14bd4 */
    0x00014bcc addls pc, pc, r3, lsl 2                       |         pc += (r3 << 2);
                                                             |     }
    0x00014bd0 b 0x1399c                                     |     goto label_1;
    0x00014bd4 b 0x13a8c                                     |     goto label_26;
    0x00014bd8 b 0x13d80                                     |     goto label_27;
    0x00014bdc b 0x14054                                     |     goto label_28;
    0x00014be0 b 0x1444c                                     |     goto label_29;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x16cf4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_table_replace_file ()                | void mnt_table_replace_file (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     char * oldpath;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_28h;
                                                         |     int32_t var_2ch;
                                                         |     int32_t var_78h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00016cf4 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00016cf8 ldr r6, [pc, 0x244]                       |     r6 = *(0x16f40);
    0x00016cfc mov r3, 0                                 |     r3 = 0;
    0x00016d00 sub sp, sp, 0x78                          |     
    0x00016d04 str r3, [sp, 0xc]                         |     oldpath = r3;
    0x00016d08 ldr r3, [pc, 0x238]                       |     r3 = "d_";
    0x00016d0c add r6, pc, r6                            |     r6 = pc + r6;
    0x00016d10 ldr sb, [r6, r3]                          |     sb = *(0x16f40);
    0x00016d14 mov r8, r0                                |     r8 = r0;
    0x00016d18 ldr r3, [sb]                              |     r3 = *(0x16f40);
    0x00016d1c mov sl, r1                                |     sl = r1;
    0x00016d20 tst r3, 0x20                              |     
                                                         |     if ((r3 & 0x20) != 0) {
    0x00016d24 beq 0x16d74                               |         
    0x00016d28 ldr r3, [pc, 0x21c]                       |         r3 = *(0x16f48);
    0x00016d2c ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00016d30 ldr r4, [r3]                              |         r4 = *(0x16f48);
    0x00016d34 bl 0x8204                                 |         getpid ();
    0x00016d38 ldr r3, [pc, 0x210]                       |         r3 = *(0x16f4c);
    0x00016d3c ldr r1, [pc, 0x210]                       |         r1 = *(0x16f50);
    0x00016d40 add r3, pc, r3                            |         r3 = pc + r3;
    0x00016d44 str r3, [sp]                              |         *(sp) = r3;
    0x00016d48 ldr r3, [pc, 0x208]                       |         r3 = *(0x16f54);
    0x00016d4c add r1, pc, r1                            |         r1 = pc + r1;
    0x00016d50 add r3, pc, r3                            |         r3 = pc + r3;
    0x00016d54 mov r2, r0                                |         r2 = r0;
    0x00016d58 mov r0, r4                                |         r0 = r4;
    0x00016d5c bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x00016d60 ldr r1, [pc, 0x1f4]                       |         r1 = *(0x16f58);
    0x00016d64 mov r2, sl                                |         r2 = sl;
    0x00016d68 add r1, pc, r1                            |         r1 = pc + r1;
    0x00016d6c mov r0, r8                                |         r0 = r8;
    0x00016d70 bl 0x15798                                |         fcn_00015798 (r0);
                                                         |     }
    0x00016d74 add r1, sp, 0xc                           |     r1 += oldpath;
    0x00016d78 mov r0, sl                                |     r0 = sl;
    0x00016d7c bl 0x19ba4                                |     r0 = fcn_00019ba4 (r0, r1);
    0x00016d80 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 < r0) {
    0x00016d84 blt 0x16e88                               |         goto label_1;
                                                         |     }
    0x00016d88 ldr r1, [pc, 0x1d0]                       |     r1 = *(0x16f5c);
    0x00016d8c add r1, pc, r1                            |     r1 = pc + r1;
    0x00016d90 bl 0x8a50                                 |     r0 = fdopen ();
    0x00016d94 subs r7, r0, 0                            |     r7 = r0 - 0;
                                                         |     if (r7 == r0) {
    0x00016d98 beq 0x16f2c                               |         goto label_2;
                                                         |     }
    0x00016d9c mov r1, r7                                |     r1 = r7;
    0x00016da0 mov r0, r8                                |     r0 = r8;
    0x00016da4 bl 0x91ac                                 |     fcn_000091ac ();
    0x00016da8 mov r0, r7                                |     r0 = r7;
    0x00016dac bl 0x84f8                                 |     r0 = fflush (r0);
    0x00016db0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00016db4 beq 0x16e94                               |         goto label_3;
                                                         |     }
    0x00016db8 bl 0x8f6c                                 |     errno_location ();
    0x00016dbc ldr r3, [sb]                              |     r3 = *(sb);
    0x00016dc0 tst r3, 0x80                              |     
    0x00016dc4 ldr r5, [r0]                              |     r5 = *(r0);
    0x00016dc8 rsb r5, r5, 0                             |     r5 -= ;
                                                         |     if ((r3 & 0x80) != 0) {
    0x00016dcc beq 0x16e18                               |         
    0x00016dd0 ldr r3, [pc, 0x174]                       |         r3 = *(0x16f48);
    0x00016dd4 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00016dd8 ldr r4, [r3]                              |         r4 = *(0x16f48);
    0x00016ddc bl 0x8204                                 |         getpid ();
    0x00016de0 ldr r3, [pc, 0x17c]                       |         r3 = *(0x16f60);
    0x00016de4 ldr r1, [pc, 0x17c]                       |         r1 = *(0x16f64);
    0x00016de8 add r3, pc, r3                            |         r3 = pc + r3;
    0x00016dec str r3, [sp]                              |         *(sp) = r3;
    0x00016df0 ldr r3, [pc, 0x174]                       |         r3 = *(0x16f68);
    0x00016df4 add r1, pc, r1                            |         r1 = pc + r1;
    0x00016df8 add r3, pc, r3                            |         r3 = pc + r3;
    0x00016dfc mov r2, r0                                |         r2 = r0;
    0x00016e00 mov r0, r4                                |         r0 = r4;
    0x00016e04 bl 0x8798                                 |         fprintf (r0, r1, r2, r3)
    0x00016e08 ldr r0, [pc, 0x160]                       |         r0 = *(0x16f6c);
    0x00016e0c ldr r1, [sp, 0xc]                         |         r1 = oldpath;
    0x00016e10 add r0, pc, r0                            |         r0 = pc + r0;
    0x00016e14 bl 0x15858                                |         fcn_00015858 ();
                                                         |     }
    0x00016e18 mov r0, r7                                |     r0 = r7;
    0x00016e1c bl 0x8b94                                 |     fclose (r0);
                                                         |     do {
    0x00016e20 ldr r0, [sp, 0xc]                         |         r0 = oldpath;
    0x00016e24 bl 0x8978                                 |         unlink (r0);
    0x00016e28 ldr r0, [sp, 0xc]                         |         r0 = oldpath;
    0x00016e2c bl 0x91c4                                 |         free (r0);
    0x00016e30 ldr r3, [sb]                              |         r3 = *(sb);
    0x00016e34 tst r3, 0x20                              |         
                                                         |         if ((r3 & 0x20) != 0) {
    0x00016e38 beq 0x16e88                               |             
    0x00016e3c ldr r3, [pc, 0x108]                       |             r3 = *(0x16f48);
    0x00016e40 ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x00016e44 ldr r4, [r3]                              |             r4 = *(0x16f48);
    0x00016e48 bl 0x8204                                 |             getpid ();
    0x00016e4c ldr r3, [pc, 0x120]                       |             r3 = *(0x16f70);
    0x00016e50 ldr r1, [pc, 0x120]                       |             r1 = *(0x16f74);
    0x00016e54 add r3, pc, r3                            |             r3 = pc + r3;
    0x00016e58 str r3, [sp]                              |             *(sp) = r3;
    0x00016e5c ldr r3, [pc, 0x118]                       |             r3 = *(0x16f78);
    0x00016e60 add r1, pc, r1                            |             r1 = pc + r1;
    0x00016e64 add r3, pc, r3                            |             r3 = pc + r3;
    0x00016e68 mov r2, r0                                |             r2 = r0;
    0x00016e6c mov r0, r4                                |             r0 = r4;
    0x00016e70 bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x00016e74 ldr r1, [pc, 0x104]                       |             r1 = *(0x16f7c);
    0x00016e78 mov r2, r5                                |             r2 = r5;
    0x00016e7c add r1, pc, r1                            |             r1 = pc + r1;
    0x00016e80 mov r0, r8                                |             r0 = r8;
    0x00016e84 bl 0x15798                                |             fcn_00015798 (r0);
                                                         |         }
                                                         | label_1:
    0x00016e88 mov r0, r5                                |         r0 = r5;
    0x00016e8c add sp, sp, 0x78                          |         
    0x00016e90 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
                                                         | label_3:
    0x00016e94 mov r1, 0x1a4                             |         r1 = 0x1a4;
    0x00016e98 mov r0, r5                                |         r0 = r5;
    0x00016e9c bl 0x8168                                 |         r0 = fchmod (r0, r1);
    0x00016ea0 subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 != r0) {
    0x00016ea4 beq 0x16ebc                               |             
    0x00016ea8 bl 0x8f6c                                 |             r0 = errno_location ();
    0x00016eac ldr r3, [r0]                              |             r3 = *(r0);
    0x00016eb0 cmp r3, 0                                 |             
    0x00016eb4 rsb r4, r3, 0                             |             r4 = r3 - ;
                                                         |             if (r3 != 0) {
    0x00016eb8 bne 0x16ef4                               |                 goto label_4;
                                                         |             }
                                                         |         }
    0x00016ebc add r1, sp, 0x10                          |         r1 += var_10h;
    0x00016ec0 mov r0, sl                                |         r0 = sl;
    0x00016ec4 bl 0x8060                                 |         r0 = stat64 ();
    0x00016ec8 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x00016ecc bne 0x16ef4                               |             
    0x00016ed0 ldr r2, [sp, 0x2c]                        |             r2 = var_2ch;
    0x00016ed4 ldr r1, [sp, 0x28]                        |             r1 = var_28h;
    0x00016ed8 mov r0, r5                                |             r0 = r5;
    0x00016edc bl 0x8228                                 |             r0 = fchown ();
    0x00016ee0 subs r4, r0, 0                            |             r4 = r0 - 0;
                                                         |             if (r4 == r0) {
    0x00016ee4 beq 0x16ef4                               |                 goto label_4;
                                                         |             }
    0x00016ee8 bl 0x8f6c                                 |             r0 = errno_location ();
    0x00016eec ldr r4, [r0]                              |             r4 = *(r0);
    0x00016ef0 rsb r4, r4, 0                             |             r4 -= ;
                                                         |         }
                                                         | label_4:
    0x00016ef4 mov r0, r7                                |         r0 = r7;
    0x00016ef8 bl 0x8b94                                 |         fclose (r0);
    0x00016efc cmp r4, 0                                 |         
                                                         |         if (r4 == 0) {
    0x00016f00 bne 0x16f24                               |             
    0x00016f04 mov r1, sl                                |             r1 = sl;
    0x00016f08 ldr r0, [sp, 0xc]                         |             r0 = oldpath;
    0x00016f0c bl 0x869c                                 |             r0 = rename (r0, r1);
    0x00016f10 subs r4, r0, 0                            |             r4 = r0 - 0;
                                                         |             if (r4 == r0) {
    0x00016f14 beq 0x16f24                               |                 goto label_0;
                                                         |             }
    0x00016f18 bl 0x8f6c                                 |             r0 = errno_location ();
    0x00016f1c ldr r4, [r0]                              |             r4 = *(r0);
    0x00016f20 rsb r4, r4, 0                             |             r4 -= ;
                                                         |         }
                                                         | label_0:
    0x00016f24 mov r5, r4                                |         r5 = r4;
    0x00016f28 b 0x16e20                                 |         
                                                         |     } while (1);
                                                         | label_2:
    0x00016f2c bl 0x8f6c                                 |     r0 = errno_location ();
    0x00016f30 ldr r4, [r0]                              |     r4 = *(r0);
    0x00016f34 mov r0, r5                                |     r0 = r5;
    0x00016f38 rsb r4, r4, 0                             |     r4 -= ;
    0x00016f3c bl 0x917c                                 |     close (r0);
    0x00016f40 b 0x16f24                                 |     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/lib/libmount.so.1.1.0 @ 0x10100 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_table_uniq_fs ()                         | void mnt_table_uniq_fs (uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * format;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_54h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00010100 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010104 ldr r6, [pc, 0x29c]                           |     r6 = *(0x103a4);
    0x00010108 cmp r2, 0                                     |     
    0x0001010c cmpne r0, 0                                   |     __asm ("cmpne r0, 0");
    0x00010110 add r6, pc, r6                                |     r6 = pc + r6;
    0x00010114 sub sp, sp, 0x54                              |     
                                                             |     if (r2 != 0) {
    0x00010118 mvneq r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001011c beq 0x10144                                   |         
    0x00010120 add r3, r0, 0x28                              |         r3 = r0 + 0x28;
    0x00010124 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00010128 ldr r3, [r0, 0x28]                            |         r3 = *((r0 + 0x28));
    0x0001012c mov r8, r2                                    |         r8 = r2;
    0x00010130 add r2, r0, 0x28                              |         r2 = r0 + 0x28;
    0x00010134 cmp r2, r3                                    |         
    0x00010138 mov r4, r0                                    |         r4 = r0;
                                                             |         if (r2 != r3) {
    0x0001013c bne 0x1014c                                   |             goto label_3;
                                                             |         }
                                                             | label_0:
    0x00010140 mov r0, 0                                     |         r0 = 0;
                                                             |     }
    0x00010144 add sp, sp, 0x54                              |     
    0x00010148 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_3:
    0x0001014c tst r1, 2                                     |     
                                                             |     if ((r1 & 2) != 0) {
    0x00010150 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if ((r1 & 2) == 0) {
    0x00010154 movne r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00010158 str r3, [sp, 8]                               |     var_8h = r3;
    0x0001015c ldr r3, [pc, 0x248]                           |     r3 = *(0x103a8);
    0x00010160 mov r5, r1                                    |     r5 = r1;
    0x00010164 ldr r7, [r6, r3]                              |     r7 = *((r6 + r3));
    0x00010168 ldr r3, [r7]                                  |     r3 = *(r7);
    0x0001016c tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00010170 beq 0x101bc                                   |         
    0x00010174 ldr r3, [pc, 0x234]                           |         r3 = *(0x103ac);
    0x00010178 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0001017c ldr sb, [r3]                                  |         sb = *(0x103ac);
    0x00010180 bl 0x8204                                     |         getpid ();
    0x00010184 ldr r3, [pc, 0x228]                           |         r3 = *(0x103b0);
    0x00010188 ldr r1, [pc, 0x228]                           |         r1 = *(0x103b4);
    0x0001018c add r3, pc, r3                                |         r3 = pc + r3;
    0x00010190 str r3, [sp]                                  |         *(sp) = r3;
    0x00010194 ldr r3, [pc, 0x220]                           |         r3 = *(0x103b8);
    0x00010198 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001019c add r3, pc, r3                                |         r3 = pc + r3;
    0x000101a0 mov r2, r0                                    |         r2 = r0;
    0x000101a4 mov r0, sb                                    |         r0 = sb;
    0x000101a8 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000101ac ldr r1, [pc, 0x20c]                           |         r1 = *(0x103bc);
    0x000101b0 mov r0, r4                                    |         r0 = r4;
    0x000101b4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000101b8 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000101bc ldr r1, [sp, 8]                               |     r1 = var_8h;
    0x000101c0 add r0, sp, 0x2c                              |     r0 += var_2ch;
    0x000101c4 bl 0x8588                                     |     fcn_00008588 ();
    0x000101c8 tst r5, 4                                     |     
                                                             |     if ((r5 & 4) != 0) {
    0x000101cc beq 0x101e0                                   |         
    0x000101d0 mov r0, r4                                    |         r0 = r4;
    0x000101d4 bl 0xf714                                     |         r0 = fcn_0000f714 (r0);
    0x000101d8 cmp r0, 0                                     |         
    0x000101dc biceq r5, r5, 4                               |         __asm ("biceq r5, r5, 4");
                                                             |     }
    0x000101e0 ldr r3, [pc, 0x1dc]                           |     r3 = *(0x103c0);
    0x000101e4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000101e8 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x000101ec ldr r3, [pc, 0x1d4]                           |     r3 = *(0x103c4);
    0x000101f0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000101f4 str r3, [sp, 0x14]                            |     format = r3;
    0x000101f8 ldr r3, [pc, 0x1cc]                           |     r3 = *(0x103c8);
    0x000101fc add r3, pc, r3                                |     r3 = pc + r3;
    0x00010200 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00010204 b 0x10234                                     |     
                                                             |     while (r0 == 0) {
    0x00010208 add sb, sp, 0x38                              |         sb += var_38h;
    0x0001020c ldr r1, [sp, 8]                               |         r1 = var_8h;
    0x00010210 mov r0, sb                                    |         r0 = sb;
    0x00010214 bl 0x8588                                     |         fcn_00008588 ();
    0x00010218 add sl, sp, 0x24                              |         sl += var_24h;
                                                             | label_2:
    0x0001021c mov r2, sl                                    |         r2 = sl;
    0x00010220 mov r1, sb                                    |         r1 = sb;
    0x00010224 mov r0, r4                                    |         r0 = r4;
    0x00010228 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x0001022c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010230 beq 0x10250                                   |             goto label_4;
                                                             |         }
                                                             | label_1:
    0x00010234 add r2, sp, 0x20                              |         r2 += var_20h;
    0x00010238 add r1, sp, 0x2c                              |         r1 += var_2ch;
    0x0001023c mov r0, r4                                    |         r0 = r4;
    0x00010240 bl 0x7fa0                                     |         r0 = fcn_00007fa0 ();
    0x00010244 cmp r0, 0                                     |         
    0x00010248 beq 0x10208                                   |         
                                                             |     }
    0x0001024c b 0x10140                                     |     goto label_0;
                                                             | label_4:
    0x00010250 ldr r2, [sp, 0x20]                            |     r2 = var_20h;
    0x00010254 ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x00010258 cmp r2, r1                                    |     
                                                             |     if (r2 == r1) {
    0x0001025c beq 0x10234                                   |         goto label_1;
                                                             |     }
    0x00010260 mov r0, r4                                    |     r0 = r4;
    0x00010264 blx r8                                        |     r0 = uint32_t (*r8)(uint32_t) (r0);
    0x00010268 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001026c bne 0x1021c                                   |         goto label_2;
                                                             |     }
    0x00010270 tst r5, 4                                     |     
                                                             |     if ((r5 & 4) == 0) {
    0x00010274 beq 0x10330                                   |         goto label_5;
                                                             |     }
    0x00010278 ldr r0, [sp, 0x20]                            |     r0 = var_20h;
    0x0001027c bl 0x8c24                                     |     r0 = fcn_00008c24 ();
    0x00010280 mov sl, r0                                    |     sl = r0;
    0x00010284 ldr r0, [sp, 0x20]                            |     r0 = var_20h;
    0x00010288 bl 0x8b34                                     |     fcn_00008b34 ();
    0x0001028c ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x00010290 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x00010294 cmp r2, r3                                    |     
    0x00010298 mov fp, r0                                    |     
                                                             |     if (r2 == r3) {
    0x0001029c beq 0x10330                                   |         goto label_5;
                                                             |     }
    0x000102a0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x000102a4 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000102a8 beq 0x102fc                                   |         
    0x000102ac ldr r3, [pc, 0xfc]                            |         r3 = *(0x103ac);
    0x000102b0 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x000102b4 ldr sb, [r3]                                  |         sb = *(0x103ac);
    0x000102b8 bl 0x8204                                     |         getpid ();
    0x000102bc ldr r3, [pc, 0x10c]                           |         r3 = *(0x103cc);
    0x000102c0 ldr r1, [pc, 0x10c]                           |         r1 = *(0x103d0);
    0x000102c4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000102c8 str r3, [sp]                                  |         *(sp) = r3;
    0x000102cc ldr r3, [pc, 0x104]                           |         r3 = *(0x103d4);
    0x000102d0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000102d4 add r3, pc, r3                                |         r3 = pc + r3;
    0x000102d8 mov r2, r0                                    |         r2 = r0;
    0x000102dc mov r0, sb                                    |         r0 = sb;
    0x000102e0 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000102e4 ldr r1, [pc, 0xf0]                            |         r1 = *(0x103d8);
    0x000102e8 mov r3, fp                                    |         r3 = fp;
    0x000102ec mov r2, sl                                    |         r2 = sl;
    0x000102f0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000102f4 mov r0, r4                                    |         r0 = r4;
    0x000102f8 bl 0xf520                                     |         fcn_0000f520 (r0);
                                                             |     }
    0x000102fc add sb, sp, 0x44                              |     sb += var_44h;
    0x00010300 mov r1, 0                                     |     r1 = 0;
    0x00010304 mov r0, sb                                    |     r0 = sb;
    0x00010308 bl 0x8588                                     |     fcn_00008588 ();
    0x0001030c add r3, sp, 0x28                              |     r3 += var_28h;
                                                             |     do {
    0x00010310 mov r2, r3                                    |         r2 = r3;
    0x00010314 mov r1, sb                                    |         r1 = sb;
    0x00010318 mov r0, r4                                    |         r0 = r4;
    0x0001031c str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00010320 bl 0x7fa0                                     |         fcn_00007fa0 ();
    0x00010324 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00010328 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001032c beq 0x10394                                   |             
                                                             | label_5:
    0x00010330 ldr r3, [r7]                                  |             r3 = *(r7);
    0x00010334 tst r3, 0x20                                  |             
                                                             |             if ((r3 & 0x20) != 0) {
    0x00010338 beq 0x10384                                   |                 
    0x0001033c ldr r3, [pc, 0x6c]                            |                 r3 = *(0x103ac);
    0x00010340 ldr r3, [r6, r3]                              |                 r3 = *((r6 + r3));
    0x00010344 ldr sb, [r3]                                  |                 sb = *(0x103ac);
    0x00010348 bl 0x8204                                     |                 getpid ();
    0x0001034c ldr r3, [sp, 0x18]                            |                 r3 = var_18h;
    0x00010350 ldr r1, [sp, 0x14]                            |                 r1 = format;
    0x00010354 str r3, [sp]                                  |                 *(sp) = r3;
    0x00010358 ldr r3, [sp, 0x10]                            |                 r3 = var_10h;
    0x0001035c mov r2, r0                                    |                 r2 = r0;
    0x00010360 mov r0, sb                                    |                 r0 = sb;
    0x00010364 bl 0x8798                                     |                 fprintf (r0, r1, r2, r3)
    0x00010368 ldr r0, [sp, 0x20]                            |                 r0 = var_20h;
    0x0001036c bl 0x81d4                                     |                 fcn_000081d4 ();
    0x00010370 ldr r1, [pc, 0x68]                            |                 r1 = *(0x103dc);
    0x00010374 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00010378 mov r2, r0                                    |                 r2 = r0;
    0x0001037c mov r0, r4                                    |                 r0 = r4;
    0x00010380 bl 0xf520                                     |                 fcn_0000f520 (r0);
                                                             |             }
    0x00010384 ldr r1, [sp, 0x20]                            |             r1 = var_20h;
    0x00010388 mov r0, r4                                    |             r0 = r4;
    0x0001038c bl 0x8288                                     |             fcn_00008288 ();
    0x00010390 b 0x10234                                     |             goto label_1;
                                                             |         }
    0x00010394 ldr r2, [sp, 0x28]                            |         r2 = var_28h;
    0x00010398 ldr r1, [r2, 0x10]                            |         r1 = *((r2 + 0x10));
    0x0001039c cmp sl, r1                                    |         
                                                             |         if (sl != r1) {
    0x000103a0 streq fp, [r2, 0x10]                          |             *((r2 + 0x10)) = fp;
                                                             |         }
    0x000103a4 b 0x10310                                     |         
                                                             |     } 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/lib/libmount.so.1.1.0 @ 0x16ba0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mnt_table_write_file ()                  | void mnt_table_write_file (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_1ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00016ba0 ldr r3, [r0, 0xc]                         |     r3 = *((r0 + 0xc));
    0x00016ba4 push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x00016ba8 ldr r7, [pc, 0x128]                       |     r7 = *(0x16cd4);
    0x00016bac cmp r3, 0                                 |     
    0x00016bb0 add r7, pc, r7                            |     r7 = pc + r7;
    0x00016bb4 sub sp, sp, 0x1c                          |     
    0x00016bb8 mov r4, r0                                |     r4 = r0;
    0x00016bbc mov r6, r1                                |     r6 = r1;
                                                         |     if (r3 != 0) {
    0x00016bc0 beq 0x16be0                               |         
    0x00016bc4 bl 0x9014                                 |         r0 = fcn_00009014 ();
    0x00016bc8 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x00016bcc beq 0x16be0                               |             goto label_0;
                                                         |         }
    0x00016bd0 mov r0, r4                                |         r0 = r4;
    0x00016bd4 bl 0x9014                                 |         fcn_00009014 ();
    0x00016bd8 mov r1, r6                                |         r1 = r6;
    0x00016bdc bl 0x90c8                                 |         fputs (r0, r1);
                                                         |     }
                                                         | label_0:
    0x00016be0 add r8, sp, 0xc                           |     r8 += var_ch;
    0x00016be4 mov r1, 0                                 |     r1 = 0;
    0x00016be8 mov r0, r8                                |     r0 = r8;
    0x00016bec bl 0x8588                                 |     fcn_00008588 ();
    0x00016bf0 add sb, sp, 8                             |     sb += var_8h;
                                                         |     do {
    0x00016bf4 mov r2, sb                                |         r2 = sb;
    0x00016bf8 mov r1, r8                                |         r1 = r8;
    0x00016bfc mov r0, r4                                |         r0 = r4;
    0x00016c00 bl 0x7fa0                                 |         r0 = fcn_00007fa0 ();
    0x00016c04 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00016c08 beq 0x16cb8                               |             
    0x00016c0c ldr r3, [r4, 0xc]                         |             r3 = *((r4 + 0xc));
    0x00016c10 cmp r3, 0                                 |             
                                                         |             if (r3 != 0) {
    0x00016c14 beq 0x16c38                               |                 
    0x00016c18 mov r0, r4                                |                 r0 = r4;
    0x00016c1c bl 0x8714                                 |                 r0 = fcn_00008714 ();
    0x00016c20 cmp r0, 0                                 |                 
                                                         |                 if (r0 == 0) {
    0x00016c24 beq 0x16c38                               |                     goto label_1;
                                                         |                 }
    0x00016c28 mov r0, r4                                |                 r0 = r4;
    0x00016c2c bl 0x8714                                 |                 fcn_00008714 ();
    0x00016c30 mov r1, r6                                |                 r1 = r6;
    0x00016c34 bl 0x90c8                                 |                 fputs (r0, r1);
                                                         |             }
                                                         | label_1:
    0x00016c38 mov r0, r6                                |             r0 = r6;
    0x00016c3c bl 0x84f8                                 |             r0 = fflush (r0);
    0x00016c40 subs r5, r0, 0                            |             r5 = r0 - 0;
                                                         |             if (r5 != r0) {
    0x00016c44 beq 0x16c54                               |                 
    0x00016c48 bl 0x8f6c                                 |                 r0 = errno_location ();
    0x00016c4c ldr r5, [r0]                              |                 r5 = *(r0);
    0x00016c50 rsb r5, r5, 0                             |                 r5 -= ;
                                                         |             }
    0x00016c54 ldr r3, [pc, 0x80]                        |             
    0x00016c58 ldr r3, [r7, r3]                          |             r3 = *((r7 + r3));
    0x00016c5c ldr r3, [r3]                              |             r3 = "ot";
    0x00016c60 tst r3, 0x20                              |             
                                                         |             if ((r3 & 0x20) == 0) {
    0x00016c64 beq 0x16ccc                               |                 goto label_2;
                                                         |             }
    0x00016c68 ldr r3, [pc, 0x70]                        |             r3 = *(0x16cdc);
    0x00016c6c ldr r3, [r7, r3]                          |             r3 = *((r7 + r3));
    0x00016c70 ldr r6, [r3]                              |             r6 = *(0x16cdc);
    0x00016c74 bl 0x8204                                 |             getpid ();
    0x00016c78 ldr r3, [pc, 0x64]                        |             r3 = *(0x16ce0);
    0x00016c7c ldr r1, [pc, 0x64]                        |             r1 = *(0x16ce4);
    0x00016c80 add r3, pc, r3                            |             r3 = pc + r3;
    0x00016c84 str r3, [sp]                              |             *(sp) = r3;
    0x00016c88 ldr r3, [pc, 0x5c]                        |             r3 = *(0x16ce8);
    0x00016c8c add r1, pc, r1                            |             r1 = pc + r1;
    0x00016c90 add r3, pc, r3                            |             r3 = pc + r3;
    0x00016c94 mov r2, r0                                |             r2 = r0;
    0x00016c98 mov r0, r6                                |             r0 = r6;
    0x00016c9c bl 0x8798                                 |             fprintf (r0, r1, r2, r3)
    0x00016ca0 ldr r1, [pc, 0x48]                        |             r1 = *(0x16cec);
    0x00016ca4 mov r2, r5                                |             r2 = r5;
    0x00016ca8 add r1, pc, r1                            |             r1 = pc + r1;
    0x00016cac mov r0, r4                                |             r0 = r4;
    0x00016cb0 bl 0x15798                                |             fcn_00015798 (r0);
    0x00016cb4 b 0x16ccc                                 |             
                                                         |         } else {
    0x00016cb8 ldr r1, [sp, 8]                           |             r1 = var_8h;
    0x00016cbc mov r0, r6                                |             r0 = r6;
    0x00016cc0 bl 0x158e4                                |             r0 = fcn_000158e4 (r0, r1);
    0x00016cc4 subs r5, r0, 0                            |             r5 = r0 - 0;
    0x00016cc8 beq 0x16bf4                               |             
                                                         |         } while (r5 == r0);
                                                         |     }
                                                         | label_2:
    0x00016ccc mov r0, r5                                |     r0 = r5;
    0x00016cd0 add sp, sp, 0x1c                          |     
    0x00016cd4 pop {r4, r5, r6, r7, r8, sb, 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/lib/libmount.so.1.1.0 @ 0xcd74 */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                 |  
    ; (fcn) sym.mnt_unlock_file ()               | void mnt_unlock_file (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_8h_2;
                                                 |     int32_t var_68h;
                                                 |     int32_t var_68h_2;
                                                 |     int32_t var_70h;
                                                 |     int32_t var_70h_2;
                                                 |     int32_t var_d0h;
                                                 |     int32_t var_d0h_2;
                                                 |     int32_t var_dch;
                                                 |     r0 = arg1;
    0x0000cd74 push {r4, r5, r6, r7, lr}         |     
    0x0000cd78 ldr r5, [pc, 0x29c]               |     r5 = *(0xd018);
    0x0000cd7c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0000cd80 add r5, pc, r5                    |     r5 = pc + r5;
    0x0000cd84 sub sp, sp, 0xdc                  |     
                                                 |     if (r4 == r0) {
    0x0000cd88 beq 0xcefc                        |         goto label_1;
                                                 |     }
    0x0000cd8c ldr r3, [pc, 0x28c]               |     r3 = *(0xd01c);
    0x0000cd90 ldr r6, [r5, r3]                  |     r6 = *((r5 + r3));
    0x0000cd94 ldr r3, [r6]                      |     r3 = *(r6);
    0x0000cd98 tst r3, 0x10                      |     
                                                 |     if ((r3 & 0x10) == 0) {
    0x0000cd9c beq 0xce04                        |         goto label_2;
                                                 |     }
    0x0000cda0 ldr r3, [pc, 0x27c]               |     r3 = *(0xd020);
    0x0000cda4 ldr r3, [r5, r3]                  |     r3 = *((r5 + r3));
    0x0000cda8 ldr r7, [r3]                      |     r7 = *(0xd020);
    0x0000cdac bl 0x8204                         |     getpid ();
    0x0000cdb0 ldr r3, [pc, 0x270]               |     r3 = *(0xd024);
    0x0000cdb4 ldr r1, [pc, 0x270]               |     r1 = *(0xd028);
    0x0000cdb8 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000cdbc str r3, [sp]                      |     *(sp) = r3;
    0x0000cdc0 ldr r3, [pc, 0x268]               |     r3 = *(0xd02c);
    0x0000cdc4 add r1, pc, r1                    |     r1 = pc + r1;
    0x0000cdc8 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000cdcc mov r2, r0                        |     r2 = r0;
    0x0000cdd0 mov r0, r7                        |     r0 = r7;
    0x0000cdd4 bl 0x8798                         |     r0 = fprintf (r0, r1, r2, r3)
    0x0000cdd8 bl 0x8204                         |     getpid ();
    0x0000cddc ldrb r3, [r4, 0xc]                |     r3 = *((r4 + 0xc));
    0x0000cde0 tst r3, 1                         |     
    0x0000cde4 mov r2, r0                        |     r2 = r0;
                                                 |     if ((r3 & 1) == 0) {
    0x0000cde8 beq 0xcf04                        |         goto label_3;
                                                 |     }
    0x0000cdec ldr r3, [pc, 0x240]               |     r3 = *(0xd030);
    0x0000cdf0 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     do {
    0x0000cdf4 ldr r1, [pc, 0x23c]               |         r1 = *(0xd034);
    0x0000cdf8 mov r0, r4                        |         r0 = r4;
    0x0000cdfc add r1, pc, r1                    |         r1 = pc + r1;
    0x0000ce00 bl 0xc708                         |         fcn_0000c708 (r0);
                                                 | label_2:
    0x0000ce04 ldrb r3, [r4, 0xc]                |         r3 = *((r4 + 0xc));
    0x0000ce08 tst r3, 4                         |         
                                                 |         if ((r3 & 4) == 0) {
    0x0000ce0c beq 0xcf10                        |             goto label_4;
                                                 |         }
    0x0000ce10 ldr r3, [r4, 8]                   |         r3 = *((r4 + 8));
    0x0000ce14 cmp r3, 0                         |         
                                                 |         if (r3 >= 0) {
    0x0000ce18 blt 0xce7c                        |             
    0x0000ce1c ldr r3, [r6]                      |             r3 = *(r6);
    0x0000ce20 tst r3, 0x10                      |             
                                                 |             if ((r3 & 0x10) != 0) {
    0x0000ce24 beq 0xce74                        |                 
    0x0000ce28 ldr r3, [pc, 0x1f4]               |                 r3 = *(0xd020);
    0x0000ce2c ldr r3, [r5, r3]                  |                 r3 = *((r5 + r3));
    0x0000ce30 ldr r7, [r3]                      |                 r7 = *(0xd020);
    0x0000ce34 bl 0x8204                         |                 getpid ();
    0x0000ce38 ldr r3, [pc, 0x1fc]               |                 r3 = *(0xd038);
    0x0000ce3c ldr r1, [pc, 0x1fc]               |                 r1 = *(0xd03c);
    0x0000ce40 add r3, pc, r3                    |                 r3 = pc + r3;
    0x0000ce44 str r3, [sp]                      |                 *(sp) = r3;
    0x0000ce48 ldr r3, [pc, 0x1f4]               |                 r3 = *(0xd040);
    0x0000ce4c add r1, pc, r1                    |                 r1 = pc + r1;
    0x0000ce50 add r3, pc, r3                    |                 r3 = pc + r3;
    0x0000ce54 mov r2, r0                        |                 r2 = r0;
    0x0000ce58 mov r0, r7                        |                 r0 = r7;
    0x0000ce5c bl 0x8798                         |                 fprintf (r0, r1, r2, r3)
    0x0000ce60 ldr r1, [pc, 0x1e0]               |                 r1 = *(0xd044);
    0x0000ce64 ldr r2, [r4]                      |                 r2 = *(r4);
    0x0000ce68 add r1, pc, r1                    |                 r1 = pc + r1;
    0x0000ce6c mov r0, r4                        |                 r0 = r4;
    0x0000ce70 bl 0xc708                         |                 fcn_0000c708 (r0);
                                                 |             }
    0x0000ce74 ldr r0, [r4, 8]                   |             r0 = *((r4 + 8));
    0x0000ce78 bl 0x917c                         |             close (r0);
                                                 |         }
                                                 | label_0:
    0x0000ce7c ldrb r3, [r4, 0xc]                |         r3 = *((r4 + 0xc));
    0x0000ce80 mvn r2, 0                         |         r2 = ~0;
    0x0000ce84 bic r3, r3, 1                     |         r3 = BIT_MASK (r3, 1);
    0x0000ce88 tst r3, 2                         |         
    0x0000ce8c strb r3, [r4, 0xc]                |         *((r4 + 0xc)) = r3;
    0x0000ce90 str r2, [r4, 8]                   |         *((r4 + 8)) = r2;
                                                 |         if ((r3 & 2) != 0) {
    0x0000ce94 beq 0xcefc                        |             
    0x0000ce98 ldr r3, [r6]                      |             r3 = *(r6);
    0x0000ce9c tst r3, 0x10                      |             
                                                 |             if ((r3 & 0x10) != 0) {
    0x0000cea0 beq 0xceec                        |                 
    0x0000cea4 ldr r3, [pc, 0x178]               |                 r3 = *(0xd020);
    0x0000cea8 ldr r3, [r5, r3]                  |                 r3 = *((r5 + r3));
    0x0000ceac ldr r5, [r3]                      |                 r5 = *(0xd020);
    0x0000ceb0 bl 0x8204                         |                 getpid ();
    0x0000ceb4 ldr r3, [pc, 0x190]               |                 r3 = *(0xd048);
    0x0000ceb8 ldr r1, [pc, 0x190]               |                 r1 = *(0xd04c);
    0x0000cebc add r3, pc, r3                    |                 r3 = pc + r3;
    0x0000cec0 str r3, [sp]                      |                 *(sp) = r3;
    0x0000cec4 ldr r3, [pc, 0x188]               |                 r3 = *(0xd050);
    0x0000cec8 add r1, pc, r1                    |                 r1 = pc + r1;
    0x0000cecc add r3, pc, r3                    |                 r3 = pc + r3;
    0x0000ced0 mov r2, r0                        |                 r2 = r0;
    0x0000ced4 mov r0, r5                        |                 r0 = r5;
    0x0000ced8 bl 0x8798                         |                 fprintf (r0, r1, r2, r3)
    0x0000cedc ldr r1, [pc, 0x174]               |                 r1 = *(0xd054);
    0x0000cee0 mov r0, r4                        |                 r0 = r4;
    0x0000cee4 add r1, pc, r1                    |                 r1 = pc + r1;
    0x0000cee8 bl 0xc708                         |                 fcn_0000c708 (r0);
                                                 |             }
    0x0000ceec mov r2, 0                         |             r2 = 0;
    0x0000cef0 add r1, r4, 0x10                  |             r1 = r4 + 0x10;
    0x0000cef4 mov r0, 2                         |             r0 = 2;
    0x0000cef8 bl 0x91d0                         |             sigprocmask ();
                                                 |         }
                                                 | label_1:
    0x0000cefc add sp, sp, 0xdc                  |         
    0x0000cf00 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_3:
    0x0000cf04 ldr r3, [pc, 0x150]               |         r3 = *(0xd058);
    0x0000cf08 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000cf0c b 0xcdf4                          |         
                                                 |     } while (1);
                                                 | label_4:
    0x0000cf10 tst r3, 1                         |     
                                                 |     if ((r3 & 1) == 0) {
    0x0000cf14 bne 0xcf84                        |         
    0x0000cf18 ldr r0, [r4]                      |         r0 = *(r4);
    0x0000cf1c cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x0000cf20 beq 0xcf84                        |             goto label_5;
                                                 |         }
    0x0000cf24 ldr r3, [r4, 4]                   |         r3 = *((r4 + 4));
    0x0000cf28 cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x0000cf2c beq 0xcf84                        |             goto label_5;
                                                 |         }
    0x0000cf30 add r1, sp, 8                     |         r1 += var_8h;
    0x0000cf34 bl 0x8060                         |         r0 = stat64 ();
    0x0000cf38 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0000cf3c bne 0xcf84                        |             goto label_5;
                                                 |         }
    0x0000cf40 add r1, sp, 0x70                  |         r1 += var_70h;
    0x0000cf44 ldr r0, [r4, 4]                   |         r0 = *((r4 + 4));
    0x0000cf48 bl 0x8060                         |         r0 = stat64 ();
    0x0000cf4c cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0000cf50 bne 0xcf84                        |             goto label_5;
                                                 |         }
    0x0000cf54 ldrd r0, r1, [sp, 8]              |         __asm ("ldrd r0, r1, [var_8h]");
    0x0000cf58 ldrd r2, r3, [sp, 0x70]           |         __asm ("ldrd r2, r3, [var_70h]");
    0x0000cf5c cmp r1, r3                        |         
    0x0000cf60 cmpeq r0, r2                      |         __asm ("cmpeq r0, r2");
                                                 |         if (r1 != r3) {
    0x0000cf64 bne 0xcf84                        |             goto label_5;
                                                 |         }
    0x0000cf68 ldrd r2, r3, [sp, 0xd0]           |         __asm ("ldrd r2, r3, [var_d0h]");
    0x0000cf6c ldrd r0, r1, [sp, 0x68]           |         __asm ("ldrd r0, r1, [var_68h]");
    0x0000cf70 cmp r1, r3                        |         
    0x0000cf74 cmpeq r0, r2                      |         __asm ("cmpeq r0, r2");
                                                 |         if (r1 != r3) {
    0x0000cf78 ldrbeq r3, [r4, 0xc]              |             r3 = *((r4 + 0xc));
                                                 |         }
                                                 |         if (r1 != r3) {
    0x0000cf7c orreq r3, r3, 1                   |             r3 |= 1;
                                                 |         }
                                                 |         if (r1 == r3) {
    0x0000cf80 strbeq r3, [r4, 0xc]              |             *((r4 + 0xc)) = r3;
                                                 |             goto label_5;
                                                 |         }
                                                 |     }
                                                 | label_5:
    0x0000cf84 ldr r0, [r4, 4]                   |     r0 = *((r4 + 4));
    0x0000cf88 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0000cf8c beq 0xcf94                        |         
    0x0000cf90 bl 0x8978                         |         unlink (r0);
                                                 |     }
    0x0000cf94 ldr r0, [r4, 8]                   |     r0 = *((r4 + 8));
    0x0000cf98 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0000cf9c blt 0xcfa4                        |         
    0x0000cfa0 bl 0x917c                         |         close (r0);
                                                 |     }
    0x0000cfa4 ldrb r3, [r4, 0xc]                |     r3 = *((r4 + 0xc));
    0x0000cfa8 tst r3, 1                         |     
                                                 |     if ((r3 & 1) == 0) {
    0x0000cfac beq 0xce7c                        |         goto label_0;
                                                 |     }
    0x0000cfb0 ldr r0, [r4]                      |     r0 = *(r4);
    0x0000cfb4 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000cfb8 beq 0xce7c                        |         goto label_0;
                                                 |     }
    0x0000cfbc bl 0x8978                         |     unlink (r0);
    0x0000cfc0 ldr r3, [r6]                      |     r3 = *(r6);
    0x0000cfc4 tst r3, 0x10                      |     
                                                 |     if ((r3 & 0x10) == 0) {
    0x0000cfc8 beq 0xce7c                        |         goto label_0;
                                                 |     }
    0x0000cfcc ldr r3, [pc, 0x50]                |     r3 = *(0xd020);
    0x0000cfd0 ldr r3, [r5, r3]                  |     r3 = *((r5 + r3));
    0x0000cfd4 ldr r7, [r3]                      |     r7 = *(0xd020);
    0x0000cfd8 bl 0x8204                         |     getpid ();
    0x0000cfdc ldr r3, [pc, 0x7c]                |     r3 = *(0xd05c);
    0x0000cfe0 ldr r1, [pc, 0x7c]                |     r1 = *(0xd060);
    0x0000cfe4 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000cfe8 str r3, [sp]                      |     *(sp) = r3;
    0x0000cfec ldr r3, [pc, 0x74]                |     r3 = *(0xd064);
    0x0000cff0 add r1, pc, r1                    |     r1 = pc + r1;
    0x0000cff4 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000cff8 mov r2, r0                        |     r2 = r0;
    0x0000cffc mov r0, r7                        |     r0 = r7;
    0x0000d000 bl 0x8798                         |     fprintf (r0, r1, r2, r3)
    0x0000d004 ldr r1, [pc, 0x60]                |     r1 = *(0xd068);
    0x0000d008 ldr r2, [r4]                      |     r2 = *(r4);
    0x0000d00c add r1, pc, r1                    |     r1 = pc + r1;
    0x0000d010 mov r0, r4                        |     r0 = r4;
    0x0000d014 bl 0xc708                         |     fcn_0000c708 (r0);
    0x0000d018 b 0xce7c                          |     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/lib/libmount.so.1.1.0 @ 0x16340 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_update_set_fs ()                         | void mnt_update_set_fs (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     void * ptr;
                                                             |     void * var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00016340 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00016344 ldr r7, [pc, 0x65c]                           |     r7 = *(0x169a4);
    0x00016348 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0001634c add r7, pc, r7                                |     r7 = pc + r7;
    0x00016350 sub sp, sp, 0x1c                              |     
    0x00016354 bne 0x16368                                   |     
                                                             |     while (sb != 0) {
                                                             | label_1:
    0x00016358 mvn sl, 0x15                                  |         sl = ~0x15;
                                                             | label_0:
    0x0001635c mov r0, sl                                    |         r0 = sl;
    0x00016360 add sp, sp, 0x1c                              |         
    0x00016364 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00016368 mov r5, r3                                    |         r5 = r3;
    0x0001636c ands r3, r1, 0x2000                           |         r3 = r1 & 0x2000;
    0x00016370 mov sb, r2                                    |         sb = r2;
    0x00016374 mov r6, r1                                    |         r6 = r1;
    0x00016378 str r3, [sp, 0xc]                             |         var_ch = r3;
                                                             |         if (r3 != r1) {
    0x0001637c bne 0x1653c                                   |             goto label_9;
                                                             |         }
                                                             | label_2:
    0x00016380 cmp sb, 0                                     |         
    0x00016384 cmpne r5, 0                                   |         __asm ("cmpne r5, 0");
    0x00016388 bne 0x16358                                   |         
                                                             |     }
    0x0001638c ldr r3, [pc, 0x618]                           |     r3 = "message__s_";
    0x00016390 ldr r8, [r7, r3]                              |     r8 = *((r7 + r3));
    0x00016394 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00016398 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x0001639c beq 0x163f0                                   |         
    0x000163a0 ldr r3, [pc, 0x608]                           |         r3 = *(0x169ac);
    0x000163a4 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x000163a8 ldr sl, [r3]                                  |         sl = *(0x169ac);
    0x000163ac bl 0x8204                                     |         getpid ();
    0x000163b0 ldr r3, [pc, 0x5fc]                           |         r3 = *(0x169b0);
    0x000163b4 ldr r1, [pc, 0x5fc]                           |         r1 = *(0x169b4);
    0x000163b8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000163bc str r3, [sp]                                  |         *(sp) = r3;
    0x000163c0 ldr r3, [pc, 0x5f4]                           |         r3 = *(0x169b8);
    0x000163c4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000163c8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000163cc mov r2, r0                                    |         r2 = r0;
    0x000163d0 mov r0, sl                                    |         r0 = sl;
    0x000163d4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000163d8 ldr r1, [pc, 0x5e0]                           |         r1 = *(0x169bc);
    0x000163dc mov r3, r6                                    |         r3 = r6;
    0x000163e0 mov r2, sb                                    |         r2 = sb;
    0x000163e4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000163e8 mov r0, r4                                    |         r0 = r4;
    0x000163ec bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x000163f0 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x000163f4 beq 0x1649c                                   |         
    0x000163f8 ldr r3, [r8]                                  |         r3 = *(r8);
    0x000163fc tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x00016400 beq 0x1644c                                   |             
    0x00016404 ldr r3, [pc, 0x5a4]                           |             r3 = *(0x169ac);
    0x00016408 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001640c ldr sl, [r3]                                  |             sl = *(0x169ac);
    0x00016410 bl 0x8204                                     |             getpid ();
    0x00016414 ldr r3, [pc, 0x5a8]                           |             r3 = *(0x169c0);
    0x00016418 ldr r1, [pc, 0x5a8]                           |             r1 = *(0x169c4);
    0x0001641c add r3, pc, r3                                |             r3 = pc + r3;
    0x00016420 str r3, [sp]                                  |             *(sp) = r3;
    0x00016424 ldr r3, [pc, 0x5a0]                           |             r3 = *(0x169c8);
    0x00016428 add r1, pc, r1                                |             r1 = pc + r1;
    0x0001642c add r3, pc, r3                                |             r3 = pc + r3;
    0x00016430 mov r2, r0                                    |             r2 = r0;
    0x00016434 mov r0, sl                                    |             r0 = sl;
    0x00016438 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x0001643c ldr r1, [pc, 0x58c]                           |             r1 = *(0x169cc);
    0x00016440 mov r0, r4                                    |             r0 = r4;
    0x00016444 add r1, pc, r1                                |             r1 = pc + r1;
    0x00016448 bl 0x15798                                    |             fcn_00015798 (r0);
                                                             |         }
    0x0001644c ldr r3, [r8]                                  |         r3 = *(r8);
    0x00016450 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) == 0) {
    0x00016454 beq 0x1649c                                   |             goto label_10;
                                                             |         }
    0x00016458 ldr r3, [pc, 0x550]                           |         r3 = *(0x169ac);
    0x0001645c ldr sl, [r7, r3]                              |         sl = *((r7 + r3));
    0x00016460 ldr fp, [sl]                                  |         fp = *(sl);
    0x00016464 bl 0x8204                                     |         getpid ();
    0x00016468 ldr r3, [pc, 0x564]                           |         r3 = *(0x169d0);
    0x0001646c ldr r1, [pc, 0x564]                           |         r1 = *(0x169d4);
    0x00016470 add r3, pc, r3                                |         r3 = pc + r3;
    0x00016474 str r3, [sp]                                  |         *(sp) = r3;
    0x00016478 ldr r3, [pc, 0x55c]                           |         r3 = *(0x169d8);
    0x0001647c add r1, pc, r1                                |         r1 = pc + r1;
    0x00016480 add r3, pc, r3                                |         r3 = pc + r3;
    0x00016484 mov r2, r0                                    |         r2 = r0;
    0x00016488 mov r0, fp                                    |         r0 = fp;
    0x0001648c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00016490 ldr r1, [sl]                                  |         r1 = *(sl);
    0x00016494 mov r0, r5                                    |         r0 = r5;
    0x00016498 bl 0x86f0                                     |         fcn_000086f0 ();
                                                             |     }
                                                             | label_10:
    0x0001649c ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000164a0 bl 0x8960                                     |     fcn_00008960 ();
    0x000164a4 ldr r0, [r4]                                  |     r0 = *(r4);
    0x000164a8 bl 0x91c4                                     |     free (r0);
    0x000164ac mov r3, 0                                     |     r3 = 0;
    0x000164b0 ands r2, r6, 0x1e0000                         |     r2 = r6 & 0x1e0000;
    0x000164b4 str r3, [r4, 0x14]                            |     *((r4 + 0x14)) = r3;
    0x000164b8 str r3, [r4, 4]                               |     *((r4 + 4)) = r3;
    0x000164bc str r3, [r4]                                  |     *(r4) = r3;
                                                             |     if (r2 == r6) {
    0x000164c0 strne r3, [r4, 0xc]                           |         *((r4 + 0xc)) = r3;
                                                             |     }
                                                             |     if (r2 != r6) {
    0x000164c4 bne 0x166d4                                   |         goto label_3;
                                                             |     }
    0x000164c8 str r6, [r4, 0xc]                             |     *((r4 + 0xc)) = r6;
    0x000164cc mov r1, r2                                    |     r1 = r2;
    0x000164d0 mov r0, r4                                    |     r0 = r4;
    0x000164d4 bl 0x16278                                    |     r0 = fcn_00016278 (r0, r1);
    0x000164d8 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl == r0) {
    0x000164dc beq 0x16558                                   |         goto label_11;
                                                             |     }
    0x000164e0 ldr r3, [r8]                                  |     r3 = *(r8);
    0x000164e4 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) == 0) {
    0x000164e8 beq 0x1635c                                   |         goto label_0;
                                                             |     }
    0x000164ec ldr r3, [pc, 0x4bc]                           |     r3 = *(0x169ac);
    0x000164f0 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x000164f4 ldr r5, [r3]                                  |     r5 = *(0x169ac);
    0x000164f8 bl 0x8204                                     |     getpid ();
    0x000164fc ldr r3, [pc, 0x4dc]                           |     r3 = *(0x169dc);
    0x00016500 ldr r1, [pc, 0x4dc]                           |     r1 = *(0x169e0);
    0x00016504 add r3, pc, r3                                |     r3 = pc + r3;
    0x00016508 str r3, [sp]                                  |     *(sp) = r3;
    0x0001650c ldr r3, [pc, 0x4d4]                           |     r3 = *(0x169e4);
    0x00016510 add r1, pc, r1                                |     r1 = pc + r1;
    0x00016514 add r3, pc, r3                                |     r3 = pc + r3;
    0x00016518 mov r2, r0                                    |     r2 = r0;
    0x0001651c mov r0, r5                                    |     r0 = r5;
    0x00016520 bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00016524 ldr r1, [pc, 0x4c0]                           |     r1 = *(0x169e8);
    0x00016528 mov r2, sl                                    |     r2 = sl;
    0x0001652c add r1, pc, r1                                |     r1 = pc + r1;
    0x00016530 mov r0, r4                                    |     r0 = r4;
    0x00016534 bl 0x15798                                    |     fcn_00015798 (r0);
    0x00016538 b 0x1635c                                     |     goto label_0;
                                                             | label_9:
    0x0001653c cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00016540 beq 0x16358                                   |         goto label_1;
                                                             |     }
    0x00016544 mov r0, r5                                    |     r0 = r5;
    0x00016548 bl 0x80cc                                     |     r0 = fcn_000080cc ();
    0x0001654c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00016550 bne 0x16380                                   |         goto label_2;
                                                             |     }
    0x00016554 b 0x16358                                     |     goto label_1;
                                                             | label_11:
    0x00016558 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x0001655c beq 0x165d8                                   |         goto label_12;
                                                             |     }
    0x00016560 mov r0, sb                                    |     r0 = sb;
    0x00016564 bl 0x8ae0                                     |     strdup (r0);
    0x00016568 str r0, [r4]                                  |     *(r4) = r0;
                                                             | label_8:
    0x0001656c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00016570 mvneq sl, 0xb                                 |         sl = ~0xb;
                                                             |         goto label_13;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_13:
    0x00016574 beq 0x1635c                                   |         goto label_0;
                                                             |     }
                                                             |     do {
                                                             | label_6:
    0x00016578 ldr r3, [r8]                                  |         r3 = *(r8);
    0x0001657c tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x00016580 beq 0x165cc                                   |             
    0x00016584 ldr r3, [pc, 0x424]                           |             r3 = *(0x169ac);
    0x00016588 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x0001658c ldr r5, [r3]                                  |             r5 = *(0x169ac);
    0x00016590 bl 0x8204                                     |             getpid ();
    0x00016594 ldr r3, [pc, 0x454]                           |             r3 = *(0x169ec);
    0x00016598 ldr r1, [pc, 0x454]                           |             r1 = *(0x169f0);
    0x0001659c add r3, pc, r3                                |             r3 = pc + r3;
    0x000165a0 str r3, [sp]                                  |             *(sp) = r3;
    0x000165a4 ldr r3, [pc, 0x44c]                           |             r3 = *(0x169f4);
    0x000165a8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000165ac add r3, pc, r3                                |             r3 = pc + r3;
    0x000165b0 mov r2, r0                                    |             r2 = r0;
    0x000165b4 mov r0, r5                                    |             r0 = r5;
    0x000165b8 bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000165bc ldr r1, [pc, 0x438]                           |             r1 = *(0x169f8);
    0x000165c0 mov r0, r4                                    |             r0 = r4;
    0x000165c4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000165c8 bl 0x15798                                    |             fcn_00015798 (r0);
                                                             |         }
    0x000165cc mov r3, 1                                     |         r3 = 1;
    0x000165d0 str r3, [r4, 0x14]                            |         *((r4 + 0x14)) = r3;
    0x000165d4 b 0x1635c                                     |         goto label_0;
                                                             | label_12:
    0x000165d8 cmp r5, 0                                     |         
    0x000165dc beq 0x16578                                   |         
                                                             |     } while (r5 == 0);
    0x000165e0 ldr r2, [r4, 0x10]                            |     r2 = *((r4 + 0x10));
    0x000165e4 ands r3, r6, 0x2000                           |     r3 = r6 & 0x2000;
    0x000165e8 cmp r2, 0                                     |     
    0x000165ec clz r3, r3                                    |     r3 &= r3;
    0x000165f0 lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r2 != 0) {
    0x000165f4 moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x000165f8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000165fc beq 0x16998                                   |         goto label_14;
                                                             |     }
    0x00016600 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x00016604 str sb, [sp, 0x10]                            |     ptr = sb;
    0x00016608 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001660c beq 0x16634                                   |         
    0x00016610 ldr r3, [pc, 0x3e8]                           |         
    0x00016614 ldr r1, [pc, 0x3e8]                           |         r1 = *(0x16a00);
    0x00016618 ldr r0, [pc, 0x3e8]                           |         r0 = *(0x16a04);
    0x0001661c add r3, pc, r3                                |         r3 = pc + r3;
    0x00016620 add r3, r3, 0x1f                              |         r3 = 0x16a1b;
    0x00016624 mov r2, 0x130                                 |         r2 = 0x130;
    0x00016628 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001662c add r0, pc, r0                                |         r0 = pc + r0;
                                                             | label_5:
    0x00016630 bl 0x908c                                     |         assert ();
                                                             |     }
    0x00016634 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00016638 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x0001663c beq 0x16684                                   |         
    0x00016640 ldr r3, [pc, 0x368]                           |         r3 = *(0x169ac);
    0x00016644 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00016648 ldr sb, [r3]                                  |         sb = *(0x169ac);
    0x0001664c bl 0x8204                                     |         getpid ();
    0x00016650 ldr r3, [pc, 0x3b4]                           |         r3 = *(0x16a08);
    0x00016654 ldr r1, [pc, 0x3b4]                           |         r1 = *(0x16a0c);
    0x00016658 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001665c str r3, [sp]                                  |         *(sp) = r3;
    0x00016660 ldr r3, [pc, 0x3ac]                           |         r3 = *(0x16a10);
    0x00016664 add r1, pc, r1                                |         r1 = pc + r1;
    0x00016668 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001666c mov r2, r0                                    |         r2 = r0;
    0x00016670 mov r0, sb                                    |         r0 = sb;
    0x00016674 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00016678 ldr r0, [pc, 0x398]                           |         r0 = *(0x16a14);
    0x0001667c add r0, pc, r0                                |         r0 = pc + r0;
    0x00016680 bl 0x15858                                    |         fcn_00015858 ();
                                                             |     }
    0x00016684 mov r0, r5                                    |     r0 = r5;
    0x00016688 bl 0x87bc                                     |     r0 = fcn_000087bc ();
    0x0001668c mov sb, r0                                    |     sb = r0;
    0x00016690 mov r0, r5                                    |     r0 = r5;
    0x00016694 bl 0x8af8                                     |     fcn_00008af8 ();
    0x00016698 mov r3, 0                                     |     r3 = 0;
    0x0001669c cmp sb, r3                                    |     
    0x000166a0 str r3, [r4, 4]                               |     *((r4 + 4)) = r3;
    0x000166a4 mov fp, r0                                    |     
    0x000166a8 bne 0x166dc                                   |     
                                                             |     while (sb == r0) {
    0x000166ac ldr r3, [sp, 0x10]                            |         r3 = ptr;
    0x000166b0 clz r0, fp                                    |         r0 &= fp;
    0x000166b4 lsr r0, r0, 5                                 |         r0 >>= 5;
    0x000166b8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000166bc movne r0, 0                                   |             r0 = 0;
                                                             |         }
    0x000166c0 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000166c4 beq 0x16768                                   |             goto label_15;
                                                             |         }
    0x000166c8 ldr r3, [r8]                                  |         r3 = *(r8);
    0x000166cc tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x000166d0 bne 0x16720                                   |             goto label_16;
                                                             |         }
                                                             | label_3:
    0x000166d4 mov sl, 1                                     |         sl = 1;
    0x000166d8 b 0x1635c                                     |         goto label_0;
    0x000166dc mov r0, 2                                     |         r0 = 2;
    0x000166e0 bl 0x8c60                                     |         fcn_00008c60 ();
    0x000166e4 mov r3, 4                                     |         r3 = 4;
    0x000166e8 add r1, sp, 0x10                              |         r1 += ptr;
    0x000166ec mov r2, r0                                    |         r2 = r0;
    0x000166f0 mov r0, sb                                    |         r0 = sb;
    0x000166f4 bl 0x7f28                                     |         r0 = fcn_00007f28 ();
    0x000166f8 subs sb, r0, 0                                |         sb = r0 - 0;
    0x000166fc beq 0x166ac                                   |         
                                                             |     }
                                                             |     do {
                                                             | label_4:
    0x00016700 ldr r0, [sp, 0x10]                            |         r0 = ptr;
    0x00016704 bl 0x91c4                                     |         free (r0);
    0x00016708 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x0001670c bl 0x8960                                     |         fcn_00008960 ();
    0x00016710 mov r3, 0                                     |         r3 = 0;
    0x00016714 str r3, [r4, 4]                               |         *((r4 + 4)) = r3;
    0x00016718 mov sl, sb                                    |         sl = sb;
    0x0001671c b 0x1635c                                     |         goto label_0;
                                                             | label_16:
    0x00016720 ldr r3, [pc, 0x288]                           |         r3 = *(0x169ac);
    0x00016724 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00016728 ldr r4, [r3]                                  |         r4 = *(0x169ac);
    0x0001672c bl 0x8204                                     |         getpid ();
    0x00016730 ldr r3, [pc, 0x2e4]                           |         r3 = *(0x16a18);
    0x00016734 ldr r1, [pc, 0x2e4]                           |         r1 = *(0x16a1c);
    0x00016738 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001673c str r3, [sp]                                  |         *(sp) = r3;
    0x00016740 ldr r3, [pc, 0x2dc]                           |         r3 = *(0x16a20);
    0x00016744 add r1, pc, r1                                |         r1 = pc + r1;
    0x00016748 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001674c mov r2, r0                                    |         r2 = r0;
    0x00016750 mov r0, r4                                    |         r0 = r4;
    0x00016754 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00016758 ldr r0, [pc, 0x2c8]                           |         r0 = *(0x16a24);
    0x0001675c add r0, pc, r0                                |         r0 = pc + r0;
    0x00016760 bl 0x15858                                    |         fcn_00015858 ();
    0x00016764 b 0x166d4                                     |         goto label_3;
                                                             | label_15:
    0x00016768 mov r1, r5                                    |         r1 = r5;
    0x0001676c bl 0x893c                                     |         r0 = fcn_0000893c ();
    0x00016770 cmp r0, 0                                     |         
    0x00016774 str r0, [r4, 4]                               |         *((r4 + 4)) = r0;
                                                             |         if (r0 == 0) {
    0x00016778 beq 0x16990                                   |             goto label_17;
                                                             |         }
    0x0001677c ldr r1, [sp, 0x10]                            |         r1 = ptr;
    0x00016780 bl 0x9128                                     |         r0 = fcn_00009128 ();
    0x00016784 subs sb, r0, 0                                |         sb = r0 - 0;
    0x00016788 bne 0x16700                                   |         
                                                             |     } while (sb != r0);
    0x0001678c mov r1, fp                                    |     r1 = fp;
    0x00016790 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x00016794 bl 0x7f34                                     |     r0 = fcn_00007f34 ();
    0x00016798 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x0001679c bne 0x16700                                   |         goto label_4;
                                                             |     }
    0x000167a0 ands r3, r6, 0x20                             |     r3 = r6 & 0x20;
                                                             |     if (r3 == r6) {
    0x000167a4 bne 0x168d4                                   |         
    0x000167a8 str r3, [sp, 0x14]                            |         var_14h = r3;
    0x000167ac ldr r3, [r8]                                  |         r3 = *(r8);
    0x000167b0 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) != 0) {
    0x000167b4 beq 0x167fc                                   |             
    0x000167b8 ldr r3, [pc, 0x1f0]                           |             r3 = *(0x169ac);
    0x000167bc ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000167c0 ldr sb, [r3]                                  |             sb = *(0x169ac);
    0x000167c4 bl 0x8204                                     |             getpid ();
    0x000167c8 ldr r3, [pc, 0x25c]                           |             r3 = *(0x16a28);
    0x000167cc ldr r1, [pc, 0x25c]                           |             r1 = *(0x16a2c);
    0x000167d0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000167d4 str r3, [sp]                                  |             *(sp) = r3;
    0x000167d8 ldr r3, [pc, 0x254]                           |             r3 = *(0x16a30);
    0x000167dc add r1, pc, r1                                |             r1 = pc + r1;
    0x000167e0 add r3, pc, r3                                |             r3 = pc + r3;
    0x000167e4 mov r2, r0                                    |             r2 = r0;
    0x000167e8 mov r0, sb                                    |             r0 = sb;
    0x000167ec bl 0x8798                                     |             fprintf (r0, r1, r2, r3)
    0x000167f0 ldr r0, [pc, 0x240]                           |             r0 = *(0x16a34);
    0x000167f4 add r0, pc, r0                                |             r0 = pc + r0;
    0x000167f8 bl 0x15858                                    |             fcn_00015858 ();
                                                             |         }
    0x000167fc ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00016800 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00016804 bne 0x1682c                                   |             
    0x00016808 ldr r3, [pc, 0x22c]                           |             
    0x0001680c ldr r1, [pc, 0x22c]                           |             r1 = *(0x16a3c);
    0x00016810 ldr r0, [pc, 0x22c]                           |             r0 = *(0x16a40);
    0x00016814 add r3, pc, r3                                |             r3 = pc + r3;
    0x00016818 add r3, r3, 0x2e                              |             r3 = 0x16a66;
    0x0001681c ldr r2, [pc, 0x224]                           |             r2 = *(0x16a44);
    0x00016820 add r1, pc, r1                                |             r1 = pc + r1;
    0x00016824 add r0, pc, r0                                |             r0 = pc + r0;
    0x00016828 b 0x16630                                     |             goto label_5;
                                                             |         }
    0x0001682c mov r0, r5                                    |         r0 = r5;
    0x00016830 bl 0x8de0                                     |         fcn_00008de0 ();
    0x00016834 tst r6, 0x1000                                |         
    0x00016838 mov sb, r0                                    |         sb = r0;
                                                             |         if ((r6 & 0x1000) == 0) {
    0x0001683c beq 0x16930                                   |             goto label_18;
                                                             |         }
    0x00016840 ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x00016844 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00016848 bne 0x1685c                                   |             
    0x0001684c ldr r0, [pc, 0x1f8]                           |             r0 = *(0x16a48);
    0x00016850 add r0, pc, r0                                |             r0 = pc + r0;
    0x00016854 bl 0x8654                                     |             fcn_00008654 ();
    0x00016858 str r0, [r4, 0x18]                            |             *((r4 + 0x18)) = r0;
                                                             |         }
    0x0001685c mov r0, r5                                    |         r0 = r5;
    0x00016860 bl 0x80cc                                     |         r0 = fcn_000080cc ();
    0x00016864 subs r1, r0, 0                                |         r1 = r0 - 0;
                                                             |         if (r1 != r0) {
    0x00016868 beq 0x1687c                                   |             
    0x0001686c ldr r0, [r4, 4]                               |             r0 = *((r4 + 4));
    0x00016870 bl 0x8dd4                                     |             r0 = fcn_00008dd4 ();
    0x00016874 subs sb, r0, 0                                |             sb = r0 - 0;
                                                             |             if (sb != r0) {
    0x00016878 bne 0x16984                                   |                 goto label_19;
                                                             |             }
                                                             |         }
                                                             | label_7:
    0x0001687c mov r2, r6                                    |         r2 = r6;
    0x00016880 add r3, sp, 0x14                              |         r3 += var_14h;
    0x00016884 mov r1, r5                                    |         r1 = r5;
    0x00016888 ldr r0, [r4, 0x18]                            |         r0 = *((r4 + 0x18));
    0x0001688c bl 0x1160c                                    |         r0 = fcn_0001160c (r0, r1, r2);
    0x00016890 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 != r0) {
    0x00016894 beq 0x168c8                                   |             
    0x00016898 bl 0x80cc                                     |             r0 = fcn_000080cc ();
    0x0001689c mov r1, r0                                    |             r1 = r0;
    0x000168a0 ldr r0, [r4, 4]                               |             r0 = *((r4 + 4));
    0x000168a4 bl 0x8594                                     |             r0 = fcn_00008594 ();
    0x000168a8 subs sb, r0, 0                                |             sb = r0 - 0;
                                                             |             if (sb != r0) {
    0x000168ac bne 0x16984                                   |                 goto label_19;
                                                             |             }
    0x000168b0 mov r0, r6                                    |             r0 = r6;
    0x000168b4 ldr r5, [r4, 4]                               |             r5 = *((r4 + 4));
    0x000168b8 bl 0x8de0                                     |             r0 = fcn_00008de0 ();
    0x000168bc mov r1, r0                                    |             r1 = r0;
    0x000168c0 mov r0, r5                                    |             r0 = r5;
    0x000168c4 bl 0x8144                                     |             fcn_00008144 ();
                                                             |         }
    0x000168c8 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x000168cc ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x000168d0 str r2, [r3, 0x30]                            |         *((r3 + 0x30)) = r2;
                                                             |     }
    0x000168d4 ldr r0, [sp, 0x10]                            |     r0 = ptr;
    0x000168d8 bl 0x91c4                                     |     free (r0);
    0x000168dc ldr r3, [r8]                                  |     r3 = *(r8);
    0x000168e0 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) == 0) {
    0x000168e4 beq 0x16578                                   |         goto label_6;
                                                             |     }
    0x000168e8 ldr r3, [pc, 0xc0]                            |     r3 = *(0x169ac);
    0x000168ec ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x000168f0 ldr r5, [r3]                                  |     r5 = *(0x169ac);
    0x000168f4 bl 0x8204                                     |     getpid ();
    0x000168f8 ldr r3, [pc, 0x150]                           |     r3 = *(0x16a4c);
    0x000168fc ldr r1, [pc, 0x150]                           |     r1 = *(0x16a50);
    0x00016900 add r3, pc, r3                                |     r3 = pc + r3;
    0x00016904 str r3, [sp]                                  |     *(sp) = r3;
    0x00016908 ldr r3, [pc, 0x148]                           |     r3 = *(0x16a54);
    0x0001690c add r1, pc, r1                                |     r1 = pc + r1;
    0x00016910 add r3, pc, r3                                |     r3 = pc + r3;
    0x00016914 mov r2, r0                                    |     r2 = r0;
    0x00016918 mov r0, r5                                    |     r0 = r5;
    0x0001691c bl 0x8798                                     |     fprintf (r0, r1, r2, r3)
    0x00016920 ldr r0, [pc, 0x134]                           |     r0 = *(0x16a58);
    0x00016924 add r0, pc, r0                                |     r0 = pc + r0;
    0x00016928 bl 0x15858                                    |     fcn_00015858 ();
    0x0001692c b 0x16578                                     |     goto label_6;
                                                             | label_18:
    0x00016930 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00016934 beq 0x1687c                                   |         goto label_7;
                                                             |     }
    0x00016938 ldr r1, [pc, 0x120]                           |     r1 = *(0x16a5c);
    0x0001693c add r1, pc, r1                                |     r1 = pc + r1;
    0x00016940 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x00016944 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00016948 beq 0x16964                                   |         goto label_20;
                                                             |     }
    0x0001694c ldr r1, [pc, 0x110]                           |     r1 = *(0x16a60);
    0x00016950 mov r0, sb                                    |     r0 = sb;
    0x00016954 add r1, pc, r1                                |     r1 = pc + r1;
    0x00016958 bl 0x8cb4                                     |     r0 = strcmp (r0, r1);
    0x0001695c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00016960 bne 0x1687c                                   |         goto label_7;
                                                             |     }
                                                             | label_20:
    0x00016964 ldr r3, [r4, 0x18]                            |     r3 = *((r4 + 0x18));
    0x00016968 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001696c bne 0x1687c                                   |         goto label_7;
                                                             |     }
    0x00016970 ldr r0, [pc, 0xf0]                            |     r0 = *(0x16a64);
    0x00016974 add r0, pc, r0                                |     r0 = pc + r0;
    0x00016978 bl 0x8654                                     |     fcn_00008654 ();
    0x0001697c str r0, [r4, 0x18]                            |     *((r4 + 0x18)) = r0;
    0x00016980 b 0x1687c                                     |     goto label_7;
                                                             | label_19:
    0x00016984 ldr r0, [sp, 0x14]                            |     r0 = var_14h;
    0x00016988 bl 0x91c4                                     |     free (r0);
    0x0001698c b 0x16700                                     |     goto label_4;
                                                             | label_17:
    0x00016990 mvn sb, 0xb                                   |     sb = ~0xb;
    0x00016994 b 0x16700                                     |     goto label_4;
                                                             | label_14:
    0x00016998 mov r0, r5                                    |     r0 = r5;
    0x0001699c bl 0xb370                                     |     fcn_0000b370 (r0);
    0x000169a0 str r0, [r4, 4]                               |     *((r4 + 4)) = r0;
    0x000169a4 b 0x1656c                                     |     goto label_8;
                                                             | }
    ; 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/lib/libmount.so.1.1.0 @ 0x16f84 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mnt_update_table ()                          | void mnt_update_table (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00016f84 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00016f88 ldr r7, [pc, 0x58c]                           |     r7 = *(0x17518);
    0x00016f8c subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00016f90 add r7, pc, r7                                |     r7 = pc + r7;
    0x00016f94 sub sp, sp, 0x14                              |     
                                                             |     if (r4 == r0) {
    0x00016f98 beq 0x17514                                   |         goto label_13;
                                                             |     }
    0x00016f9c ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x00016fa0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016fa4 beq 0x17514                                   |         goto label_13;
                                                             |     }
    0x00016fa8 ldr r6, [r4, 0x14]                            |     r6 = *((r4 + 0x14));
    0x00016fac cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00016fb0 beq 0x171f8                                   |         goto label_12;
                                                             |     }
    0x00016fb4 ldr r3, [pc, 0x564]                           |     r3 = "b_fs";
    0x00016fb8 mov sb, r1                                    |     sb = r1;
    0x00016fbc ldr r8, [r7, r3]                              |     r8 = *((r7 + r3));
    0x00016fc0 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00016fc4 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x00016fc8 beq 0x17018                                   |         
    0x00016fcc ldr r3, [pc, 0x550]                           |         r3 = *(0x17520);
    0x00016fd0 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00016fd4 ldr r5, [r3]                                  |         r5 = *(0x17520);
    0x00016fd8 bl 0x8204                                     |         getpid ();
    0x00016fdc ldr r3, [pc, 0x544]                           |         r3 = *(0x17524);
    0x00016fe0 ldr r1, [pc, 0x544]                           |         r1 = *(0x17528);
    0x00016fe4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00016fe8 str r3, [sp]                                  |         *(sp) = r3;
    0x00016fec ldr r3, [pc, 0x53c]                           |         r3 = *(0x1752c);
    0x00016ff0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00016ff4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00016ff8 mov r2, r0                                    |         r2 = r0;
    0x00016ffc mov r0, r5                                    |         r0 = r5;
    0x00017000 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017004 ldr r1, [pc, 0x528]                           |         r1 = *(0x17530);
    0x00017008 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x0001700c add r1, pc, r1                                |         r1 = pc + r1;
    0x00017010 mov r0, r4                                    |         r0 = r4;
    0x00017014 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x00017018 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x0001701c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00017020 beq 0x17074                                   |         
    0x00017024 ldr r3, [r8]                                  |         r3 = *(r8);
    0x00017028 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) == 0) {
    0x0001702c beq 0x17074                                   |             goto label_14;
                                                             |         }
    0x00017030 ldr r3, [pc, 0x4ec]                           |         r3 = *(0x17520);
    0x00017034 ldr r5, [r7, r3]                              |         r5 = *((r7 + r3));
    0x00017038 ldr r6, [r5]                                  |         r6 = *(r5);
    0x0001703c bl 0x8204                                     |         getpid ();
    0x00017040 ldr r3, [pc, 0x4f0]                           |         r3 = *(0x17534);
    0x00017044 ldr r1, [pc, 0x4f0]                           |         r1 = *(0x17538);
    0x00017048 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001704c str r3, [sp]                                  |         *(sp) = r3;
    0x00017050 ldr r3, [pc, 0x4e8]                           |         r3 = *(0x1753c);
    0x00017054 add r1, pc, r1                                |         r1 = pc + r1;
    0x00017058 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001705c mov r2, r0                                    |         r2 = r0;
    0x00017060 mov r0, r6                                    |         r0 = r6;
    0x00017064 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017068 ldr r1, [r5]                                  |         r1 = *(r5);
    0x0001706c ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x00017070 bl 0x86f0                                     |         fcn_000086f0 ();
                                                             |     }
                                                             | label_14:
    0x00017074 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x00017078 movne r5, sb                                  |         r5 = sb;
                                                             |     }
                                                             |     if (sb == 0) {
    0x0001707c bne 0x1709c                                   |         
    0x00017080 mov r1, sb                                    |         r1 = sb;
    0x00017084 ldr r0, [r4, 8]                               |         r0 = *((r4 + 8));
    0x00017088 bl 0x9104                                     |         r0 = fcn_00009104 ();
    0x0001708c subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 == r0) {
    0x00017090 beq 0x170b4                                   |             goto label_15;
                                                             |         }
    0x00017094 mov r1, 1                                     |         r1 = 1;
    0x00017098 bl 0x8924                                     |         fcn_00008924 ();
                                                             |     }
    0x0001709c ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000170a0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000170a4 beq 0x170b4                                   |         
    0x000170a8 mov r1, 1                                     |         r1 = 1;
    0x000170ac mov r0, r5                                    |         r0 = r5;
    0x000170b0 bl 0xcb3c                                     |         fcn_0000cb3c (r0, r1);
                                                             |     }
                                                             | label_15:
    0x000170b4 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x000170b8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000170bc bne 0x17234                                   |         goto label_16;
                                                             |     }
    0x000170c0 ldr r2, [r4]                                  |     r2 = *(r4);
    0x000170c4 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000170c8 beq 0x17234                                   |         goto label_16;
                                                             |     }
    0x000170cc ldr r3, [r8]                                  |     r3 = *(r8);
    0x000170d0 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x000170d4 beq 0x17124                                   |         
    0x000170d8 ldr r3, [pc, 0x444]                           |         r3 = *(0x17520);
    0x000170dc ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x000170e0 ldr r6, [r3]                                  |         r6 = *(0x17520);
    0x000170e4 bl 0x8204                                     |         getpid ();
    0x000170e8 ldr r3, [pc, 0x454]                           |         r3 = *(0x17540);
    0x000170ec ldr r1, [pc, 0x454]                           |         r1 = *(0x17544);
    0x000170f0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000170f4 str r3, [sp]                                  |         *(sp) = r3;
    0x000170f8 ldr r3, [pc, 0x44c]                           |         r3 = *(0x17548);
    0x000170fc add r1, pc, r1                                |         r1 = pc + r1;
    0x00017100 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017104 mov r2, r0                                    |         r2 = r0;
    0x00017108 mov r0, r6                                    |         r0 = r6;
    0x0001710c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017110 ldr r1, [pc, 0x438]                           |         r1 = *(0x1754c);
    0x00017114 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x00017118 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001711c mov r0, r4                                    |         r0 = r4;
    0x00017120 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x00017124 cmp r5, 0                                     |     
    0x00017128 bne 0x17170                                   |     
                                                             |     while (r0 == 0) {
    0x0001712c ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x00017130 mov r2, 1                                     |         r2 = 1;
    0x00017134 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00017138 movne r1, 3                                   |             r1 = 3;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x0001713c moveq r1, r2                                  |             r1 = r2;
                                                             |         }
    0x00017140 ldr r0, [r4, 8]                               |         r0 = *((r4 + 8));
    0x00017144 bl 0x14e34                                    |         r0 = fcn_00014e34 (r0);
    0x00017148 subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl != r0) {
    0x0001714c bne 0x17204                                   |             goto label_17;
                                                             |         }
                                                             | label_0:
    0x00017150 mov r6, 0                                     |         r6 = 0;
                                                             | label_1:
    0x00017154 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00017158 beq 0x17164                                   |             
    0x0001715c mov r0, r5                                    |             r0 = r5;
    0x00017160 bl 0x8da4                                     |             fcn_00008da4 ();
                                                             |         }
    0x00017164 mov r0, sl                                    |         r0 = sl;
    0x00017168 bl 0x8bb8                                     |         fcn_00008bb8 ();
    0x0001716c b 0x17184                                     |         goto label_8;
    0x00017170 mov r0, r5                                    |         r0 = r5;
    0x00017174 bl 0x8b04                                     |         r0 = fcn_00008b04 ();
    0x00017178 cmp r0, 0                                     |         
    0x0001717c beq 0x1712c                                   |         
                                                             |     }
                                                             | label_4:
    0x00017180 ldr r6, [pc, 0x3cc]                           |     r6 = *(0x17550);
                                                             | label_8:
    0x00017184 mov r3, 0                                     |     r3 = 0;
    0x00017188 str r3, [r4, 0x14]                            |     *((r4 + 0x14)) = r3;
    0x0001718c ldr r3, [r8]                                  |     r3 = *(r8);
    0x00017190 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x00017194 beq 0x171e8                                   |         
    0x00017198 ldr r3, [pc, 0x384]                           |         r3 = *(0x17520);
    0x0001719c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x000171a0 ldr r7, [r3]                                  |         r7 = *(0x17520);
    0x000171a4 bl 0x8204                                     |         getpid ();
    0x000171a8 ldr r3, [pc, 0x3a8]                           |         r3 = *(0x17554);
    0x000171ac ldr r1, [pc, 0x3a8]                           |         r1 = *(0x17558);
    0x000171b0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000171b4 str r3, [sp]                                  |         *(sp) = r3;
    0x000171b8 ldr r3, [pc, 0x3a0]                           |         r3 = *(0x1755c);
    0x000171bc add r1, pc, r1                                |         r1 = pc + r1;
    0x000171c0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000171c4 mov r2, r0                                    |         r2 = r0;
    0x000171c8 mov r0, r7                                    |         r0 = r7;
    0x000171cc bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000171d0 ldr r1, [pc, 0x38c]                           |         r1 = *(0x17560);
    0x000171d4 mov r3, r6                                    |         r3 = r6;
    0x000171d8 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x000171dc add r1, pc, r1                                |         r1 = pc + r1;
    0x000171e0 mov r0, r4                                    |         r0 = r4;
    0x000171e4 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x000171e8 cmp sb, r5                                    |     
                                                             |     if (sb != r5) {
    0x000171ec beq 0x171f8                                   |         
    0x000171f0 mov r0, r5                                    |         r0 = r5;
    0x000171f4 bl 0x8fb4                                     |         fcn_00008fb4 ();
                                                             |     }
                                                             | label_12:
    0x000171f8 mov r0, r6                                    |     r0 = r6;
    0x000171fc add sp, sp, 0x14                              |     
    0x00017200 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_17:
    0x00017204 ldr r1, [r4]                                  |     r1 = *(r4);
    0x00017208 mov r2, 1                                     |     r2 = 1;
    0x0001720c bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x00017210 subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x00017214 beq 0x17150                                   |         goto label_0;
                                                             |     }
    0x00017218 mov r0, sl                                    |     r0 = sl;
    0x0001721c bl 0x8288                                     |     fcn_00008288 ();
                                                             | label_2:
    0x00017220 mov r1, sl                                    |     r1 = sl;
    0x00017224 mov r0, r4                                    |     r0 = r4;
    0x00017228 bl 0x15ad4                                    |     r0 = fcn_00015ad4 (r0, r1, r2);
                                                             | label_7:
    0x0001722c mov r6, r0                                    |     r6 = r0;
    0x00017230 b 0x17154                                     |     goto label_1;
                                                             | label_16:
    0x00017234 ldr r2, [r4, 0xc]                             |     r2 = *((r4 + 0xc));
    0x00017238 tst r2, 0x2000                                |     
                                                             |     if ((r2 & 0x2000) == 0) {
    0x0001723c beq 0x17318                                   |         goto label_18;
                                                             |     }
    0x00017240 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00017244 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x00017248 beq 0x17298                                   |         
    0x0001724c ldr r3, [pc, 0x2d0]                           |         r3 = *(0x17520);
    0x00017250 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00017254 ldr r6, [r3]                                  |         r6 = *(0x17520);
    0x00017258 bl 0x8204                                     |         getpid ();
    0x0001725c ldr r3, [pc, 0x304]                           |         r3 = *(0x17564);
    0x00017260 ldr r1, [pc, 0x304]                           |         r1 = *(0x17568);
    0x00017264 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017268 str r3, [sp]                                  |         *(sp) = r3;
    0x0001726c ldr r3, [pc, 0x2fc]                           |         r3 = *(0x1756c);
    0x00017270 add r1, pc, r1                                |         r1 = pc + r1;
    0x00017274 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017278 mov r2, r0                                    |         r2 = r0;
    0x0001727c mov r0, r6                                    |         r0 = r6;
    0x00017280 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017284 ldr r1, [pc, 0x2e8]                           |         r1 = *(0x17570);
    0x00017288 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x0001728c add r1, pc, r1                                |         r1 = pc + r1;
    0x00017290 mov r0, r4                                    |         r0 = r4;
    0x00017294 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x00017298 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001729c bne 0x17304                                   |         goto label_19;
                                                             |     }
                                                             | label_3:
    0x000172a0 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000172a4 mov r2, 1                                     |     r2 = 1;
    0x000172a8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000172ac movne r1, 3                                   |         r1 = 3;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000172b0 moveq r1, r2                                  |         r1 = r2;
                                                             |     }
    0x000172b4 ldr r0, [r4, 8]                               |     r0 = *((r4 + 8));
    0x000172b8 bl 0x14e34                                    |     r0 = fcn_00014e34 (r0);
    0x000172bc subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl == r0) {
    0x000172c0 beq 0x17150                                   |         goto label_0;
                                                             |     }
    0x000172c4 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000172c8 bl 0x80cc                                     |     fcn_000080cc ();
    0x000172cc mov r2, 1                                     |     r2 = 1;
    0x000172d0 mov r1, r0                                    |     r1 = r0;
    0x000172d4 mov r0, sl                                    |     r0 = sl;
    0x000172d8 bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x000172dc subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x000172e0 beq 0x17150                                   |         goto label_0;
                                                             |     }
    0x000172e4 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000172e8 bl 0x81d4                                     |     r0 = fcn_000081d4 ();
    0x000172ec mov r1, r0                                    |     r1 = r0;
    0x000172f0 mov r0, r6                                    |     r0 = r6;
    0x000172f4 bl 0x8870                                     |     r0 = fcn_00008870 ();
                                                             | label_5:
    0x000172f8 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x000172fc beq 0x17220                                   |         goto label_2;
                                                             |     }
    0x00017300 b 0x17154                                     |     goto label_1;
                                                             | label_19:
    0x00017304 mov r0, r5                                    |     r0 = r5;
    0x00017308 bl 0x8b04                                     |     r0 = fcn_00008b04 ();
    0x0001730c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00017310 beq 0x172a0                                   |         goto label_3;
                                                             |     }
    0x00017314 b 0x17180                                     |     goto label_4;
                                                             | label_18:
    0x00017318 tst r2, 0x20                                  |     
                                                             |     if ((r2 & 0x20) == 0) {
    0x0001731c beq 0x17468                                   |         goto label_20;
                                                             |     }
    0x00017320 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00017324 bne 0x1734c                                   |         
    0x00017328 ldr r3, [pc, 0x248]                           |         
    0x0001732c ldr r1, [pc, 0x248]                           |         r1 = *(0x17578);
    0x00017330 ldr r0, [pc, 0x248]                           |         r0 = *(0x1757c);
    0x00017334 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017338 add r3, r3, 0x3a                              |         r3 = 0x175ae;
    0x0001733c mov r2, 0x314                                 |         r2 = 0x314;
    0x00017340 add r1, pc, r1                                |         r1 = pc + r1;
    0x00017344 add r0, pc, r0                                |         r0 = pc + r0;
    0x00017348 bl 0x908c                                     |         assert ();
                                                             |     }
    0x0001734c ldr r3, [r8]                                  |     r3 = *(r8);
    0x00017350 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x00017354 beq 0x173a4                                   |         
    0x00017358 ldr r3, [pc, 0x1c4]                           |         r3 = *(0x17520);
    0x0001735c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00017360 ldr r6, [r3]                                  |         r6 = *(0x17520);
    0x00017364 bl 0x8204                                     |         getpid ();
    0x00017368 ldr r3, [pc, 0x214]                           |         r3 = *(0x17580);
    0x0001736c ldr r1, [pc, 0x214]                           |         r1 = *(0x17584);
    0x00017370 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017374 str r3, [sp]                                  |         *(sp) = r3;
    0x00017378 ldr r3, [pc, 0x20c]                           |         r3 = *(0x17588);
    0x0001737c add r1, pc, r1                                |         r1 = pc + r1;
    0x00017380 add r3, pc, r3                                |         r3 = pc + r3;
    0x00017384 mov r2, r0                                    |         r2 = r0;
    0x00017388 mov r0, r6                                    |         r0 = r6;
    0x0001738c bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x00017390 ldr r1, [pc, 0x1f8]                           |         r1 = *(0x1758c);
    0x00017394 ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x00017398 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001739c mov r0, r4                                    |         r0 = r4;
    0x000173a0 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x000173a4 cmp r5, 0                                     |     
    0x000173a8 ldr fp, [r4, 4]                               |     fp = *((r4 + 4));
    0x000173ac bne 0x173dc                                   |     
                                                             |     while (r0 == 0) {
    0x000173b0 ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x000173b4 mov r2, 1                                     |         r2 = 1;
    0x000173b8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000173bc movne r1, 3                                   |             r1 = 3;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x000173c0 moveq r1, r2                                  |             r1 = r2;
                                                             |         }
    0x000173c4 ldr r0, [r4, 8]                               |         r0 = *((r4 + 8));
    0x000173c8 bl 0x14e34                                    |         r0 = fcn_00014e34 (r0);
    0x000173cc subs sl, r0, 0                                |         sl = r0 - 0;
                                                             |         if (sl != r0) {
    0x000173d0 bne 0x173f0                                   |             goto label_21;
                                                             |         }
                                                             | label_10:
    0x000173d4 mov r6, sl                                    |         r6 = sl;
    0x000173d8 b 0x17154                                     |         goto label_1;
    0x000173dc mov r0, r5                                    |         r0 = r5;
    0x000173e0 bl 0x8b04                                     |         r0 = fcn_00008b04 ();
    0x000173e4 cmp r0, 0                                     |         
    0x000173e8 beq 0x173b0                                   |         
                                                             |     }
    0x000173ec b 0x17180                                     |     goto label_4;
                                                             | label_21:
    0x000173f0 mov r0, fp                                    |     r0 = fp;
    0x000173f4 bl 0x81d4                                     |     fcn_000081d4 ();
    0x000173f8 mov r2, 1                                     |     r2 = 1;
    0x000173fc mov r1, r0                                    |     r1 = r0;
    0x00017400 mov r0, sl                                    |     r0 = sl;
    0x00017404 bl 0x86a8                                     |     r0 = fcn_000086a8 ();
    0x00017408 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x0001740c str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (r3 == r0) {
    0x00017410 beq 0x17458                                   |         goto label_22;
                                                             |     }
    0x00017414 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00017418 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001741c bne 0x17438                                   |         
                                                             | label_6:
    0x00017420 mov r0, fp                                    |         r0 = fp;
    0x00017424 bl 0x86fc                                     |         r0 = fcn_000086fc ();
    0x00017428 mov r1, r0                                    |         r1 = r0;
    0x0001742c ldr r0, [sp, 0xc]                             |         r0 = var_ch;
    0x00017430 bl 0x9128                                     |         fcn_00009128 ();
    0x00017434 b 0x172f8                                     |         goto label_5;
                                                             |     }
    0x00017438 mov r0, fp                                    |     r0 = fp;
    0x0001743c bl 0x8af8                                     |     r0 = fcn_00008af8 ();
    0x00017440 mov r1, r0                                    |     r1 = r0;
    0x00017444 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x00017448 bl 0x7f34                                     |     r0 = fcn_00007f34 ();
    0x0001744c subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00017450 bne 0x17154                                   |         goto label_1;
                                                             |     }
    0x00017454 b 0x17420                                     |     goto label_6;
                                                             | label_22:
    0x00017458 mov r1, r4                                    |     r1 = r4;
    0x0001745c mov r0, sl                                    |     r0 = sl;
                                                             | label_9:
    0x00017460 bl 0x16090                                    |     fcn_00016090 (r0, r1);
    0x00017464 b 0x1722c                                     |     goto label_7;
                                                             | label_20:
    0x00017468 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001746c mvneq r6, 0x15                                |         r6 = ~0x15;
                                                             |         goto label_23;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_23:
    0x00017470 beq 0x17184                                   |         goto label_8;
                                                             |     }
    0x00017474 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00017478 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) != 0) {
    0x0001747c beq 0x174cc                                   |         
    0x00017480 ldr r3, [pc, 0x9c]                            |         r3 = *(0x17520);
    0x00017484 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00017488 ldr r6, [r3]                                  |         r6 = *(0x17520);
    0x0001748c bl 0x8204                                     |         getpid ();
    0x00017490 ldr r3, [pc, 0xfc]                            |         r3 = *(0x17590);
    0x00017494 ldr r1, [pc, 0xfc]                            |         r1 = *(0x17594);
    0x00017498 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001749c str r3, [sp]                                  |         *(sp) = r3;
    0x000174a0 ldr r3, [pc, 0xf4]                            |         r3 = *(0x17598);
    0x000174a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000174a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000174ac mov r2, r0                                    |         r2 = r0;
    0x000174b0 mov r0, r6                                    |         r0 = r6;
    0x000174b4 bl 0x8798                                     |         fprintf (r0, r1, r2, r3)
    0x000174b8 ldr r1, [pc, 0xe0]                            |         r1 = *(0x1759c);
    0x000174bc ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x000174c0 add r1, pc, r1                                |         r1 = pc + r1;
    0x000174c4 mov r0, r4                                    |         r0 = r4;
    0x000174c8 bl 0x15798                                    |         fcn_00015798 (r0);
                                                             |     }
    0x000174cc cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x000174d0 bne 0x17500                                   |         goto label_24;
                                                             |     }
                                                             | label_11:
    0x000174d4 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000174d8 mov r2, 1                                     |     r2 = 1;
    0x000174dc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000174e0 movne r1, 3                                   |         r1 = 3;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000174e4 moveq r1, r2                                  |         r1 = r2;
                                                             |     }
    0x000174e8 ldr r0, [r4, 8]                               |     r0 = *((r4 + 8));
    0x000174ec bl 0x14e34                                    |     r0 = fcn_00014e34 (r0);
    0x000174f0 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl != r0) {
    0x000174f4 movne r1, r4                                  |         r1 = r4;
                                                             |         goto label_25;
                                                             |     }
                                                             |     if (sl != r0) {
                                                             | label_25:
    0x000174f8 bne 0x17460                                   |         goto label_9;
                                                             |     }
    0x000174fc b 0x173d4                                     |     goto label_10;
                                                             | label_24:
    0x00017500 mov r0, r5                                    |     r0 = r5;
    0x00017504 bl 0x8b04                                     |     r0 = fcn_00008b04 ();
    0x00017508 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001750c beq 0x174d4                                   |         goto label_11;
                                                             |     }
    0x00017510 b 0x17180                                     |     goto label_4;
                                                             | label_13:
    0x00017514 mvn r6, 0x15                                  |     r6 = ~0x15;
    0x00017518 b 0x171f8                                     |     goto label_12;
                                                             | }

[*] Function fprintf used 520 times libmount.so.1.1.0