[*] Binary protection state of libsystemd.so.0.34.0

  
  	Full RELRO     Canary found      NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function mmap tear down of libsystemd.so.0.34.0

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x29c0c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00029c0c ()                          | void fcn_00029c0c (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     int16_t var_18h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x00029c0c tstlt r8, 248, 10                     |     __asm ("tstlt r8, 248, 10");
    0x00029c10 mov r6, r1                            |     r6 = r1;
    0x00029c12 mov r5, r0                            |     r5 = r0;
    0x00029c14 add.w r1, r3, 0x20                    |     r1 = r3 + 0x20;
    0x00029c18 movs r0, 1                            |     r0 = 1;
    0x00029c1a cmp r1, r0                            |     
    0x00029c1c mov r7, r2                            |     r7 = r2;
    0x00029c1e it lo                                 |     
                                                     |     if (r1 >= r0) {
    0x00029c20 movlo r1, r0                          |         r1 = r0;
                                                     |     }
    0x00029c22 blx 0xe2f8                            |     r0 = fcn_0000e2f8 ();
    0x00029c26 mov r4, r0                            |     r4 = r0;
                                                     |     if (r0 == 0) {
    0x00029c28 cbz r0, 0x29c4c                       |         goto label_0;
                                                     |     }
    0x00029c2a movs r3, 1                            |     r3 = 1;
    0x00029c2c strb r7, [r0, 4]                      |     *((r0 + 4)) = r7;
    0x00029c2e str r3, [r0]                          |     *(r0) = r3;
    0x00029c30 ldr r3, [sp, 0x18]                    |     r3 = var_18h;
    0x00029c32 str r5, [r0, 8]                       |     *((r0 + 8)) = r5;
    0x00029c34 strb r6, [r0, 5]                      |     *((r0 + 5)) = r6;
    0x00029c36 str r3, [r0, 0xc]                     |     *((r0 + 0xc)) = r3;
    0x00029c38 cbz r6, 0x29c50                       |     
                                                     |     while (1) {
    0x00029c3a ldr.w r3, [r5, 0x408]                 |         r3 = *((r5 + 0x408));
    0x00029c3e str r3, [r4, 0x18]                    |         *((r4 + 0x18)) = r3;
                                                     |         if (r3 != 0) {
    0x00029c40 cbz r3, 0x29c44                       |             
    0x00029c42 str r4, [r3, 0x1c]                    |             *((r3 + 0x1c)) = r4;
                                                     |         }
    0x00029c44 movs r3, 0                            |         r3 = 0;
    0x00029c46 str.w r4, [r5, 0x408]                 |         __asm ("str.w r4, aav.0x000000ff");
    0x00029c4a str r3, [r4, 0x1c]                    |         *((r4 + 0x1c)) = r3;
                                                     | label_0:
    0x00029c4c mov r0, r4                            |         r0 = r4;
    0x00029c4e pop {r3, r4, r5, r6, r7, pc}          |         
    0x00029c50 mov r0, r5                            |         r0 = r5;
    0x00029c52 blx 0xeca0                            |         mmap64 ()
    0x00029c56 b 0x29c3a                             |         
                                                     |     }
    0x00029c58 ldr r1, [pc, 0x10]                    |     
    0x00029c5a movs r2, 0x14                         |     r2 = 0x14;
    0x00029c5c ldr r3, [pc, 0x10]                    |     
    0x00029c5e ldr r0, [pc, 0x14]                    |     
    0x00029c60 add r1, pc                            |     r1 = 0x538d0;
    0x00029c62 add r3, pc                            |     r3 = 0x538d6;
    0x00029c64 adds r1, 7                            |     r1 += 7;
    0x00029c66 add r0, pc                            |     r0 = 0x538e0;
    0x00029c68 bl 0x68d78                            |     r0 = fcn_00068d78 (r0, r1, r2, r3);
    0x00029c6c subs r4, r0, 3                        |     r4 = r0 - 3;
    0x00029c6e movs r5, r0                           |     r5 = r0;
    0x00029c70 movs r0, 0xea                         |     r0 = 0xea;
    0x00029c72 movs r5, r0                           |     r5 = r0;
    0x00029c74 adds r7, 0xce                         |     r7 += 0xce;
    0x00029c76 movs r5, r0                           |     r5 = r0;
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x32298 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.sd_bus_default ()        | void sd_bus_default (int16_t arg_3c8h, int16_t arg1) {
                                         |     int16_t var_4h;
                                         |     int16_t var_8h;
                                         |     int16_t var_ch;
                                         |     r0 = arg1;
    0x00032298 ldr r2, [pc, 0xa8]        |     
    0x0003229a ldr r3, [pc, 0xac]        |     r3 = *(0x3234a);
    0x0003229c push {r4, r5, r6, lr}     |     
    0x0003229e sub sp, 0x10              |     
    0x000322a0 add r2, pc                |     r2 = 0x645e8;
    0x000322a2 movs r4, 0                |     r4 = 0;
    0x000322a4 mov r6, r0                |     r6 = r0;
    0x000322a6 add r0, sp, 4             |     r0 += var_4h;
    0x000322a8 ldr r3, [r2, r3]          |     
    0x000322aa ldr r3, [r3]              |     r3 = *(0x645e8);
    0x000322ac str r3, [sp, 0xc]         |     var_ch = r3;
    0x000322ae mov.w r3, 0               |     r3 = 0;
    0x000322b2 str r4, [sp, 4]           |     var_4h = r4;
    0x000322b4 bl 0x2d9b0                |     fcn_0002d9b0 (r0);
    0x000322b8 ldr r3, [sp, 4]           |     r3 = var_4h;
    0x000322ba str r4, [sp, 8]           |     var_8h = r4;
                                         |     if (r3 == 0) {
    0x000322bc cbz r3, 0x32314           |         goto label_1;
                                         |     }
    0x000322be mov r5, r0                |     r5 = r0;
    0x000322c0 cmp r0, 0                 |     
                                         |     if (r0 == 0) {
    0x000322c2 beq 0x3232a               |         goto label_2;
                                         |     }
    0x000322c4 ldr r0, [r0]              |     r0 = *(r0);
                                         |     if (r6 == 0) {
    0x000322c6 cbz r6, 0x3230c           |         goto label_3;
                                         |     }
                                         |     if (r0 != 0) {
    0x000322c8 cbnz r0, 0x32300          |         goto label_4;
                                         |     }
    0x000322ca add r0, sp, 8             |     r0 += var_8h;
    0x000322cc blx r3                    |     r0 = uint32_t (*r3)(uint32_t) (r0);
    0x000322ce cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x000322d0 blt 0x322e8               |         goto label_0;
                                         |     }
    0x000322d2 ldr r4, [sp, 8]           |     r4 = var_8h;
    0x000322d4 str.w r5, [r4, 0x3f8]     |     __asm ("str.w r5, aav.0x000000ff");
    0x000322d8 blx 0xeb34                |     fcn_0000eb34 ();
    0x000322dc ldr r3, [sp, 8]           |     r3 = var_8h;
    0x000322de str.w r0, [r4, 0x3e4]     |     __asm ("str.w r0, aav.0x000000ff");
    0x000322e2 movs r0, 1                |     r0 = 1;
    0x000322e4 str r3, [r5]              |     *(r5) = r3;
    0x000322e6 str r3, [r6]              |     *(r6) = r3;
                                         |     do {
                                         | label_0:
    0x000322e8 ldr r2, [pc, 0x60]        |         
    0x000322ea ldr r3, [pc, 0x5c]        |         r3 = *(0x3234a);
    0x000322ec add r2, pc                |         r2 = 0x6463c;
    0x000322ee ldr r3, [r2, r3]          |         r3 = *(0x6463c);
    0x000322f0 ldr r2, [r3]              |         r2 = *(0x6463c);
    0x000322f2 ldr r3, [sp, 0xc]         |         r3 = var_ch;
    0x000322f4 eors r2, r3               |         r2 ^= r3;
    0x000322f6 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000322fa bne 0x32340               |             goto label_5;
                                         |         }
    0x000322fc add sp, 0x10              |         
    0x000322fe pop {r4, r5, r6, pc}      |         
                                         | label_4:
    0x00032300 blx 0xeca0                |         r0 = mmap64 ()
    0x00032304 mov r3, r0                |         r3 = r0;
    0x00032306 mov r0, r4                |         r0 = r4;
    0x00032308 str r3, [r6]              |         *(r6) = r3;
    0x0003230a b 0x322e8                 |         
                                         |     } while (1);
                                         | label_3:
    0x0003230c subs r0, 0                |     
    0x0003230e it ne                     |     
                                         |     if (r0 == 0) {
    0x00032310 movne r0, 1               |         r0 = 1;
                                         |     }
    0x00032312 b 0x322e8                 |     goto label_0;
                                         | label_1:
    0x00032314 ldr r1, [pc, 0x38]        |     
    0x00032316 movw r2, 0xf2f            |     r2 = 0xf2f;
    0x0003231a ldr r3, [pc, 0x38]        |     
    0x0003231c ldr r0, [pc, 0x38]        |     
    0x0003231e add r1, pc                |     r1 = 0x64672;
    0x00032320 add r3, pc                |     r3 = 0x6467a;
    0x00032322 adds r1, 7                |     r1 += 7;
    0x00032324 add r0, pc                |     r0 = 0x64680;
    0x00032326 bl 0x68d78                |     fcn_00068d78 (r0, r1, r2, r3);
                                         | label_2:
    0x0003232a ldr r1, [pc, 0x30]        |     
    0x0003232c mov.w r2, 0xf30           |     r2 = 0xf30;
    0x00032330 ldr r3, [pc, 0x2c]        |     
    0x00032332 ldr r0, [pc, 0x30]        |     
    0x00032334 add r1, pc                |     r1 = 0x64696;
    0x00032336 add r3, pc                |     r3 = 0x6469a;
    0x00032338 adds r1, 7                |     r1 += 7;
    0x0003233a add r0, pc                |     r0 = 0x646a4;
    0x0003233c bl 0x68d78                |     r0 = fcn_00068d78 (r0, r1, r2, r3);
                                         | label_5:
    0x00032340 blx 0xed3c                |     strnlen ();
    0x00032344 adr r5, 0x390             |     r5 = fcn.00000004;
    0x00032346 movs r6, r0               |     r6 = r0;
    0x00032348 lsls r4, r6, 0x1c         |     r4 = r6 << 0x1c;
    0x0003234a movs r0, r0               |     
    0x0003234c adr r5, 0x260             |     r5 = 0x260;
    0x0003234e movs r6, r0               |     r6 = r0;
    0x00032350 add r0, sp, 0x3c8         |     r0 += arg_3c8h;
    0x00032352 movs r4, r0               |     r4 = r0;
    0x00032354 invalid                   |     
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x34a50 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sd_bus_default_flush_close ()        | void sd_bus_default_flush_close () {
                                                     |     do {
    0x0000e09c invalid                               |         void (*0xe0a0)() ();
    0x00034a50 ldr r0, [pc, 0x48]                    |         
    0x00034a52 push {r3, lr}                         |         
    0x00034a54 add r0, pc                            |         r0 = 0x694f4;
    0x00034a56 blx 0xecf0                            |         fcn_0000ecf0 ();
    0x00034a5a ldr r3, [pc, 0x44]                    |         r3 = *(0x34aa2);
    0x00034a5c ldr r0, [r3, r0]                      |         r0 = *(0x34aa2);
                                                     |         if (r0 != 0) {
    0x00034a5e cbz r0, 0x34a68                       |             
    0x00034a60 blx 0xeca0                            |             mmap64 ()
    0x00034a64 blx 0xe0a0                            |             signalfd ();
                                                     |         }
    0x00034a68 ldr r0, [pc, 0x38]                    |         
    0x00034a6a add r0, pc                            |         r0 = 0x69512;
    0x00034a6c blx 0xecf0                            |         fcn_0000ecf0 ();
    0x00034a70 ldr r3, [pc, 0x34]                    |         r3 = *(0x34aa8);
    0x00034a72 ldr r0, [r3, r0]                      |         r0 = *(0x34aa8);
                                                     |         if (r0 != 0) {
    0x00034a74 cbz r0, 0x34a7e                       |             
    0x00034a76 blx 0xeca0                            |             mmap64 ()
    0x00034a7a blx 0xe0a0                            |             signalfd ();
    0x00034a7c invalid                               |             
                                                     |         }
    0x00034a7e ldr r0, [pc, 0x2c]                    |         
    0x00034a80 add r0, pc                            |         r0 = 0x69532;
    0x00034a82 blx 0xecf0                            |         fcn_0000ecf0 ();
    0x00034a86 ldr r3, [pc, 0x28]                    |         r3 = *(0x34ab2);
    0x00034a88 ldr r0, [r3, r0]                      |         r0 = *(0x34ab2);
                                                     |         if (r0 == 0) {
    0x00034a8a cbz r0, 0x34a98                       |             goto label_0;
                                                     |         }
    0x00034a8c blx 0xeca0                            |         mmap64 ()
    0x00034a90 pop.w {r3, lr}                        |         
    0x00034a94 b.w 0xe09c                            |         
                                                     |     } while (1);
                                                     | label_0:
    0x00034a98 pop {r3, pc}                          |     
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x35290 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sd_bus_default_system ()     | void sd_bus_default_system (int16_t arg1) {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x00035290 ldr r1, [pc, 0x84]            |     
    0x00035292 ldr r2, [pc, 0x88]            |     r2 = *(0x3531e);
    0x00035294 ldr r3, [pc, 0x78]            |     
    0x00035296 add r1, pc                    |     r1 = 0x6a5b2;
    0x00035298 push {r4, r5, r6, r7, lr}     |     
    0x0003529a ldr r7, [pc, 0x78]            |     r7 = *(0x35316);
    0x0003529c mov r5, r0                    |     r5 = r0;
    0x0003529e add r3, pc                    |     r3 = 0x6a5b2;
    0x000352a0 sub sp, 0xc                   |     
    0x000352a2 ldr r2, [r1, r2]              |     
    0x000352a4 movs r4, 0                    |     r4 = 0;
    0x000352a6 mov r0, r3                    |     r0 = r3;
    0x000352a8 ldr r2, [r2]                  |     r2 = *(0x6a5b2);
    0x000352aa str r2, [sp, 4]               |     var_4h = r2;
    0x000352ac mov.w r2, 0                   |     r2 = 0;
    0x000352b0 str r4, [sp]                  |     *(sp) = r4;
    0x000352b2 blx 0xecf0                    |     r0 = fcn_0000ecf0 ();
    0x000352b6 mov r6, r0                    |     r6 = r0;
    0x000352b8 ldr r0, [r0, r7]              |     r0 = *((r0 + r7));
                                             |     if (r5 == 0) {
    0x000352ba cbz r5, 0x35304               |         goto label_1;
                                             |     }
                                             |     if (r0 != 0) {
    0x000352bc cbnz r0, 0x352f8              |         goto label_2;
                                             |     }
    0x000352be mov r0, sp                    |     r0 = sp;
    0x000352c0 blx 0xeb88                    |     r0 = fcn_0000eb88 ();
    0x000352c4 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000352c6 blt 0x352e0                   |         goto label_0;
                                             |     }
    0x000352c8 ldr r4, [sp]                  |     r4 = *(sp);
    0x000352ca adds r3, r6, r7               |     r3 = r6 + r7;
    0x000352cc str.w r3, [r4, 0x3f8]         |     __asm ("str.w r3, aav.0x000000ff");
    0x000352d0 blx 0xeb34                    |     fcn_0000eb34 ();
    0x000352d4 ldr r3, [sp]                  |     r3 = *(sp);
    0x000352d6 str.w r0, [r4, 0x3e4]         |     __asm ("str.w r0, aav.0x000000ff");
    0x000352da movs r0, 1                    |     r0 = 1;
    0x000352dc str r3, [r6, r7]              |     *((r6 + r7)) = r3;
    0x000352de str r3, [r5]                  |     *(r5) = r3;
                                             |     do {
                                             | label_0:
    0x000352e0 ldr r2, [pc, 0x3c]            |         
    0x000352e2 ldr r3, [pc, 0x38]            |         r3 = *(0x3531e);
    0x000352e4 add r2, pc                    |         r2 = 0x6a608;
    0x000352e6 ldr r3, [r2, r3]              |         r3 = *(0x6a608);
    0x000352e8 ldr r2, [r3]                  |         r2 = *(0x6a608);
    0x000352ea ldr r3, [sp, 4]               |         r3 = var_4h;
    0x000352ec eors r2, r3                   |         r2 ^= r3;
    0x000352ee mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000352f2 bne 0x3530c                   |             goto label_3;
                                             |         }
    0x000352f4 add sp, 0xc                   |         
    0x000352f6 pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x000352f8 blx 0xeca0                    |         r0 = mmap64 ()
    0x000352fc mov r3, r0                    |         r3 = r0;
    0x000352fe mov r0, r4                    |         r0 = r4;
    0x00035300 str r3, [r5]                  |         *(r5) = r3;
    0x00035302 b 0x352e0                     |         
                                             |     } while (1);
                                             | label_1:
    0x00035304 subs r0, r0, r4               |     r0 -= r4;
    0x00035306 it ne                         |     
                                             |     if (r0 == r0) {
    0x00035308 movne r0, 1                   |         r0 = 1;
                                             |     }
    0x0003530a b 0x352e0                     |     goto label_0;
                                             | label_3:
    0x0003530c blx 0xed3c                    |     strnlen ();
    0x00035310 ldrb r6, [r7, 0x12]           |     r6 = *((r7 + 0x12));
    0x00035312 movs r6, r0                   |     r6 = r0;
    0x00035314 movs r0, r5                   |     r0 = r5;
    0x00035316 movs r0, r0                   |     
    0x00035318 strb r6, [r5, 0x17]           |     *((r5 + 0x17)) = r6;
    0x0003531a movs r6, r0                   |     r6 = r0;
    0x0003531c lsls r4, r6, 0x1c             |     r4 = r6 << 0x1c;
    0x0003531e movs r0, r0                   |     
    0x00035320 strb r0, [r4, 0x16]           |     *((r4 + 0x16)) = r0;
    0x00035322 movs r6, r0                   |     r6 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x353e4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sd_bus_default_user ()       | void sd_bus_default_user (int16_t arg1) {
                                             |     int16_t var_4h_2;
                                             |     int16_t var_14h;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x000353e4 bmi 0x8c7870                  |     
    0x000353e8 ldr r3, [pc, 0x78]            |     
    0x000353ea add r1, pc                    |     r1 += pc;
    0x000353ec push {r4, r5, r6, r7, lr}     |     
    0x000353ee ldr r7, [pc, 0x78]            |     r7 = *(0x3546a);
    0x000353f0 mov r5, r0                    |     r5 = r0;
    0x000353f2 add r3, pc                    |     r3 = 0x6a85a;
    0x000353f4 sub sp, 0xc                   |     
    0x000353f6 ldr r2, [r1, r2]              |     r2 = *((r1 + r2));
    0x000353f8 movs r4, 0                    |     r4 = 0;
    0x000353fa mov r0, r3                    |     r0 = r3;
    0x000353fc ldr r2, [r2]                  |     r2 = *(r2);
    0x000353fe str r2, [sp, 4]               |     var_4h = r2;
    0x00035400 mov.w r2, 0                   |     r2 = 0;
    0x00035404 str r4, [sp]                  |     *(sp) = r4;
    0x00035406 blx 0xecf0                    |     r0 = fcn_0000ecf0 ();
    0x0003540a mov r6, r0                    |     r6 = r0;
    0x0003540c ldr r0, [r0, r7]              |     r0 = *((r0 + r7));
                                             |     if (r5 == 0) {
    0x0003540e cbz r5, 0x35458               |         goto label_1;
                                             |     }
                                             |     if (r0 != 0) {
    0x00035410 cbnz r0, 0x3544c              |         goto label_2;
                                             |     }
    0x00035412 mov r0, sp                    |     r0 = sp;
    0x00035414 blx 0xefec                    |     r0 = fcn_0000efec ();
    0x00035418 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x0003541a blt 0x35434                   |         goto label_0;
                                             |     }
    0x0003541c ldr r4, [sp]                  |     r4 = *(sp);
    0x0003541e adds r3, r6, r7               |     r3 = r6 + r7;
    0x00035420 str.w r3, [r4, 0x3f8]         |     __asm ("str.w r3, aav.0x000000ff");
    0x00035424 blx 0xeb34                    |     fcn_0000eb34 ();
    0x00035428 ldr r3, [sp]                  |     r3 = *(sp);
    0x0003542a str.w r0, [r4, 0x3e4]         |     __asm ("str.w r0, aav.0x000000ff");
    0x0003542e movs r0, 1                    |     r0 = 1;
    0x00035430 str r3, [r6, r7]              |     *((r6 + r7)) = r3;
    0x00035432 str r3, [r5]                  |     *(r5) = r3;
                                             |     do {
                                             | label_0:
    0x00035434 ldr r2, [pc, 0x3c]            |         
    0x00035436 ldr r3, [pc, 0x38]            |         r3 = *(0x35472);
    0x00035438 add r2, pc                    |         r2 = 0x6a8b0;
    0x0003543a ldr r3, [r2, r3]              |         r3 = *(0x6a8b0);
    0x0003543c ldr r2, [r3]                  |         r2 = *(0x6a8b0);
    0x0003543e ldr r3, [sp, 4]               |         r3 = var_4h;
    0x00035440 eors r2, r3                   |         r2 ^= r3;
    0x00035442 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00035446 bne 0x35460                   |             goto label_3;
                                             |         }
    0x00035448 add sp, 0xc                   |         
    0x0003544a pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x0003544c blx 0xeca0                    |         r0 = mmap64 ()
    0x00035450 mov r3, r0                    |         r3 = r0;
    0x00035452 mov r0, r4                    |         r0 = r4;
    0x00035454 str r3, [r5]                  |         *(r5) = r3;
    0x00035456 b 0x35434                     |         
                                             |     } while (1);
                                             | label_1:
    0x00035458 subs r0, r0, r4               |     r0 -= r4;
    0x0003545a it ne                         |     
                                             |     if (r0 == r0) {
    0x0003545c movne r0, 1                   |         r0 = 1;
                                             |     }
    0x0003545e b 0x35434                     |     goto label_0;
                                             | label_3:
    0x00035460 blx 0xed3c                    |     strnlen ();
    0x00035464 ldrb r2, [r5, 0xd]            |     r2 = *((r5 + 0xd));
    0x00035466 movs r6, r0                   |     r6 = r0;
    0x00035468 movs r4, r4                   |     
    0x0003546a movs r0, r0                   |     
    0x0003546c strb r2, [r3, 0x12]           |     *((r3 + 0x12)) = r2;
    0x0003546e movs r6, r0                   |     r6 = r0;
    0x00035470 lsls r4, r6, 0x1c             |     r4 = r6 << 0x1c;
    0x00035472 movs r0, r0                   |     
    0x00035474 strb r4, [r1, 0x11]           |     *((r1 + 0x11)) = r4;
    0x00035476 movs r6, r0                   |     r6 = r0;
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x34a50 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sd_bus_default_flush_close ()        | void sd_bus_default_flush_close () {
                                                     |     do {
    0x0000e09c invalid                               |         void (*0xe0a0)() ();
    0x00034a50 ldr r0, [pc, 0x48]                    |         
    0x00034a52 push {r3, lr}                         |         
    0x00034a54 add r0, pc                            |         r0 = 0x694f4;
    0x00034a56 blx 0xecf0                            |         fcn_0000ecf0 ();
    0x00034a5a ldr r3, [pc, 0x44]                    |         r3 = *(0x34aa2);
    0x00034a5c ldr r0, [r3, r0]                      |         r0 = *(0x34aa2);
                                                     |         if (r0 != 0) {
    0x00034a5e cbz r0, 0x34a68                       |             
    0x00034a60 blx 0xeca0                            |             mmap64 ()
    0x00034a64 blx 0xe0a0                            |             signalfd ();
                                                     |         }
    0x00034a68 ldr r0, [pc, 0x38]                    |         
    0x00034a6a add r0, pc                            |         r0 = 0x69512;
    0x00034a6c blx 0xecf0                            |         fcn_0000ecf0 ();
    0x00034a70 ldr r3, [pc, 0x34]                    |         r3 = *(0x34aa8);
    0x00034a72 ldr r0, [r3, r0]                      |         r0 = *(0x34aa8);
                                                     |         if (r0 != 0) {
    0x00034a74 cbz r0, 0x34a7e                       |             
    0x00034a76 blx 0xeca0                            |             mmap64 ()
    0x00034a7a blx 0xe0a0                            |             signalfd ();
    0x00034a7c invalid                               |             
                                                     |         }
    0x00034a7e ldr r0, [pc, 0x2c]                    |         
    0x00034a80 add r0, pc                            |         r0 = 0x69532;
    0x00034a82 blx 0xecf0                            |         fcn_0000ecf0 ();
    0x00034a86 ldr r3, [pc, 0x28]                    |         r3 = *(0x34ab2);
    0x00034a88 ldr r0, [r3, r0]                      |         r0 = *(0x34ab2);
                                                     |         if (r0 == 0) {
    0x00034a8a cbz r0, 0x34a98                       |             goto label_0;
                                                     |         }
    0x00034a8c blx 0xeca0                            |         mmap64 ()
    0x00034a90 pop.w {r3, lr}                        |         
    0x00034a94 b.w 0xe09c                            |         
                                                     |     } while (1);
                                                     | label_0:
    0x00034a98 pop {r3, pc}                          |     
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x35290 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sd_bus_default_system ()     | void sd_bus_default_system (int16_t arg1) {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x00035290 ldr r1, [pc, 0x84]            |     
    0x00035292 ldr r2, [pc, 0x88]            |     r2 = *(0x3531e);
    0x00035294 ldr r3, [pc, 0x78]            |     
    0x00035296 add r1, pc                    |     r1 = 0x6a5b2;
    0x00035298 push {r4, r5, r6, r7, lr}     |     
    0x0003529a ldr r7, [pc, 0x78]            |     r7 = *(0x35316);
    0x0003529c mov r5, r0                    |     r5 = r0;
    0x0003529e add r3, pc                    |     r3 = 0x6a5b2;
    0x000352a0 sub sp, 0xc                   |     
    0x000352a2 ldr r2, [r1, r2]              |     
    0x000352a4 movs r4, 0                    |     r4 = 0;
    0x000352a6 mov r0, r3                    |     r0 = r3;
    0x000352a8 ldr r2, [r2]                  |     r2 = *(0x6a5b2);
    0x000352aa str r2, [sp, 4]               |     var_4h = r2;
    0x000352ac mov.w r2, 0                   |     r2 = 0;
    0x000352b0 str r4, [sp]                  |     *(sp) = r4;
    0x000352b2 blx 0xecf0                    |     r0 = fcn_0000ecf0 ();
    0x000352b6 mov r6, r0                    |     r6 = r0;
    0x000352b8 ldr r0, [r0, r7]              |     r0 = *((r0 + r7));
                                             |     if (r5 == 0) {
    0x000352ba cbz r5, 0x35304               |         goto label_1;
                                             |     }
                                             |     if (r0 != 0) {
    0x000352bc cbnz r0, 0x352f8              |         goto label_2;
                                             |     }
    0x000352be mov r0, sp                    |     r0 = sp;
    0x000352c0 blx 0xeb88                    |     r0 = fcn_0000eb88 ();
    0x000352c4 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000352c6 blt 0x352e0                   |         goto label_0;
                                             |     }
    0x000352c8 ldr r4, [sp]                  |     r4 = *(sp);
    0x000352ca adds r3, r6, r7               |     r3 = r6 + r7;
    0x000352cc str.w r3, [r4, 0x3f8]         |     __asm ("str.w r3, aav.0x000000ff");
    0x000352d0 blx 0xeb34                    |     fcn_0000eb34 ();
    0x000352d4 ldr r3, [sp]                  |     r3 = *(sp);
    0x000352d6 str.w r0, [r4, 0x3e4]         |     __asm ("str.w r0, aav.0x000000ff");
    0x000352da movs r0, 1                    |     r0 = 1;
    0x000352dc str r3, [r6, r7]              |     *((r6 + r7)) = r3;
    0x000352de str r3, [r5]                  |     *(r5) = r3;
                                             |     do {
                                             | label_0:
    0x000352e0 ldr r2, [pc, 0x3c]            |         
    0x000352e2 ldr r3, [pc, 0x38]            |         r3 = *(0x3531e);
    0x000352e4 add r2, pc                    |         r2 = 0x6a608;
    0x000352e6 ldr r3, [r2, r3]              |         r3 = *(0x6a608);
    0x000352e8 ldr r2, [r3]                  |         r2 = *(0x6a608);
    0x000352ea ldr r3, [sp, 4]               |         r3 = var_4h;
    0x000352ec eors r2, r3                   |         r2 ^= r3;
    0x000352ee mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000352f2 bne 0x3530c                   |             goto label_3;
                                             |         }
    0x000352f4 add sp, 0xc                   |         
    0x000352f6 pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x000352f8 blx 0xeca0                    |         r0 = mmap64 ()
    0x000352fc mov r3, r0                    |         r3 = r0;
    0x000352fe mov r0, r4                    |         r0 = r4;
    0x00035300 str r3, [r5]                  |         *(r5) = r3;
    0x00035302 b 0x352e0                     |         
                                             |     } while (1);
                                             | label_1:
    0x00035304 subs r0, r0, r4               |     r0 -= r4;
    0x00035306 it ne                         |     
                                             |     if (r0 == r0) {
    0x00035308 movne r0, 1                   |         r0 = 1;
                                             |     }
    0x0003530a b 0x352e0                     |     goto label_0;
                                             | label_3:
    0x0003530c blx 0xed3c                    |     strnlen ();
    0x00035310 ldrb r6, [r7, 0x12]           |     r6 = *((r7 + 0x12));
    0x00035312 movs r6, r0                   |     r6 = r0;
    0x00035314 movs r0, r5                   |     r0 = r5;
    0x00035316 movs r0, r0                   |     
    0x00035318 strb r6, [r5, 0x17]           |     *((r5 + 0x17)) = r6;
    0x0003531a movs r6, r0                   |     r6 = r0;
    0x0003531c lsls r4, r6, 0x1c             |     r4 = r6 << 0x1c;
    0x0003531e movs r0, r0                   |     
    0x00035320 strb r0, [r4, 0x16]           |     *((r4 + 0x16)) = r0;
    0x00035322 movs r6, r0                   |     r6 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x353e4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sd_bus_default_user ()       | void sd_bus_default_user (int16_t arg1) {
                                             |     int16_t var_4h_2;
                                             |     int16_t var_14h;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x000353e4 bmi 0x8c7870                  |     
    0x000353e8 ldr r3, [pc, 0x78]            |     
    0x000353ea add r1, pc                    |     r1 += pc;
    0x000353ec push {r4, r5, r6, r7, lr}     |     
    0x000353ee ldr r7, [pc, 0x78]            |     r7 = *(0x3546a);
    0x000353f0 mov r5, r0                    |     r5 = r0;
    0x000353f2 add r3, pc                    |     r3 = 0x6a85a;
    0x000353f4 sub sp, 0xc                   |     
    0x000353f6 ldr r2, [r1, r2]              |     r2 = *((r1 + r2));
    0x000353f8 movs r4, 0                    |     r4 = 0;
    0x000353fa mov r0, r3                    |     r0 = r3;
    0x000353fc ldr r2, [r2]                  |     r2 = *(r2);
    0x000353fe str r2, [sp, 4]               |     var_4h = r2;
    0x00035400 mov.w r2, 0                   |     r2 = 0;
    0x00035404 str r4, [sp]                  |     *(sp) = r4;
    0x00035406 blx 0xecf0                    |     r0 = fcn_0000ecf0 ();
    0x0003540a mov r6, r0                    |     r6 = r0;
    0x0003540c ldr r0, [r0, r7]              |     r0 = *((r0 + r7));
                                             |     if (r5 == 0) {
    0x0003540e cbz r5, 0x35458               |         goto label_1;
                                             |     }
                                             |     if (r0 != 0) {
    0x00035410 cbnz r0, 0x3544c              |         goto label_2;
                                             |     }
    0x00035412 mov r0, sp                    |     r0 = sp;
    0x00035414 blx 0xefec                    |     r0 = fcn_0000efec ();
    0x00035418 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x0003541a blt 0x35434                   |         goto label_0;
                                             |     }
    0x0003541c ldr r4, [sp]                  |     r4 = *(sp);
    0x0003541e adds r3, r6, r7               |     r3 = r6 + r7;
    0x00035420 str.w r3, [r4, 0x3f8]         |     __asm ("str.w r3, aav.0x000000ff");
    0x00035424 blx 0xeb34                    |     fcn_0000eb34 ();
    0x00035428 ldr r3, [sp]                  |     r3 = *(sp);
    0x0003542a str.w r0, [r4, 0x3e4]         |     __asm ("str.w r0, aav.0x000000ff");
    0x0003542e movs r0, 1                    |     r0 = 1;
    0x00035430 str r3, [r6, r7]              |     *((r6 + r7)) = r3;
    0x00035432 str r3, [r5]                  |     *(r5) = r3;
                                             |     do {
                                             | label_0:
    0x00035434 ldr r2, [pc, 0x3c]            |         
    0x00035436 ldr r3, [pc, 0x38]            |         r3 = *(0x35472);
    0x00035438 add r2, pc                    |         r2 = 0x6a8b0;
    0x0003543a ldr r3, [r2, r3]              |         r3 = *(0x6a8b0);
    0x0003543c ldr r2, [r3]                  |         r2 = *(0x6a8b0);
    0x0003543e ldr r3, [sp, 4]               |         r3 = var_4h;
    0x00035440 eors r2, r3                   |         r2 ^= r3;
    0x00035442 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00035446 bne 0x35460                   |             goto label_3;
                                             |         }
    0x00035448 add sp, 0xc                   |         
    0x0003544a pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x0003544c blx 0xeca0                    |         r0 = mmap64 ()
    0x00035450 mov r3, r0                    |         r3 = r0;
    0x00035452 mov r0, r4                    |         r0 = r4;
    0x00035454 str r3, [r5]                  |         *(r5) = r3;
    0x00035456 b 0x35434                     |         
                                             |     } while (1);
                                             | label_1:
    0x00035458 subs r0, r0, r4               |     r0 -= r4;
    0x0003545a it ne                         |     
                                             |     if (r0 == r0) {
    0x0003545c movne r0, 1                   |         r0 = 1;
                                             |     }
    0x0003545e b 0x35434                     |     goto label_0;
                                             | label_3:
    0x00035460 blx 0xed3c                    |     strnlen ();
    0x00035464 ldrb r2, [r5, 0xd]            |     r2 = *((r5 + 0xd));
    0x00035466 movs r6, r0                   |     r6 = r0;
    0x00035468 movs r4, r4                   |     
    0x0003546a movs r0, r0                   |     
    0x0003546c strb r2, [r3, 0x12]           |     *((r3 + 0x12)) = r2;
    0x0003546e movs r6, r0                   |     r6 = r0;
    0x00035470 lsls r4, r6, 0x1c             |     r4 = r6 << 0x1c;
    0x00035472 movs r0, r0                   |     
    0x00035474 strb r4, [r1, 0x11]           |     *((r1 + 0x11)) = r4;
    0x00035476 movs r6, r0                   |     r6 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x28eec */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.sd_bus_emit_interfaces_added_strv ()             | void sd_bus_emit_interfaces_added_strv (int16_t arg_1h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int32_t var_24h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_33h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00028eec svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00028ef0 mov r8, r1                                        |     r8 = r1;
    0x00028ef2 ldr r1, [pc, 0x3c8]                               |     
    0x00028ef4 mov r5, r2                                        |     r5 = r2;
    0x00028ef6 sub sp, 0x44                                      |     
    0x00028ef8 movs r3, 0                                        |     r3 = 0;
    0x00028efa ldr r2, [pc, 0x3c4]                               |     r2 = *(0x292c2);
    0x00028efc add r1, pc                                        |     r1 = 0x521be;
    0x00028efe ldr r2, [r1, r2]                                  |     
    0x00028f00 ldr r2, [r2]                                      |     r2 = *(0x521be);
    0x00028f02 str r2, [sp, 0x3c]                                |     var_3ch = r2;
    0x00028f04 mov.w r2, 0                                       |     r2 = 0;
    0x00028f08 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00028f0a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028f0c beq.w 0x2918a                                     |         goto label_9;
                                                                 |     }
    0x00028f10 bl 0x2e4cc                                        |     r0 = fcn_0002e4cc (r0);
    0x00028f14 mov sl, r0                                        |     sl = r0;
    0x00028f16 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028f18 beq.w 0x291a6                                     |         goto label_10;
                                                                 |     }
    0x00028f1c mov r0, r8                                        |     r0 = r8;
    0x00028f1e bl 0x18e10                                        |     r0 = fcn_00018e10 (r0);
    0x00028f22 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028f24 beq.w 0x291c2                                     |         goto label_11;
                                                                 |     }
    0x00028f28 mov r0, sl                                        |     r0 = sl;
    0x00028f2a bl 0x2f628                                        |     r0 = fcn_0002f628 (r0);
    0x00028f2e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028f30 bne.w 0x291da                                     |         goto label_12;
                                                                 |     }
    0x00028f34 ldr.w r3, [sl, 4]                                 |     r3 = *((sl + 4));
    0x00028f38 subs r3, 1                                        |     r3--;
    0x00028f3a cmp r3, 4                                         |     
                                                                 |     if (r3 > 4) {
    0x00028f3c bhi.w 0x29292                                     |         goto label_13;
                                                                 |     }
    0x00028f40 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00028f42 beq.w 0x290ba                                     |         goto label_14;
                                                                 |     }
    0x00028f46 ldr r4, [r5]                                      |     r4 = *(r5);
    0x00028f48 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00028f4a beq.w 0x29094                                     |         goto label_3;
                                                                 |     }
    0x00028f4e strb.w r0, [sp, 0x33]                             |     var_33h = r0;
    0x00028f52 add.w r3, sp, 0x33                                |     r3 += var_33h;
    0x00028f56 mov r2, r8                                        |     r2 = r8;
    0x00028f58 add r1, sp, 0x38                                  |     r1 += var_38h;
    0x00028f5a mov r0, sl                                        |     r0 = sl;
    0x00028f5c bl 0x253c8                                        |     r0 = fcn_000253c8 (r0, r1, r2, r3);
    0x00028f60 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00028f62 blt.w 0x29094                                     |         goto label_3;
                                                                 |     }
                                                                 |     if (r4 == r0) {
    0x00028f66 beq.w 0x29298                                     |         goto label_15;
                                                                 |     }
    0x00028f6a mov r0, sl                                        |     r0 = sl;
    0x00028f6c ldr.w sb, [pc, 0x354]                             |     
    0x00028f70 blx 0xeca0                                        |     mmap64 ()
    0x00028f74 ldr r3, [pc, 0x350]                               |     
    0x00028f76 ldr r6, [sp, 0x38]                                |     r6 = var_38h;
    0x00028f78 add sb, pc                                        |     sb = 0x52240;
    0x00028f7a mov r7, sb                                        |     r7 = sb;
    0x00028f7c str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x00028f7e add r3, pc                                        |     r3 = 0x5224a;
    0x00028f80 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00028f82 mov r4, r6                                        |     r4 = r6;
    0x00028f84 ldr r3, [pc, 0x344]                               |     
    0x00028f86 add r3, pc                                        |     r3 = 0x52256;
    0x00028f88 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00028f8a add r3, sp, 0x34                                  |     r3 += var_34h;
    0x00028f8c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00028f8e mov r3, r5                                        |     r3 = r5;
    0x00028f90 mov r5, r8                                        |     r5 = r8;
    0x00028f92 mov r8, r3                                        |     r8 = r3;
                                                                 | label_1:
    0x00028f94 ldrb.w r3, [sl, 0x1d]                             |     r3 = *((sl + 0x1d));
    0x00028f98 bfc r3, 1, 1                                      |     value_0 = BIT_MASK (1, );
                                                                 |     value_0 = ~value_0;
                                                                 |     r3 &= value_0;
    0x00028f9c strb.w r3, [sl, 0x1d]                             |     *((sl + 0x1d)) = r3;
    0x00028fa0 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00028fa2 blx 0xefbc                                        |     fcn_0000efbc ();
    0x00028fa6 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00028fa8 str r0, [sp, 0x34]                                |     var_34h = r0;
    0x00028faa mov r0, sl                                        |     r0 = sl;
    0x00028fac ldr r2, [r4]                                      |     r2 = *(r4);
    0x00028fae ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00028fb0 str r3, [sp]                                      |     *(sp) = r3;
    0x00028fb2 mov r3, r7                                        |     r3 = r7;
    0x00028fb4 blx 0xe524                                        |     r0 = fcn_0000e524 ();
    0x00028fb8 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x00028fba blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
    0x00028fbe ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00028fc0 mov r2, r5                                        |     r2 = r5;
    0x00028fc2 movs r1, 0x6f                                     |     r1 = 0x6f;
    0x00028fc4 blx 0xf39c                                        |     r0 = fcn_0000f39c ();
    0x00028fc8 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x00028fca blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
    0x00028fce ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00028fd0 movs r1, 0x61                                     |     r1 = 0x61;
    0x00028fd2 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00028fd4 blx 0xe858                                        |     r0 = fcn_0000e858 ();
    0x00028fd8 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x00028fda blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
    0x00028fde ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x00028fe2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028fe4 beq.w 0x2929e                                     |         goto label_17;
                                                                 |     }
    0x00028fe8 ldr r3, [pc, 0x2e4]                               |     
    0x00028fea mov sb, r8                                        |     sb = r8;
    0x00028fec strd r4, r8, [sp, 0x24]                           |     __asm ("strd r4, r8, [var_24h]");
    0x00028ff0 str r7, [sp, 0x2c]                                |     var_2ch = r7;
    0x00028ff2 add r3, pc                                        |     r3 = 0x522c6;
    0x00028ff4 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 | label_0:
    0x00028ff6 bl 0x18ea8                                        |     r0 = fcn_00018ea8 (r0);
    0x00028ffa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028ffc beq.w 0x291fe                                     |         goto label_18;
                                                                 |     }
    0x00029000 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00029002 movs r1, 0x65                                     |     r1 = 0x65;
    0x00029004 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x00029006 blx 0xe858                                        |     r0 = fcn_0000e858 ();
    0x0002900a subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x0002900c blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
    0x00029010 ldr r4, [sp, 0x34]                                |     r4 = var_34h;
    0x00029012 ldr.w r7, [sb]                                    |     r7 = *(sb);
    0x00029016 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00029018 beq.w 0x29222                                     |         goto label_19;
                                                                 |     }
    0x0002901c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0002901e beq.w 0x29244                                     |         goto label_20;
                                                                 |     }
    0x00029022 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00029024 beq.w 0x2925a                                     |         goto label_21;
                                                                 |     }
    0x00029028 movs r3, 0                                        |     r3 = 0;
    0x0002902a mov r2, r5                                        |     r2 = r5;
    0x0002902c strd r7, r3, [sp]                                 |     __asm ("strd r7, r3, [sp]");
    0x00029030 mov r1, r4                                        |     r1 = r4;
    0x00029032 mov r3, r5                                        |     r3 = r5;
    0x00029034 mov r0, sl                                        |     r0 = sl;
    0x00029036 bl 0x272d0                                        |     r0 = fcn_000272d0 (r0, r1, r2, r3, r4, r5, r6);
    0x0002903a mov r3, r0                                        |     r3 = r0;
    0x0002903c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002903e bne 0x290be                                       |         goto label_22;
                                                                 |     }
    0x00029040 ldrb.w r3, [sl, 0x1d]                             |     r3 = *((sl + 0x1d));
    0x00029044 lsls r0, r3, 0x1e                                 |     r0 = r3 << 0x1e;
                                                                 |     if (r0 < r3) {
    0x00029046 bmi.w 0x291f6                                     |         goto label_23;
                                                                 |     }
    0x0002904a mov r0, r5                                        |     r0 = r5;
    0x0002904c blx 0xe81c                                        |     r0 = fcn_0000e81c ();
    0x00029050 cmp.w r0, 0x10000                                 |     
                                                                 |     if (r0 > 0x10000) {
    0x00029054 bhi.w 0x2927c                                     |         goto label_24;
                                                                 |     }
    0x00029058 adds r6, r0, 1                                    |     r6 = r0 + 1;
    0x0002905a mov r0, r6                                        |     r0 = r6;
    0x0002905c blx 0xece4                                        |     r0 = fcn_0000ece4 ();
    0x00029060 mov fp, r0                                        |     
    0x00029062 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00029064 beq.w 0x292ac                                     |         goto label_25;
                                                                 |     }
    0x00029068 mov r2, r6                                        |     r2 = r6;
    0x0002906a mov r1, r5                                        |     r1 = r5;
    0x0002906c blx 0xe8b0                                        |     fcn_0000e8b0 ();
    0x00029070 ldrb.w r3, [fp]                                   |     r3 = *(fp);
    0x00029074 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x00029076 bne 0x29130                                       |         goto label_26;
                                                                 |     }
    0x00029078 ldrb.w r3, [fp, 1]                                |     r3 = *(arg_1h);
    0x0002907c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002907e bne 0x29130                                       |         goto label_26;
                                                                 |     }
                                                                 | label_4:
    0x00029080 ldr r7, [sp, 0xc]                                 |     r7 = var_ch;
    0x00029082 mov r0, fp                                        |     r0 = fp;
    0x00029084 mvn r4, 1                                         |     r4 = ~1;
    0x00029088 blx 0xe5d4                                        |     write (r0, r1, r2);
                                                                 |     if (r7 == 0) {
    0x0002908c cbz r7, 0x29094                                   |         goto label_3;
                                                                 |     }
                                                                 | label_2:
    0x0002908e mov r0, r7                                        |     r0 = r7;
    0x00029090 blx 0xe4e8                                        |     fcn_0000e4e8 ();
                                                                 |     do {
                                                                 | label_3:
    0x00029094 ldr r0, [sp, 0x34]                                |         r0 = var_34h;
                                                                 |         if (r0 != 0) {
    0x00029096 cbz r0, 0x2909c                                   |             
    0x00029098 blx 0xefbc                                        |             fcn_0000efbc ();
                                                                 |         }
    0x0002909c ldr r2, [pc, 0x234]                               |         
    0x0002909e ldr r3, [pc, 0x220]                               |         r3 = *(0x292c2);
    0x000290a0 add r2, pc                                        |         r2 = 0x52378;
    0x000290a2 ldr r3, [r2, r3]                                  |         r3 = *(0x52378);
    0x000290a4 ldr r2, [r3]                                      |         r2 = *(0x52378);
    0x000290a6 ldr r3, [sp, 0x3c]                                |         r3 = var_3ch;
    0x000290a8 eors r2, r3                                       |         r2 ^= r3;
    0x000290aa mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000290ae bne.w 0x292a8                                     |             goto label_27;
                                                                 |         }
    0x000290b2 mov r0, r4                                        |         r0 = r4;
    0x000290b4 add sp, 0x44                                      |         
    0x000290b6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_14:
    0x000290ba mov r4, r5                                        |         r4 = r5;
    0x000290bc b 0x29094                                         |         
                                                                 |     } while (1);
                                                                 | label_22:
    0x000290be mov.w fp, 0                                       |     
                                                                 | label_6:
    0x000290c2 mov r0, fp                                        |     r0 = fp;
    0x000290c4 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x000290c6 blx 0xe5d4                                        |     write (r0, r1, r2);
    0x000290ca ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000290cc cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x000290ce blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
                                                                 | label_7:
    0x000290d2 ldrb.w r3, [sl, 0x1d]                             |     r3 = *((sl + 0x1d));
    0x000290d6 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x000290d8 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 < r3) {
    0x000290da bmi.w 0x291f6                                     |         goto label_23;
                                                                 |     }
    0x000290de blx 0xe1b8                                        |     r0 = fcn_0000e1b8 ();
    0x000290e2 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x000290e4 blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
    0x000290e8 ldr r0, [sb, 4]!                                  |     r0 = *((sb += 4));
    0x000290ec cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000290ee bne 0x28ff6                                       |         goto label_0;
                                                                 |     }
    0x000290f0 ldrb.w fp, [sl, 0x1d]                             |     fp = *((sl + 0x1d));
    0x000290f4 ldrd r4, r8, [sp, 0x24]                           |     __asm ("ldrd r4, r8, [var_24h]");
    0x000290f8 ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x000290fa and fp, fp, 2                                     |     
                                                                 | label_8:
    0x000290fe ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00029100 cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x00029104 bne.w 0x28f94                                     |         goto label_1;
                                                                 |     }
    0x00029108 blx 0xe1b8                                        |     r0 = fcn_0000e1b8 ();
    0x0002910c subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x0002910e blt.w 0x29270                                     |         goto label_16;
                                                                 |     }
    0x00029112 ldrb.w r3, [sl, 0x1d]                             |     r3 = *((sl + 0x1d));
    0x00029116 lsls r3, r3, 0x1e                                 |     r3 <<= 0x1e;
                                                                 |     if (r3 < r3) {
    0x00029118 bmi.w 0x28f94                                     |         goto label_1;
                                                                 |     }
    0x0002911c ldr r7, [sp, 0xc]                                 |     r7 = var_ch;
    0x0002911e mov r2, fp                                        |     r2 = fp;
    0x00029120 ldr r1, [sp, 0x34]                                |     r1 = var_34h;
    0x00029122 mov r0, sl                                        |     r0 = sl;
    0x00029124 blx 0xeac8                                        |     r0 = fcn_0000eac8 ();
    0x00029128 mov r4, r0                                        |     r4 = r0;
    0x0002912a cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0002912c bne 0x2908e                                       |         goto label_2;
                                                                 |     }
    0x0002912e b 0x29094                                         |     goto label_3;
                                                                 | label_26:
    0x00029130 movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00029132 mov r0, fp                                        |     r0 = fp;
    0x00029134 blx 0xe3e0                                        |     r0 = fcn_0000e3e0 ();
    0x00029138 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002913a beq 0x29080                                       |         goto label_4;
                                                                 |     }
    0x0002913c mov.w r8, 0                                       |     r8 = 0;
    0x00029140 movs r6, 1                                        |     r6 = 1;
                                                                 | label_5:
    0x00029142 sub.w r3, r0, fp                                  |     r3 = r0 - fp;
    0x00029146 mov r2, fp                                        |     r2 = fp;
    0x00029148 clz r3, r3                                        |     r3 &= r3;
    0x0002914c mov r1, r4                                        |     r1 = r4;
    0x0002914e lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x00029150 strb.w r8, [r0, r3]                               |     *((r0 + r3)) = r8;
    0x00029154 mov r3, r5                                        |     r3 = r5;
    0x00029156 mov r0, sl                                        |     r0 = sl;
    0x00029158 strd r7, r6, [sp]                                 |     __asm ("strd r7, r6, [sp]");
    0x0002915c bl 0x272d0                                        |     r0 = fcn_000272d0 (r0, r1, r2, r3, r4, r5, r6);
    0x00029160 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00029162 bne 0x29238                                       |         goto label_28;
                                                                 |     }
    0x00029164 ldrb.w r3, [sl, 0x1d]                             |     r3 = *((sl + 0x1d));
    0x00029168 lsls r1, r3, 0x1e                                 |     r1 = r3 << 0x1e;
                                                                 |     if (r1 < r3) {
    0x0002916a bmi 0x2923c                                       |         goto label_29;
                                                                 |     }
    0x0002916c ldrb.w r3, [fp]                                   |     r3 = *(fp);
    0x00029170 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x00029172 bne 0x2917c                                       |         goto label_30;
                                                                 |     }
    0x00029174 ldrb.w r3, [fp, 1]                                |     r3 = *(arg_1h);
    0x00029178 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002917a beq 0x29080                                       |         goto label_4;
                                                                 |     }
                                                                 | label_30:
    0x0002917c movs r1, 0x2f                                     |     r1 = 0x2f;
    0x0002917e mov r0, fp                                        |     r0 = fp;
    0x00029180 blx 0xe3e0                                        |     r0 = fcn_0000e3e0 ();
    0x00029184 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00029186 bne 0x29142                                       |         goto label_5;
                                                                 |     }
    0x00029188 b 0x29080                                         |     goto label_4;
                                                                 | label_9:
    0x0002918a ldr r1, [pc, 0x14c]                               |     
    0x0002918c movw r2, 0xb2e                                    |     r2 = 0xb2e;
    0x00029190 ldr r3, [pc, 0x148]                               |     
    0x00029192 ldr r0, [pc, 0x14c]                               |     
    0x00029194 add r1, pc                                        |     r1 = 0x52472;
    0x00029196 add r3, pc                                        |     r3 = 0x52476;
    0x00029198 adds r1, 7                                        |     r1 += 7;
    0x0002919a add r0, pc                                        |     r0 = 0x52480;
    0x0002919c bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 |     do {
    0x000291a0 mvn r4, 0x15                                      |         r4 = ~0x15;
    0x000291a4 b 0x29094                                         |         goto label_3;
                                                                 | label_10:
    0x000291a6 ldr r1, [pc, 0x13c]                               |         
    0x000291a8 movw r2, 0xb2f                                    |         r2 = 0xb2f;
    0x000291ac ldr r3, [pc, 0x138]                               |         
    0x000291ae mvn r4, 0x40                                      |         r4 = ~0x40;
    0x000291b2 ldr r0, [pc, 0x138]                               |         
    0x000291b4 add r1, pc                                        |         r1 = 0x5249e;
    0x000291b6 add r3, pc                                        |         r3 = 0x524a2;
    0x000291b8 adds r1, 7                                        |         r1 += 7;
    0x000291ba add r0, pc                                        |         r0 = 0x524ac;
    0x000291bc bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x000291c0 b 0x29094                                         |         goto label_3;
                                                                 | label_11:
    0x000291c2 ldr r1, [pc, 0x12c]                               |         
    0x000291c4 mov.w r2, 0xb30                                   |         r2 = 0xb30;
    0x000291c8 ldr r3, [pc, 0x128]                               |         
    0x000291ca ldr r0, [pc, 0x12c]                               |         
    0x000291cc add r1, pc                                        |         r1 = 0x524c2;
    0x000291ce add r3, pc                                        |         r3 = 0x524c6;
    0x000291d0 adds r1, 7                                        |         r1 += 7;
    0x000291d2 add r0, pc                                        |         r0 = 0x524d0;
    0x000291d4 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x000291d8 b 0x291a0                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x000291da ldr r1, [pc, 0x120]                               |     
    0x000291dc movw r2, 0xb31                                    |     r2 = 0xb31;
    0x000291e0 ldr r3, [pc, 0x11c]                               |     
    0x000291e2 mvn r4, 9                                         |     r4 = ~9;
    0x000291e6 ldr r0, [pc, 0x11c]                               |     
    0x000291e8 add r1, pc                                        |     r1 = 0x524ea;
    0x000291ea add r3, pc                                        |     r3 = 0x524ee;
    0x000291ec adds r1, 7                                        |     r1 += 7;
    0x000291ee add r0, pc                                        |     r0 = 0x524f8;
    0x000291f0 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x000291f4 b 0x29094                                         |     goto label_3;
                                                                 | label_23:
    0x000291f6 ldrd r4, r8, [sp, 0x24]                           |     __asm ("ldrd r4, r8, [var_24h]");
    0x000291fa ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x000291fc b 0x28f94                                         |     goto label_1;
                                                                 | label_18:
    0x000291fe ldr r1, [pc, 0x108]                               |     
    0x00029200 movw r2, 0xb53                                    |     r2 = 0xb53;
    0x00029204 ldr r7, [sp, 0xc]                                 |     r7 = var_ch;
    0x00029206 mvn r4, 0x15                                      |     r4 = ~0x15;
    0x0002920a ldr r3, [pc, 0x100]                               |     
    0x0002920c ldr r0, [pc, 0x100]                               |     
    0x0002920e add r1, pc                                        |     r1 = 0x5251c;
    0x00029210 adds r1, 7                                        |     r1 += 7;
    0x00029212 add r3, pc                                        |     r3 = 0x52524;
    0x00029214 add r0, pc                                        |     r0 = 0x52528;
    0x00029216 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0002921a cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0002921c bne.w 0x2908e                                     |         goto label_2;
                                                                 |     }
    0x00029220 b 0x29094                                         |     goto label_3;
                                                                 | label_19:
    0x00029222 ldr r1, [pc, 0xf0]                                |     
    0x00029224 movw r2, 0xb0e                                    |     r2 = 0xb0e;
    0x00029228 ldr r3, [pc, 0xec]                                |     
    0x0002922a ldr r0, [pc, 0xf0]                                |     
    0x0002922c add r1, pc                                        |     r1 = 0x52546;
    0x0002922e add r3, pc                                        |     r3 = 0x5254a;
    0x00029230 adds r1, 7                                        |     r1 += 7;
    0x00029232 add r0, pc                                        |     r0 = 0x52554;
    0x00029234 bl 0x68d78                                        |     r0 = fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_28:
    0x00029238 mov r3, r0                                        |     r3 = r0;
    0x0002923a b 0x290c2                                         |     goto label_6;
                                                                 | label_29:
    0x0002923c mov r0, fp                                        |     r0 = fp;
    0x0002923e blx 0xe5d4                                        |     write (r0, r1, r2);
    0x00029242 b 0x290d2                                         |     goto label_7;
                                                                 | label_20:
    0x00029244 ldr r1, [pc, 0xd8]                                |     
    0x00029246 movw r2, 0xb0f                                    |     r2 = 0xb0f;
    0x0002924a ldr r3, [pc, 0xd8]                                |     
    0x0002924c ldr r0, [pc, 0xd8]                                |     
    0x0002924e add r1, pc                                        |     r1 = 0x52572;
    0x00029250 add r3, pc                                        |     r3 = 0x5257a;
    0x00029252 adds r1, 7                                        |     r1 += 7;
    0x00029254 add r0, pc                                        |     r0 = 0x52580;
    0x00029256 bl 0x68d78                                        |     fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_21:
    0x0002925a ldr r1, [pc, 0xd0]                                |     
    0x0002925c mov.w r2, 0xb10                                   |     r2 = 0xb10;
    0x00029260 ldr r3, [pc, 0xcc]                                |     
    0x00029262 ldr r0, [pc, 0xd0]                                |     
    0x00029264 add r1, pc                                        |     r1 = 0x52596;
    0x00029266 add r3, pc                                        |     r3 = 0x5259a;
    0x00029268 adds r1, 7                                        |     r1 += 7;
    0x0002926a add r0, pc                                        |     r0 = 0x525a4;
    0x0002926c bl 0x68d78                                        |     fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_16:
    0x00029270 ldr r7, [sp, 0xc]                                 |     r7 = var_ch;
    0x00029272 mov r4, r3                                        |     r4 = r3;
    0x00029274 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00029276 bne.w 0x2908e                                     |         goto label_2;
                                                                 |     }
    0x0002927a b 0x29094                                         |     goto label_3;
                                                                 | label_24:
    0x0002927c ldr r1, [pc, 0xb8]                                |     
    0x0002927e movw r2, 0xb19                                    |     r2 = 0xb19;
    0x00029282 ldr r3, [pc, 0xb8]                                |     
    0x00029284 ldr r0, [pc, 0xb8]                                |     
    0x00029286 add r1, pc                                        |     r1 = 0x525c2;
    0x00029288 add r3, pc                                        |     r3 = 0x525ca;
    0x0002928a adds r1, 7                                        |     r1 += 7;
    0x0002928c add r0, pc                                        |     r0 = 0x525d0;
    0x0002928e bl 0x68d78                                        |     fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_13:
    0x00029292 mvn r4, 0x6a                                      |     r4 = ~0x6a;
    0x00029296 b 0x29094                                         |     goto label_3;
                                                                 | label_15:
    0x00029298 mvn r4, 2                                         |     r4 = ~2;
    0x0002929c b 0x29094                                         |     goto label_3;
                                                                 | label_17:
    0x0002929e ldrb.w fp, [sl, 0x1d]                             |     fp = *((sl + 0x1d));
    0x000292a2 and fp, fp, 2                                     |     
    0x000292a6 b 0x290fe                                         |     goto label_8;
                                                                 | label_27:
    0x000292a8 blx 0xed3c                                        |     strnlen ();
                                                                 | label_25:
    0x000292ac ldr r7, [sp, 0xc]                                 |     r7 = var_ch;
    0x000292ae mvn r4, 0xb                                       |     r4 = ~0xb;
    0x000292b2 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x000292b4 bne.w 0x2908e                                     |         goto label_2;
                                                                 |     }
    0x000292b8 b 0x29094                                         |     goto label_3;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x286b4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.sd_bus_emit_object_added ()                      | void sd_bus_emit_object_added (int16_t arg_0h, uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_23h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000286b4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000286b8 mov r6, r1                                        |     r6 = r1;
    0x000286ba ldr r1, [pc, 0x390]                               |     
    0x000286bc sub sp, 0x34                                      |     
    0x000286be movs r3, 0                                        |     r3 = 0;
    0x000286c0 ldr r2, [pc, 0x38c]                               |     r2 = *(0x28a50);
    0x000286c2 add r1, pc                                        |     r1 = 0x51114;
    0x000286c4 ldr.w fp, [pc, 0x38c]                             |     fp = *(0x00028a54);
    0x000286c8 ldr r2, [r1, r2]                                  |     
    0x000286ca add fp, pc                                        |     
    0x000286cc ldr r2, [r2]                                      |     r2 = *(0x51114);
    0x000286ce str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x000286d0 mov.w r2, 0                                       |     r2 = 0;
    0x000286d4 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x000286d6 cmp r0, 0                                         |     
                                                                 |     if (arg_0h == ) {
    0x000286d8 beq.w 0x28970                                     |         goto label_6;
                                                                 |     }
    0x000286dc bl 0x2e4cc                                        |     r0 = fcn_0002e4cc (r0);
    0x000286e0 mov r5, r0                                        |     r5 = r0;
    0x000286e2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000286e4 beq.w 0x288a8                                     |         goto label_7;
                                                                 |     }
    0x000286e8 mov r0, r6                                        |     r0 = r6;
    0x000286ea bl 0x18e10                                        |     fcn_00018e10 (r0);
    0x000286ec invalid                                           |     
                                                                 |     if (r0 == 0) {
    0x000286f0 beq.w 0x289a6                                     |         goto label_8;
                                                                 |     }
    0x000286f4 mov r0, r5                                        |     r0 = r5;
    0x000286f6 bl 0x2f628                                        |     r0 = fcn_0002f628 (r0);
    0x000286fa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000286fc bne.w 0x289be                                     |         goto label_9;
                                                                 |     }
    0x00028700 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x00028702 subs r3, 1                                        |     r3--;
    0x00028704 cmp r3, 4                                         |     
                                                                 |     if (r3 > 4) {
    0x00028706 bhi.w 0x289f0                                     |         goto label_10;
                                                                 |     }
    0x0002870a strb.w r0, [sp, 0x23]                             |     var_23h = r0;
    0x0002870e add.w r3, sp, 0x23                                |     r3 += var_23h;
    0x00028712 mov r2, r6                                        |     r2 = r6;
    0x00028714 add r1, sp, 0x28                                  |     r1 += var_28h;
    0x00028716 mov r0, r5                                        |     r0 = r5;
    0x00028718 bl 0x253c8                                        |     r0 = fcn_000253c8 (r0, r1, r2, r3);
    0x0002871c subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x0002871e blt.w 0x288c2                                     |         goto label_1;
                                                                 |     }
                                                                 |     if (r4 == r0) {
    0x00028722 beq.w 0x289f6                                     |         goto label_11;
                                                                 |     }
    0x00028726 mov r0, r5                                        |     r0 = r5;
    0x00028728 ldr.w sb, [pc, 0x32c]                             |     
    0x0002872c blx 0xeca0                                        |     mmap64 ()
    0x00028730 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00028732 mov r8, r0                                        |     r8 = r0;
    0x00028734 add sb, pc                                        |     sb = 0x51190;
    0x00028736 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00028738 ldr r3, [pc, 0x320]                               |     
    0x0002873a add r3, pc                                        |     r3 = 0x5119a;
    0x0002873c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0002873e ldr r3, [pc, 0x320]                               |     
    0x00028740 add r3, pc                                        |     r3 = 0x511a6;
    0x00028742 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00028744 add r3, sp, 0x24                                  |     r3 += var_24h;
    0x00028746 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_3:
    0x00028748 ldrb r3, [r5, 0x1d]                               |     r3 = *((r5 + 0x1d));
    0x0002874a bfc r3, 1, 1                                      |     value_0 = BIT_MASK (1, );
                                                                 |     value_0 = ~value_0;
                                                                 |     r3 &= value_0;
    0x0002874e strb r3, [r5, 0x1d]                               |     *((r5 + 0x1d)) = r3;
    0x00028750 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x00028752 blx 0xefbc                                        |     fcn_0000efbc ();
    0x00028756 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00028758 str r0, [sp, 0x24]                                |     var_24h = r0;
    0x0002875a mov r0, r5                                        |     r0 = r5;
    0x0002875c ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x0002875e ldr r2, [r3]                                      |     r2 = *(r3);
    0x00028760 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00028762 str r3, [sp]                                      |     *(sp) = r3;
    0x00028764 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00028766 blx 0xe524                                        |     r0 = fcn_0000e524 ();
    0x0002876a cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0002876c blt.w 0x289a2                                     |         goto label_12;
                                                                 |     }
    0x00028770 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x00028772 mov r2, r6                                        |     r2 = r6;
    0x00028774 movs r1, 0x6f                                     |     r1 = 0x6f;
    0x00028776 blx 0xf39c                                        |     r0 = fcn_0000f39c ();
    0x0002877a cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0002877c blt.w 0x289a2                                     |         goto label_12;
                                                                 |     }
    0x00028780 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x00028782 mov r2, sb                                        |     r2 = sb;
    0x00028784 movs r1, 0x61                                     |     r1 = 0x61;
    0x00028786 blx 0xe858                                        |     r0 = fcn_0000e858 ();
    0x0002878a cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0002878c blt.w 0x289a2                                     |         goto label_12;
                                                                 |     }
    0x00028790 ldr r7, [sp, 0x24]                                |     r7 = var_24h;
    0x00028792 ldrb.w sl, [sp, 0x23]                             |     sl = var_23h;
    0x00028796 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00028798 beq.w 0x2895a                                     |         goto label_13;
                                                                 |     }
    0x0002879c cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0002879e beq.w 0x2898c                                     |         goto label_14;
                                                                 |     }
    0x000287a2 ldr r3, [pc, 0x2c0]                               |     r3 = *(0x28a66);
    0x000287a4 ldr.w r3, [fp, r3]                                |     r3 = *((fp + r3));
    0x000287a8 mov r0, r3                                        |     r0 = r3;
    0x000287aa str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000287ac bl 0x66210                                        |     r0 = fcn_00066210 (r0);
    0x000287b0 mov r4, r0                                        |     r4 = r0;
    0x000287b2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000287b4 beq.w 0x28a1c                                     |         goto label_15;
                                                                 |     }
    0x000287b8 ldr r2, [pc, 0x2ac]                               |     
    0x000287ba movs r3, 0                                        |     r3 = 0;
    0x000287bc mov r1, sb                                        |     r1 = sb;
    0x000287be mov r0, r7                                        |     r0 = r7;
    0x000287c0 add r2, pc                                        |     r2 = 0x5122c;
    0x000287c2 blx 0xed54                                        |     r0 = fcn_0000ed54 ();
    0x000287c6 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000287c8 blt.w 0x288fe                                     |         goto label_16;
                                                                 |     }
    0x000287cc ldr r2, [pc, 0x29c]                               |     
    0x000287ce movs r3, 0                                        |     r3 = 0;
    0x000287d0 mov r1, sb                                        |     r1 = sb;
    0x000287d2 mov r0, r7                                        |     r0 = r7;
    0x000287d4 add r2, pc                                        |     r2 = 0x51244;
    0x000287d6 blx 0xed54                                        |     fcn_0000ed54 ();
    0x000287d8 invalid                                           |     
                                                                 |     if (r3 < 0) {
    0x000287dc blt.w 0x288fe                                     |         goto label_16;
                                                                 |     }
    0x000287e0 ldr r2, [pc, 0x28c]                               |     
    0x000287e2 movs r3, 0                                        |     r3 = 0;
    0x000287e4 mov r1, sb                                        |     r1 = sb;
    0x000287e6 mov r0, r7                                        |     r0 = r7;
    0x000287e8 add r2, pc                                        |     r2 = 0x5125c;
    0x000287ea blx 0xed54                                        |     r0 = fcn_0000ed54 ();
    0x000287ee cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000287f0 blt.w 0x288fe                                     |         goto label_16;
                                                                 |     }
    0x000287f4 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x000287f8 bne 0x288e8                                       |         goto label_17;
                                                                 |     }
                                                                 | label_0:
    0x000287fa mov.w sl, 0                                       |     sl = 0;
    0x000287fe mov r3, r6                                        |     r3 = r6;
    0x00028800 mov r2, r4                                        |     r2 = r4;
    0x00028802 mov r1, r7                                        |     r1 = r7;
    0x00028804 mov r0, r5                                        |     r0 = r5;
    0x00028806 str r6, [sp]                                      |     *(sp) = r6;
    0x00028808 str.w sl, [sp, 4]                                 |     __asm ("str.w sl, [var_4h]");
    0x0002880c bl 0x27044                                        |     r0 = fcn_00027044 (r0, r1, r2, r3, r4, r5);
    0x00028810 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00028812 blt.w 0x28a3a                                     |         goto label_18;
                                                                 |     }
    0x00028816 ldrb r3, [r5, 0x1d]                               |     r3 = *((r5 + 0x1d));
    0x00028818 lsls r1, r3, 0x1e                                 |     r1 = r3 << 0x1e;
                                                                 |     if (r1 < r3) {
    0x0002881a bmi.w 0x28928                                     |         goto label_19;
                                                                 |     }
    0x0002881e mov r0, r6                                        |     r0 = r6;
    0x00028820 blx 0xe81c                                        |     r0 = fcn_0000e81c ();
    0x00028824 cmp.w r0, 0x10000                                 |     
                                                                 |     if (r0 > 0x10000) {
    0x00028828 bhi.w 0x289fc                                     |         goto label_20;
                                                                 |     }
    0x0002882c adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x0002882e mov r0, r2                                        |     r0 = r2;
    0x00028830 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x00028832 blx 0xece4                                        |     fcn_0000ece4 ();
    0x00028836 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00028838 mov sl, r0                                        |     sl = r0;
    0x0002883a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002883c beq.w 0x28a12                                     |         goto label_21;
                                                                 |     }
    0x00028840 mov r1, r6                                        |     r1 = r6;
    0x00028842 blx 0xe8b0                                        |     fcn_0000e8b0 ();
    0x00028846 ldrb.w r2, [sl]                                   |     r2 = *(sl);
    0x0002884a cmp r2, 0x2f                                      |     
                                                                 |     if (r2 == 0x2f) {
    0x0002884c beq 0x2891a                                       |         goto label_22;
                                                                 |     }
                                                                 | label_2:
    0x0002884e movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00028850 mov r0, sl                                        |     r0 = sl;
    0x00028852 blx 0xe3e0                                        |     r0 = fcn_0000e3e0 ();
    0x00028856 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028858 beq.w 0x28a22                                     |         goto label_23;
                                                                 |     }
                                                                 |     do {
    0x0002885c sub.w r3, sl, r0                                  |         r3 = sl - r0;
    0x00028860 mov.w r2, 0                                       |         r2 = 0;
    0x00028864 clz r3, r3                                        |         r3 &= r3;
    0x00028868 mov r1, r7                                        |         r1 = r7;
    0x0002886a lsrs r3, r3, 5                                    |         r3 >>= 5;
    0x0002886c strb r2, [r0, r3]                                 |         *((r0 + r3)) = r2;
    0x0002886e movs r3, 1                                        |         r3 = 1;
    0x00028870 strd r6, r3, [sp]                                 |         __asm ("strd r6, r3, [sp]");
    0x00028874 mov r2, r4                                        |         r2 = r4;
    0x00028876 mov r3, sl                                        |         r3 = sl;
    0x00028878 mov r0, r5                                        |         r0 = r5;
    0x0002887a bl 0x27044                                        |         r0 = fcn_00027044 (r0, r1, r2, r3, r4, r5);
    0x0002887e cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00028880 blt.w 0x289da                                     |             goto label_24;
                                                                 |         }
    0x00028884 ldrb r3, [r5, 0x1d]                               |         r3 = *((r5 + 0x1d));
    0x00028886 lsls r2, r3, 0x1e                                 |         r2 = r3 << 0x1e;
                                                                 |         if (r2 < r3) {
    0x00028888 bmi 0x28922                                       |             goto label_25;
                                                                 |         }
    0x0002888a ldrb.w r3, [sl]                                   |         r3 = *(sl);
    0x0002888e cmp r3, 0x2f                                      |         
                                                                 |         if (r3 == 0x2f) {
    0x00028890 bne 0x2889a                                       |             
    0x00028892 ldrb.w r3, [sl, 1]                                |             r3 = *((sl + 1));
    0x00028896 cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x00028898 beq 0x28922                                       |                 goto label_25;
                                                                 |             }
                                                                 |         }
    0x0002889a movs r1, 0x2f                                     |         r1 = 0x2f;
    0x0002889c mov r0, sl                                        |         r0 = sl;
    0x0002889e blx 0xe3e0                                        |         r0 = fcn_0000e3e0 ();
    0x000288a2 cmp r0, 0                                         |         
    0x000288a4 bne 0x2885c                                       |         
                                                                 |     } while (r0 != 0);
    0x000288a6 b 0x28922                                         |     goto label_25;
                                                                 | label_7:
    0x000288a8 ldr r1, [pc, 0x1c8]                               |     
    0x000288aa movw r2, 0x9dc                                    |     r2 = 0x9dc;
    0x000288ae ldr r3, [pc, 0x1c8]                               |     
    0x000288b0 mvn r4, 0x40                                      |     r4 = ~0x40;
    0x000288b4 ldr r0, [pc, 0x1c4]                               |     
    0x000288b6 add r1, pc                                        |     r1 = 0x5132e;
    0x000288b8 add r3, pc                                        |     r3 = 0x51336;
    0x000288ba adds r1, 7                                        |     r1 += 7;
    0x000288bc add r0, pc                                        |     r0 = 0x5133c;
    0x000288be bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 | label_1:
    0x000288c2 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
                                                                 |     if (r0 != 0) {
    0x000288c4 cbz r0, 0x288ca                                   |         
    0x000288c6 blx 0xefbc                                        |         fcn_0000efbc ();
                                                                 |     }
    0x000288ca ldr r2, [pc, 0x1b4]                               |     
    0x000288cc ldr r3, [pc, 0x180]                               |     r3 = *(0x28a50);
    0x000288ce add r2, pc                                        |     r2 = 0x51354;
    0x000288d0 ldr r3, [r2, r3]                                  |     r3 = *(0x51354);
    0x000288d2 ldr r2, [r3]                                      |     r2 = *(0x51354);
    0x000288d4 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x000288d6 eors r2, r3                                       |     r2 ^= r3;
    0x000288d8 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000288dc bne.w 0x28a36                                     |         goto label_26;
                                                                 |     }
    0x000288e0 mov r0, r4                                        |     r0 = r4;
    0x000288e2 add sp, 0x34                                      |     
    0x000288e4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_17:
    0x000288e8 ldr r2, [pc, 0x198]                               |     
    0x000288ea movs r3, 0                                        |     r3 = 0;
    0x000288ec ldr r1, [pc, 0x198]                               |     
    0x000288ee mov r0, r7                                        |     r0 = r7;
    0x000288f0 add r2, pc                                        |     r2 = 0x51378;
    0x000288f2 add r1, pc                                        |     r1 = 0x5137e;
    0x000288f4 blx 0xed54                                        |     r0 = fcn_0000ed54 ();
    0x000288f8 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x000288fa bge.w 0x287fa                                     |         goto label_0;
                                                                 |     }
                                                                 | label_16:
    0x000288fe mov r7, r4                                        |     r7 = r4;
    0x00028900 movs r2, 0                                        |     r2 = 0;
    0x00028902 mov r4, r0                                        |     r4 = r0;
    0x00028904 mov r1, r2                                        |     r1 = r2;
    0x00028906 mov r0, r7                                        |     r0 = r7;
    0x00028908 bl 0x668b4                                        |     fcn_000668b4 (r0, r1, r2);
                                                                 | label_4:
    0x0002890c cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00028910 beq 0x288c2                                       |         goto label_1;
                                                                 |     }
    0x00028912 mov r0, r8                                        |     r0 = r8;
    0x00028914 blx 0xe4e8                                        |     fcn_0000e4e8 ();
    0x00028918 b 0x288c2                                         |     goto label_1;
                                                                 | label_22:
    0x0002891a ldrb.w r2, [sl, 1]                                |     r2 = *((sl + 1));
    0x0002891e cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00028920 bne 0x2884e                                       |         goto label_2;
                                                                 |     }
                                                                 | label_25:
    0x00028922 mov r0, sl                                        |     r0 = sl;
    0x00028924 blx 0xe5d4                                        |     write (r0, r1, r2);
                                                                 | label_19:
    0x00028928 movs r2, 0                                        |     r2 = 0;
    0x0002892a mov r0, r4                                        |     r0 = r4;
    0x0002892c mov r1, r2                                        |     r1 = r2;
    0x0002892e bl 0x668b4                                        |     fcn_000668b4 (r0, r1, r2);
                                                                 | label_5:
    0x00028932 ldrb r3, [r5, 0x1d]                               |     r3 = *((r5 + 0x1d));
    0x00028934 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x00028936 lsls r3, r3, 0x1e                                 |     r3 <<= 0x1e;
                                                                 |     if (r3 < r3) {
    0x00028938 bmi.w 0x28748                                     |         goto label_3;
                                                                 |     }
    0x0002893c blx 0xe1b8                                        |     r0 = fcn_0000e1b8 ();
    0x00028940 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00028942 blt 0x289a2                                       |         goto label_12;
                                                                 |     }
    0x00028944 ldrb r2, [r5, 0x1d]                               |     r2 = *((r5 + 0x1d));
    0x00028946 ands r2, r2, 2                                    |     r2 &= 2;
                                                                 |     if (r2 != r2) {
    0x0002894a bne.w 0x28748                                     |         goto label_3;
                                                                 |     }
    0x0002894e ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00028950 mov r0, r5                                        |     r0 = r5;
    0x00028952 blx 0xeac8                                        |     r0 = fcn_0000eac8 ();
    0x00028956 mov r4, r0                                        |     r4 = r0;
    0x00028958 b 0x2890c                                         |     goto label_4;
                                                                 | label_13:
    0x0002895a ldr r1, [pc, 0x130]                               |     
    0x0002895c movw r2, 0x98f                                    |     r2 = 0x98f;
    0x00028960 ldr r3, [pc, 0x12c]                               |     
    0x00028962 ldr r0, [pc, 0x130]                               |     
    0x00028964 add r1, pc                                        |     r1 = 0x513f6;
    0x00028966 add r3, pc                                        |     r3 = 0x513fa;
    0x00028968 adds r1, 7                                        |     r1 += 7;
    0x0002896a add r0, pc                                        |     r0 = 0x51404;
    0x0002896c bl 0x68d78                                        |     fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_6:
    0x00028970 ldr r1, [pc, 0x124]                               |     
    0x00028972 movw r2, 0x9db                                    |     r2 = 0x9db;
    0x00028976 ldr r3, [pc, 0x124]                               |     
    0x00028978 ldr r0, [pc, 0x124]                               |     
    0x0002897a add r1, pc                                        |     r1 = 0x51416;
    0x0002897c add r3, pc                                        |     r3 = 0x5141e;
    0x0002897e adds r1, 7                                        |     r1 += 7;
    0x00028980 add r0, pc                                        |     r0 = 0x51424;
    0x00028982 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 |     do {
    0x00028986 mvn r4, 0x15                                      |         r4 = ~0x15;
    0x0002898a b 0x288c2                                         |         goto label_1;
                                                                 | label_14:
    0x0002898c ldr r1, [pc, 0x114]                               |         
    0x0002898e mov.w r2, 0x990                                   |         r2 = 0x990;
    0x00028992 ldr r3, [pc, 0x114]                               |         
    0x00028994 ldr r0, [pc, 0x114]                               |         
    0x00028996 add r1, pc                                        |         r1 = 0x5143e;
    0x00028998 add r3, pc                                        |         r3 = 0x51446;
    0x0002899a adds r1, 7                                        |         r1 += 7;
    0x0002899c add r0, pc                                        |         r0 = 0x5144c;
    0x0002899e bl 0x68d78                                        |         r0 = fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_12:
    0x000289a2 mov r4, r0                                        |         r4 = r0;
    0x000289a4 b 0x2890c                                         |         goto label_4;
                                                                 | label_8:
    0x000289a6 ldr r1, [pc, 0x108]                               |         
    0x000289a8 movw r2, 0x9dd                                    |         r2 = 0x9dd;
    0x000289ac ldr r3, [pc, 0x104]                               |         
    0x000289ae ldr r0, [pc, 0x108]                               |         
    0x000289b0 add r1, pc                                        |         r1 = 0x51466;
    0x000289b2 add r3, pc                                        |         r3 = 0x5146a;
    0x000289b4 adds r1, 7                                        |         r1 += 7;
    0x000289b6 add r0, pc                                        |         r0 = 0x51474;
    0x000289b8 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x000289bc b 0x28986                                         |         
                                                                 |     } while (1);
                                                                 | label_9:
    0x000289be ldr r1, [pc, 0xfc]                                |     
    0x000289c0 movw r2, 0x9de                                    |     r2 = 0x9de;
    0x000289c4 ldr r3, [pc, 0xf8]                                |     
    0x000289c6 mvn r4, 9                                         |     r4 = ~9;
    0x000289ca ldr r0, [pc, 0xf8]                                |     
    0x000289cc add r1, pc                                        |     r1 = 0x5148e;
    0x000289ce add r3, pc                                        |     r3 = 0x51492;
    0x000289d0 adds r1, 7                                        |     r1 += 7;
    0x000289d2 add r0, pc                                        |     r0 = 0x5149c;
    0x000289d4 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x000289d8 b 0x288c2                                         |     goto label_1;
                                                                 | label_24:
    0x000289da mov r7, r4                                        |     r7 = r4;
    0x000289dc mov r4, r0                                        |     r4 = r0;
    0x000289de mov r0, sl                                        |     r0 = sl;
    0x000289e0 blx 0xe5d4                                        |     write (r0, r1, r2);
    0x000289e4 movs r2, 0                                        |     r2 = 0;
    0x000289e6 mov r0, r7                                        |     r0 = r7;
    0x000289e8 mov r1, r2                                        |     r1 = r2;
    0x000289ea bl 0x668b4                                        |     fcn_000668b4 (r0, r1, r2);
    0x000289ee b 0x2890c                                         |     goto label_4;
                                                                 | label_10:
    0x000289f0 mvn r4, 0x6a                                      |     r4 = ~0x6a;
    0x000289f4 b 0x288c2                                         |     goto label_1;
                                                                 | label_11:
    0x000289f6 mvn r4, 2                                         |     r4 = ~2;
    0x000289fa b 0x288c2                                         |     goto label_1;
                                                                 | label_20:
    0x000289fc ldr r1, [pc, 0xc8]                                |     
    0x000289fe movw r2, 0x9bb                                    |     r2 = 0x9bb;
    0x00028a00 asrs r3, r7, 0xa                                  |     r3 = r7 >> 0xa;
    0x00028a02 ldr r3, [pc, 0xc8]                                |     
    0x00028a04 ldr r0, [pc, 0xc8]                                |     
    0x00028a06 add r1, pc                                        |     r1 = 0x514d2;
    0x00028a08 add r3, pc                                        |     r3 = 0x514da;
    0x00028a0a adds r1, 7                                        |     r1 += 7;
    0x00028a0c add r0, pc                                        |     r0 = 0x514e0;
    0x00028a0e bl 0x68d78                                        |     r0 = fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_21:
    0x00028a12 mov r2, r0                                        |     r2 = r0;
    0x00028a14 mov r1, r0                                        |     r1 = r0;
    0x00028a16 mov r0, r4                                        |     r0 = r4;
    0x00028a18 bl 0x668b4                                        |     fcn_000668b4 (r0, r1, r2);
                                                                 | label_15:
    0x00028a1c mvn r4, 0xb                                       |     r4 = ~0xb;
    0x00028a20 b 0x2890c                                         |     goto label_4;
                                                                 | label_23:
    0x00028a22 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x00028a24 mov r0, sl                                        |     r0 = sl;
    0x00028a26 blx 0xe5d4                                        |     write (r0, r1, r2);
    0x00028a2a ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00028a2c mov r0, r4                                        |     r0 = r4;
    0x00028a2e mov r1, r2                                        |     r1 = r2;
    0x00028a30 bl 0x668b4                                        |     fcn_000668b4 (r0, r1, r2);
    0x00028a34 b 0x28932                                         |     goto label_5;
                                                                 | label_26:
    0x00028a36 blx 0xed3c                                        |     strnlen ();
                                                                 | label_18:
    0x00028a3a mov r7, r4                                        |     r7 = r4;
    0x00028a3c mov r2, sl                                        |     r2 = sl;
    0x00028a3e mov r4, r0                                        |     r4 = r0;
    0x00028a40 mov r1, sl                                        |     r1 = sl;
    0x00028a42 mov r0, r7                                        |     r0 = r7;
    0x00028a44 bl 0x668b4                                        |     fcn_000668b4 (r0, r1, r2);
    0x00028a48 b 0x2890c                                         |     goto label_4;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x28ad4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.sd_bus_emit_object_removed ()                    | void sd_bus_emit_object_removed (uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_23h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00028ad4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00028ad8 mov r6, r1                                        |     r6 = r1;
    0x00028ada ldr r1, [pc, 0x388]                               |     
    0x00028adc sub sp, 0x34                                      |     
    0x00028ade movs r3, 0                                        |     r3 = 0;
    0x00028ae0 ldr r2, [pc, 0x384]                               |     r2 = *(0x28e68);
    0x00028ae2 add r1, pc                                        |     r1 = 0x5194c;
    0x00028ae4 ldr.w fp, [pc, 0x384]                             |     fp = *(0x00028e6c);
    0x00028ae8 ldr r2, [r1, r2]                                  |     
    0x00028aea add fp, pc                                        |     
    0x00028aec ldr r2, [r2]                                      |     r2 = *(0x5194c);
    0x00028aee str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x00028af0 mov.w r2, 0                                       |     r2 = 0;
    0x00028af4 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x00028af6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028af8 beq.w 0x28d88                                     |         void (*0x28d88)() ();
                                                                 |     }
    0x00028afc bl 0x2e4cc                                        |     r0 = fcn_0002e4cc (r0);
    0x00028b00 mov r5, r0                                        |     r5 = r0;
    0x00028b02 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028b04 beq.w 0x28cc2                                     |         goto label_0;
                                                                 |     }
    0x00028b08 mov r0, r6                                        |     r0 = r6;
    0x00028b0a bl 0x18e10                                        |     r0 = fcn_00018e10 (r0);
    0x00028b0e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028b10 beq.w 0x28dbe                                     |         goto label_1;
                                                                 |     }
    0x00028b14 mov r0, r5                                        |     r0 = r5;
    0x00028b16 bl 0x2f628                                        |     r0 = fcn_0002f628 (r0);
    0x00028b1a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028b1c bne.w 0x28dd6                                     |         goto label_2;
                                                                 |     }
    0x00028b20 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x00028b22 subs r3, 1                                        |     r3--;
    0x00028b24 cmp r3, 4                                         |     
                                                                 |     if (r3 > 4) {
    0x00028b26 bhi.w 0x28e08                                     |         goto label_3;
                                                                 |     }
    0x00028b2a strb.w r0, [sp, 0x23]                             |     var_23h = r0;
    0x00028b2e add.w r3, sp, 0x23                                |     r3 += var_23h;
    0x00028b32 mov r2, r6                                        |     r2 = r6;
    0x00028b34 add r1, sp, 0x28                                  |     r1 += var_28h;
    0x00028b36 mov r0, r5                                        |     r0 = r5;
    0x00028b38 bl 0x253c8                                        |     r0 = fcn_000253c8 (r0, r1, r2, r3);
    0x00028b3c subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00028b3e blt.w 0x28cdc                                     |         void (*0x28cdc)() ();
                                                                 |     }
                                                                 |     if (r4 != r0) {
    0x00028b42 beq.w 0x28e0e                                     |         
    0x00028b46 mov r0, r5                                        |         r0 = r5;
    0x00028b48 ldr.w sb, [pc, 0x324]                             |         
    0x00028b4c blx 0xeca0                                        |         mmap64 ()
    0x00028b50 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x00028b52 mov r8, r0                                        |         r8 = r0;
    0x00028b54 add sb, pc                                        |         sb = 0x519c8;
    0x00028b56 str r3, [sp, 0x10]                                |         var_10h = r3;
    0x00028b58 ldr r3, [pc, 0x318]                               |         
    0x00028b5a add r3, pc                                        |         r3 = 0x519d2;
    0x00028b5c str r3, [sp, 0x14]                                |         var_14h = r3;
    0x00028b5e ldr r3, [pc, 0x318]                               |         
    0x00028b60 add r3, pc                                        |         r3 = 0x519de;
    0x00028b62 str r3, [sp, 0x18]                                |         var_18h = r3;
    0x00028b64 add r3, sp, 0x24                                  |         r3 += var_24h;
    0x00028b66 str r3, [sp, 0x1c]                                |         var_1ch = r3;
                                                                 | label_0:
    0x00028cc2 ldr r1, [pc, 0x1c8]                               |         
    0x00028cc4 mov.w r2, 0xa90                                   |         r2 = 0xa90;
    0x00028cc8 ldr r3, [pc, 0x1c4]                               |         
    0x00028cca mvn r4, 0x40                                      |         r4 = ~0x40;
    0x00028cce ldr r0, [pc, 0x1c4]                               |         
    0x00028cd0 add r1, pc                                        |         r1 = 0x51b62;
    0x00028cd2 add r3, pc                                        |         r3 = 0x51b66;
    0x00028cd4 adds r1, 7                                        |         r1 += 7;
    0x00028cd6 add r0, pc                                        |         r0 = 0x51b70;
    0x00028cd8 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
                                                                 | label_1:
    0x00028dbe ldr r1, [pc, 0x108]                               |         
    0x00028dc0 movw r2, 0xa91                                    |         r2 = 0xa91;
    0x00028dc4 ldr r3, [pc, 0x104]                               |         
    0x00028dc6 ldr r0, [pc, 0x108]                               |         
    0x00028dc8 add r1, pc                                        |         r1 = 0x51c96;
    0x00028dca add r3, pc                                        |         r3 = 0x51c9a;
    0x00028dcc adds r1, 7                                        |         r1 += 7;
    0x00028dce add r0, pc                                        |         r0 = sd_id128_get_machine;
    0x00028dd0 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x00028dd4 b 0x28d9e                                         |         void (*0x28d9e)() ();
                                                                 | label_2:
    0x00028dd6 ldr r1, [pc, 0xfc]                                |         
    0x00028dd8 movw r2, 0xa92                                    |         r2 = 0xa92;
    0x00028ddc ldr r3, [pc, 0xf8]                                |         
    0x00028dde mvn r4, 9                                         |         r4 = ~9;
    0x00028de2 ldr r0, [pc, 0xf8]                                |         
    0x00028de4 add r1, pc                                        |         r1 = 0x51cbe;
    0x00028de6 add r3, pc                                        |         r3 = 0x51cc2;
    0x00028de8 adds r1, 7                                        |         r1 += 7;
    0x00028dea add r0, pc                                        |         r0 = 0x51ccc;
    0x00028dec bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x00028df0 b 0x28cdc                                         |         void (*0x28cdc)() ();
                                                                 | label_3:
    0x00028e08 mvn r4, 0x6a                                      |         r4 = ~0x6a;
    0x00028e0c b 0x28cdc                                         |         void (*0x28cdc)() ();
                                                                 |     }
    0x00028e0e mvn r4, 2                                         |     r4 = ~2;
    0x00028e12 b 0x28cdc                                         |     return void (*0x28cdc)() ();
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x2821c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.sd_bus_emit_properties_changed_strv ()           | void sd_bus_emit_properties_changed_strv (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1bh;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0002821c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00028220 mov r8, r2                                        |     r8 = r2;
    0x00028222 ldr r2, [pc, 0x238]                               |     
    0x00028224 mov r7, r3                                        |     r7 = r3;
    0x00028226 sub sp, 0x24                                      |     
    0x00028228 movs r4, 0                                        |     r4 = 0;
    0x0002822a ldr r3, [pc, 0x234]                               |     r3 = *(0x28462);
    0x0002822c add r2, pc                                        |     r2 = 0x5068e;
    0x0002822e ldr r3, [r2, r3]                                  |     
    0x00028230 ldr r3, [r3]                                      |     r3 = *(0x5068e);
    0x00028232 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00028234 mov.w r3, 0                                       |     r3 = 0;
    0x00028238 strb.w r4, [sp, 0x1b]                             |     var_1bh = r4;
    0x0002823c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002823e beq.w 0x283a8                                     |         goto label_7;
                                                                 |     }
    0x00028242 mov r6, r1                                        |     r6 = r1;
    0x00028244 bl 0x2e4cc                                        |     r0 = fcn_0002e4cc (r0);
    0x00028248 mov r5, r0                                        |     r5 = r0;
    0x0002824a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002824c beq.w 0x283c6                                     |         goto label_8;
                                                                 |     }
    0x00028250 mov r0, r6                                        |     r0 = r6;
    0x00028252 bl 0x18e10                                        |     r0 = fcn_00018e10 (r0);
    0x00028256 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028258 beq.w 0x283e8                                     |         goto label_9;
                                                                 |     }
    0x0002825c mov r0, r8                                        |     r0 = r8;
    0x0002825e bl 0x18ea8                                        |     r0 = fcn_00018ea8 (r0);
    0x00028262 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028264 beq.w 0x28400                                     |         goto label_10;
                                                                 |     }
    0x00028268 mov r0, r5                                        |     r0 = r5;
    0x0002826a bl 0x2f628                                        |     r0 = fcn_0002f628 (r0);
    0x0002826e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028270 bne.w 0x28418                                     |         goto label_11;
                                                                 |     }
    0x00028274 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x00028276 subs r3, 1                                        |     r3--;
    0x00028278 cmp r3, 4                                         |     
                                                                 |     if (r3 > 4) {
    0x0002827a bhi.w 0x2844a                                     |         goto label_12;
                                                                 |     }
                                                                 |     if (r7 != 0) {
    0x0002827e cbz r7, 0x28288                                   |         
    0x00028280 ldr r4, [r7]                                      |         r4 = *(r7);
    0x00028282 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00028284 beq.w 0x283e4                                     |             goto label_13;
                                                                 |         }
                                                                 |     }
    0x00028288 mov r0, r5                                        |     r0 = r5;
    0x0002828a blx 0xeca0                                        |     r0 = mmap64 ()
    0x0002828e mov fp, r0                                        |     
    0x00028290 mov r0, r6                                        |     r0 = r6;
    0x00028292 blx 0xe81c                                        |     r0 = fcn_0000e81c ();
    0x00028296 cmp.w r0, 0x10000                                 |     
                                                                 |     if (r0 > 0x10000) {
    0x0002829a bhi.w 0x28434                                     |         goto label_14;
                                                                 |     }
    0x0002829e adds r0, 1                                        |     r0++;
    0x000282a0 blx 0xece4                                        |     r0 = fcn_0000ece4 ();
    0x000282a4 mov r4, r0                                        |     r4 = r0;
    0x000282a6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000282a8 beq.w 0x28456                                     |         goto label_15;
                                                                 |     }
    0x000282ac add.w sb, sp, 0x1b                                |     sb += var_1bh;
    0x000282b0 str.w fp, [sp, 0x10]                              |     __asm ("str.w fp, [var_10h]");
                                                                 |     do {
                                                                 | label_0:
    0x000282b4 ldrb r1, [r5, 0x1d]                               |         r1 = *((r5 + 0x1d));
    0x000282b6 mov r3, r8                                        |         r3 = r8;
    0x000282b8 mov r2, r6                                        |         r2 = r6;
    0x000282ba mov r0, r5                                        |         r0 = r5;
    0x000282bc bfc r1, 1, 1                                      |         value_0 = BIT_MASK (1, );
                                                                 |         value_0 = ~value_0;
                                                                 |         r1 &= value_0;
    0x000282c0 strb r1, [r5, 0x1d]                               |         *((r5 + 0x1d)) = r1;
    0x000282c2 movs r1, 0                                        |         r1 = 0;
    0x000282c4 str r1, [sp]                                      |         *(sp) = r1;
    0x000282c6 mov r1, r6                                        |         r1 = r6;
    0x000282c8 strd sb, r7, [sp, 4]                              |         __asm ("strd sb, r7, [var_4h]");
    0x000282cc bl 0x27b1c                                        |         r0 = fcn_00027b1c (r0, r1, r2, r3, r4, r5, r6);
    0x000282d0 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000282d2 bne 0x283a0                                       |             goto label_16;
                                                                 |         }
    0x000282d4 ldrb r2, [r5, 0x1d]                               |         r2 = *((r5 + 0x1d));
    0x000282d6 lsls r2, r2, 0x1e                                 |         r2 <<= 0x1e;
    0x000282d8 bmi 0x282b4                                       |         
                                                                 |     } while (r2 < r2);
    0x000282da str r0, [sp, 0x14]                                |     var_14h = r0;
    0x000282dc mov r1, r6                                        |     r1 = r6;
    0x000282de mov r0, r4                                        |     r0 = r4;
    0x000282e0 blx 0xe9d0                                        |     raise (r0);
    0x000282e4 ldrb r2, [r4]                                     |     r2 = *(r4);
    0x000282e6 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000282e8 cmp r2, 0x2f                                      |     
                                                                 |     if (r2 != 0x2f) {
    0x000282ea bne 0x28302                                       |         goto label_17;
                                                                 |     }
    0x000282ec ldrb r2, [r4, 1]                                  |     r2 = *((r4 + 1));
                                                                 |     if (r2 != 0) {
    0x000282ee cbnz r2, 0x28302                                  |         goto label_17;
                                                                 |     }
                                                                 | label_1:
    0x000282f0 ldrb r2, [r5, 0x1d]                               |     r2 = *((r5 + 0x1d));
    0x000282f2 and r2, r2, 2                                     |     r2 &= 2;
    0x000282f6 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x000282f8 bne 0x282b4                                       |         goto label_0;
                                                                 |     }
    0x000282fa ldr.w fp, [sp, 0x10]                              |     fp = var_10h;
    0x000282fe mov sl, r3                                        |     sl = r3;
    0x00028300 b 0x28350                                         |     goto label_18;
                                                                 | label_17:
    0x00028302 movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00028304 mov r0, r4                                        |     r0 = r4;
    0x00028306 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00028308 blx 0xe3e0                                        |     fcn_0000e3e0 ();
    0x0002830c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0002830e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028310 beq 0x282f0                                       |         goto label_1;
                                                                 |     }
    0x00028312 mov.w sl, 0                                       |     sl = 0;
    0x00028316 mov.w fp, 1                                       |     
                                                                 | label_2:
    0x0002831a subs r3, r0, r4                                   |     r3 = r0 - r4;
    0x0002831c mov r2, r6                                        |     r2 = r6;
    0x0002831e clz r3, r3                                        |     r3 &= r3;
    0x00028322 mov r1, r4                                        |     r1 = r4;
    0x00028324 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x00028326 strb.w sl, [r0, r3]                               |     *((r0 + r3)) = sl;
    0x0002832a mov r3, r8                                        |     r3 = r8;
    0x0002832c mov r0, r5                                        |     r0 = r5;
    0x0002832e strd sb, r7, [sp, 4]                              |     __asm ("strd sb, r7, [var_4h]");
    0x00028332 str.w fp, [sp]                                    |     __asm ("str.w fp, [sp]");
    0x00028336 bl 0x27b1c                                        |     r0 = fcn_00027b1c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x0002833a cbnz r0, 0x28398                                  |         goto label_19;
                                                                 |     }
    0x0002833c ldrb r3, [r5, 0x1d]                               |     r3 = *((r5 + 0x1d));
    0x0002833e lsls r3, r3, 0x1e                                 |     r3 <<= 0x1e;
                                                                 |     if (r3 < r3) {
    0x00028340 bmi 0x282b4                                       |         goto label_0;
                                                                 |     }
    0x00028342 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x00028344 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 == 0x2f) {
    0x00028346 bne 0x2838a                                       |         
    0x00028348 ldrb r3, [r4, 1]                                  |         r3 = *((r4 + 1));
                                                                 |         if (r3 != 0) {
    0x0002834a cbnz r3, 0x2838a                                  |             goto label_20;
                                                                 |         }
                                                                 | label_3:
    0x0002834c ldrd fp, sl, [sp, 0x10]                           |         __asm ("ldrd fp, sl, [var_10h]");
                                                                 | label_18:
    0x00028350 ldrb.w r2, [sp, 0x1b]                             |         r2 = var_1bh;
    0x00028354 cmp r2, 0                                         |         
    0x00028356 it eq                                             |         
                                                                 |         if (r2 != 0) {
    0x00028358 mvneq sl, 1                                       |             sl = ~1;
                                                                 |         }
                                                                 | label_4:
    0x0002835c cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x00028360 beq 0x28368                                       |             
    0x00028362 mov r0, fp                                        |             r0 = fp;
    0x00028364 blx 0xe4e8                                        |             fcn_0000e4e8 ();
                                                                 |         }
                                                                 | label_5:
    0x00028368 mov r0, r4                                        |         r0 = r4;
    0x0002836a blx 0xe5d4                                        |         write (r0, r1, r2);
    0x0002836e ldr r1, [pc, 0xf4]                                |         
    0x00028370 ldr r2, [pc, 0xec]                                |         r2 = *(0x28460);
    0x00028372 add r1, pc                                        |         r1 = 0x507dc;
    0x00028374 ldr r2, [r1, r2]                                  |         r2 = *(0x507dc);
    0x00028376 ldr r1, [r2]                                      |         r1 = *(0x507dc);
    0x00028378 ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x0002837a eors r1, r2                                       |         r1 ^= r2;
    0x0002837c mov.w r2, 0                                       |         r2 = 0;
                                                                 |         if (r1 != r2) {
    0x00028380 bne 0x28452                                       |             goto label_21;
                                                                 |         }
    0x00028382 mov r0, sl                                        |         r0 = sl;
    0x00028384 add sp, 0x24                                      |         
    0x00028386 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
                                                                 | label_20:
    0x0002838a movs r1, 0x2f                                     |     r1 = 0x2f;
    0x0002838c mov r0, r4                                        |     r0 = r4;
    0x0002838e blx 0xe3e0                                        |     r0 = fcn_0000e3e0 ();
    0x00028392 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028394 bne 0x2831a                                       |         goto label_2;
                                                                 |     }
    0x00028396 b 0x2834c                                         |     goto label_3;
                                                                 | label_19:
    0x00028398 ldr.w fp, [sp, 0x10]                              |     fp = var_10h;
    0x0002839c mov sl, r0                                        |     sl = r0;
    0x0002839e b 0x2835c                                         |     goto label_4;
                                                                 | label_16:
    0x000283a0 ldr.w fp, [sp, 0x10]                              |     fp = var_10h;
    0x000283a4 mov sl, r0                                        |     sl = r0;
    0x000283a6 b 0x2835c                                         |     goto label_4;
                                                                 | label_7:
    0x000283a8 ldr r1, [pc, 0xbc]                                |     
    0x000283aa movw r2, 0x8e7                                    |     r2 = 0x8e7;
    0x000283ae ldr r3, [pc, 0xbc]                                |     
    0x000283b0 ldr r0, [pc, 0xbc]                                |     
    0x000283b2 add r1, pc                                        |     r1 = 0x5081e;
    0x000283b4 add r3, pc                                        |     r3 = 0x50826;
    0x000283b6 adds r1, 7                                        |     r1 += 7;
    0x000283b8 add r0, pc                                        |     r0 = 0x5082c;
    0x000283ba bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 |     do {
                                                                 | label_6:
    0x000283be movs r4, 0                                        |         r4 = 0;
    0x000283c0 mvn sl, 0x15                                      |         sl = ~0x15;
    0x000283c4 b 0x28368                                         |         goto label_5;
                                                                 | label_8:
    0x000283c6 ldr r1, [pc, 0xac]                                |         
    0x000283c8 movw r2, 0x8e8                                    |         r2 = 0x8e8;
    0x000283cc ldr r3, [pc, 0xa8]                                |         
    0x000283ce mov r4, r5                                        |         r4 = r5;
    0x000283d0 ldr r0, [pc, 0xa8]                                |         
    0x000283d2 mvn sl, 0x40                                      |         sl = ~0x40;
    0x000283d6 add r1, pc                                        |         r1 = 0x50850;
    0x000283d8 add r3, pc                                        |         r3 = 0x50854;
    0x000283da adds r1, 7                                        |         r1 += 7;
    0x000283dc add r0, pc                                        |         r0 = 0x5085c;
    0x000283de bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x000283e2 b 0x28368                                         |         goto label_5;
                                                                 | label_13:
    0x000283e4 mov sl, r4                                        |         sl = r4;
    0x000283e6 b 0x28368                                         |         goto label_5;
                                                                 | label_9:
    0x000283e8 ldr r1, [pc, 0x94]                                |         
    0x000283ea movw r2, 0x8e9                                    |         r2 = 0x8e9;
    0x000283ee ldr r3, [pc, 0x94]                                |         
    0x000283f0 ldr r0, [pc, 0x94]                                |         
    0x000283f2 add r1, pc                                        |         r1 = 0x50876;
    0x000283f4 add r3, pc                                        |         r3 = 0x5087e;
    0x000283f6 adds r1, 7                                        |         r1 += 7;
    0x000283f8 add r0, pc                                        |         r0 = 0x50884;
    0x000283fa bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x000283fe b 0x283be                                         |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x00028400 ldr r1, [pc, 0x88]                                |     
    0x00028402 movw r2, 0x8ea                                    |     r2 = 0x8ea;
    0x00028406 ldr r3, [pc, 0x88]                                |     
    0x00028408 ldr r0, [pc, 0x88]                                |     
    0x0002840a add r1, pc                                        |     r1 = 0x5089a;
    0x0002840c add r3, pc                                        |     r3 = 0x508a2;
    0x0002840e adds r1, 7                                        |     r1 += 7;
    0x00028410 add r0, pc                                        |     r0 = 0x508a8;
    0x00028412 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x00028416 b 0x283be                                         |     goto label_6;
                                                                 | label_11:
    0x00028418 ldr r1, [pc, 0x7c]                                |     
    0x0002841a movw r2, 0x8eb                                    |     r2 = 0x8eb;
    0x0002841e ldr r3, [pc, 0x7c]                                |     
    0x00028420 mvn sl, 9                                         |     sl = ~9;
    0x00028424 ldr r0, [pc, 0x78]                                |     
    0x00028426 add r1, pc                                        |     r1 = 0x508c2;
    0x00028428 add r3, pc                                        |     r3 = 0x508ca;
    0x0002842a adds r1, 7                                        |     r1 += 7;
    0x0002842c add r0, pc                                        |     r0 = 0x508d0;
    0x0002842e bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x00028432 b 0x28368                                         |     goto label_5;
                                                                 | label_14:
    0x00028434 ldr r1, [pc, 0x6c]                                |     
    0x00028436 movw r2, 0x8fa                                    |     r2 = 0x8fa;
    0x0002843a ldr r3, [pc, 0x6c]                                |     
    0x0002843c ldr r0, [pc, 0x6c]                                |     
    0x0002843e add r1, pc                                        |     r1 = 0x508e6;
    0x00028440 add r3, pc                                        |     r3 = 0x508ee;
    0x00028442 adds r1, 7                                        |     r1 += 7;
    0x00028444 add r0, pc                                        |     r0 = 0x508f4;
    0x00028446 bl 0x68d78                                        |     r0 = fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_12:
    0x0002844a mov r4, r0                                        |     r4 = r0;
    0x0002844c mvn sl, 0x6a                                      |     sl = ~0x6a;
    0x00028450 b 0x28368                                         |     goto label_5;
                                                                 | label_21:
    0x00028452 blx 0xed3c                                        |     strnlen ();
                                                                 | label_15:
    0x00028456 mvn sl, 0xb                                       |     sl = ~0xb;
    0x0002845a b 0x2835c                                         |     goto label_4;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1c6a8 */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) sym.sd_bus_message_new ()                    | void sd_bus_message_new (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0001c6a8 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0001c6ac cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001c6ae beq 0x1c75e                               |         goto label_1;
                                                         |     }
    0x0001c6b0 mov r6, r1                                |     r6 = r1;
    0x0001c6b2 mov r7, r2                                |     r7 = r2;
    0x0001c6b4 bl 0x2e4cc                                |     r0 = fcn_0002e4cc (r0);
    0x0001c6b8 mov r5, r0                                |     r5 = r0;
    0x0001c6ba cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001c6bc beq 0x1c77a                               |         goto label_2;
                                                         |     }
    0x0001c6be ldr r3, [r0, 4]                           |     r3 = *((r0 + 4));
    0x0001c6c0 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0001c6c2 beq 0x1c796                               |         goto label_3;
                                                         |     }
    0x0001c6c4 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0001c6c6 beq 0x1c7ae                               |         goto label_4;
                                                         |     }
    0x0001c6c8 cmp r7, 4                                 |     
                                                         |     if (r7 > 4) {
    0x0001c6ca bhi 0x1c7ca                               |         goto label_5;
                                                         |     }
    0x0001c6cc mov.w r1, 0x210                           |     r1 = 0x210;
    0x0001c6d0 movs r0, 1                                |     r0 = 1;
    0x0001c6d2 blx 0xe2f8                                |     r0 = fcn_0000e2f8 ();
    0x0001c6d6 mov r4, r0                                |     r4 = r0;
    0x0001c6d8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001c6da beq.w 0x1c7e2                             |         goto label_6;
                                                         |     }
    0x0001c6de mov.w r8, 1                               |     r8 = 1;
    0x0001c6e2 str.w r8, [r0]                            |     __asm ("str.w r8, [r0]");
    0x0001c6e6 mov r0, r5                                |     r0 = r5;
    0x0001c6e8 blx 0xeca0                                |     mmap64 ()
    0x0001c6ec add.w r3, r4, 0x200                       |     r3 = r4 + 0x200;
    0x0001c6f0 str r0, [r4, 8]                           |     *((r4 + 8)) = r0;
    0x0001c6f2 str.w r3, [r4, 0x104]                     |     __asm ("str.w r3, aav.0x000000ff");
    0x0001c6f4 adds r1, 4                                |     r1 += 4;
    0x0001c6f6 movs r3, 0x6c                             |     r3 = 0x6c;
    0x0001c6f8 strb.w r7, [r4, 0x201]                    |     *((r4 + 0x201)) = r7;
    0x0001c6fc strb.w r3, [r4, 0x200]                    |     *((r4 + 0x200)) = r3;
    0x0001c700 ldrb r2, [r5, 0x14]                       |     r2 = *((r5 + 0x14));
    0x0001c702 strb.w r2, [r4, 0x203]                    |     *((r4 + 0x203)) = r2;
    0x0001c706 ldrb r3, [r5, 0x1c]                       |     r3 = *((r5 + 0x1c));
    0x0001c708 lsls r1, r3, 0x1f                         |     r1 = r3 << 0x1f;
    0x0001c70a bpl 0x1c748                               |     
                                                         |     while (1) {
    0x0001c70c ldrb.w r3, [r4, 0x100]                    |         r3 = *((r4 + 0x100));
    0x0001c710 sub.w r2, r2, 2                           |         r2 -= 2;
    0x0001c714 clz r2, r2                                |         r2 &= r2;
    0x0001c718 movs r0, 0                                |         r0 = 0;
    0x0001c71a lsrs r2, r2, 5                            |         r2 >>= 5;
    0x0001c71c bfi r3, r8, 2, 1                          |         value_0 = BIT_MASK (2, 1);
                                                         |         value_1 = r8 & value_0;
                                                         |         value_0 = ~value_0;
                                                         |         r3 &= value_0;
                                                         |         r3 |= value_1;
    0x0001c720 strb.w r3, [r4, 0x100]                    |         *((r4 + 0x100)) = r3;
    0x0001c724 ldrb.w r3, [r4, 0x165]                    |         r3 = *((r4 + 0x165));
    0x0001c728 bfi r3, r2, 0, 1                          |         value_2 = BIT_MASK (0, 1);
                                                         |         value_3 = r2 & value_2;
                                                         |         value_2 = ~value_2;
                                                         |         r3 &= value_2;
                                                         |         r3 |= value_3;
    0x0001c72c strb.w r3, [r4, 0x165]                    |         *((r4 + 0x165)) = r3;
    0x0001c730 ldrb r3, [r5, 0x1d]                       |         r3 = *((r5 + 0x1d));
    0x0001c732 str r4, [r6]                              |         *(r6) = r4;
    0x0001c734 lsls r3, r3, 0x19                         |         r3 <<= 0x19;
    0x0001c736 ittt mi                                   |         
                                                         |         if (r3 >= r3) {
    0x0001c738 ldrbmi r3, [r4, 0x202]                    |             r3 = *((r4 + 0x202));
                                                         |         }
                                                         |         if (r3 >= r3) {
    0x0001c73c orrmi r3, r3, 4                           |             r3 |= 4;
                                                         |         }
                                                         |         if (r3 < r3) {
    0x0001c740 strb.w r3, [r4, 0x202]                    |             *((r4 + 0x202)) = r3;
                                                         |         }
                                                         | label_0:
    0x0001c744 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x0001c748 ldr r3, [r5, 4]                           |         r3 = *((r5 + 4));
    0x0001c74a sub.w r8, r3, 4                           |         r8 = r3 - 4;
    0x0001c74e cmp.w r8, 1                               |         
    0x0001c752 ite ls                                    |         
                                                         |         if (r8 > 1) {
    0x0001c754 movls r8, 0                               |             r8 = 0;
                                                         |         }
                                                         |         if (r8 > 1) {
    0x0001c758 mov.w r8, 1                               |             r8 = 1;
                                                         |         }
    0x0001c75c b 0x1c70c                                 |         
                                                         |     }
                                                         | label_1:
    0x0001c75e ldr r1, [pc, 0x88]                        |     
    0x0001c760 mov.w r2, 0x24c                           |     r2 = 0x24c;
    0x0001c764 ldr r3, [pc, 0x84]                        |     
    0x0001c766 ldr r0, [pc, 0x88]                        |     
    0x0001c768 add r1, pc                                |     r1 = 0x38f56;
    0x0001c76a add r3, pc                                |     r3 = 0x38f5a;
    0x0001c76c adds r1, 7                                |     r1 += 7;
    0x0001c76e add r0, pc                                |     r0 = 0x38f64;
    0x0001c770 bl 0x68f74                                |     fcn_00068f74 (r0, r1, r2, r3);
                                                         |     do {
    0x0001c774 mvn r0, 0x6a                              |         r0 = ~0x6a;
    0x0001c778 b 0x1c744                                 |         goto label_0;
                                                         | label_2:
    0x0001c77a ldr r1, [pc, 0x78]                        |         
    0x0001c77c movw r2, 0x24d                            |         r2 = 0x24d;
    0x0001c780 ldr r3, [pc, 0x74]                        |         
    0x0001c782 ldr r0, [pc, 0x78]                        |         
    0x0001c784 add r1, pc                                |         r1 = 0x38f7e;
    0x0001c786 add r3, pc                                |         r3 = 0x38f82;
    0x0001c788 adds r1, 7                                |         r1 += 7;
    0x0001c78a add r0, pc                                |         r0 = 0x38f8c;
    0x0001c78c bl 0x68f74                                |         fcn_00068f74 (r0, r1, r2, r3);
    0x0001c790 mvn r0, 0x40                              |         r0 = ~0x40;
    0x0001c794 b 0x1c744                                 |         goto label_0;
                                                         | label_3:
    0x0001c796 ldr r1, [pc, 0x68]                        |         
    0x0001c798 movw r2, 0x24e                            |         r2 = 0x24e;
    0x0001c79c ldr r3, [pc, 0x64]                        |         
    0x0001c79e ldr r0, [pc, 0x68]                        |         
    0x0001c7a0 add r1, pc                                |         r1 = 0x38fa6;
    0x0001c7a2 add r3, pc                                |         r3 = 0x38faa;
    0x0001c7a4 adds r1, 7                                |         r1 += 7;
    0x0001c7a6 add r0, pc                                |         r0 = 0x38fb4;
    0x0001c7a8 bl 0x68f74                                |         fcn_00068f74 (r0, r1, r2, r3);
    0x0001c7ac b 0x1c774                                 |         
                                                         |     } while (1);
                                                         | label_4:
    0x0001c7ae ldr r1, [pc, 0x5c]                        |     
    0x0001c7b0 movw r2, 0x24f                            |     r2 = 0x24f;
    0x0001c7b4 ldr r3, [pc, 0x58]                        |     
    0x0001c7b6 ldr r0, [pc, 0x5c]                        |     
    0x0001c7b8 add r1, pc                                |     r1 = 0x38fca;
    0x0001c7ba add r3, pc                                |     r3 = 0x38fce;
    0x0001c7bc adds r1, 7                                |     r1 += 7;
    0x0001c7be add r0, pc                                |     r0 = 0x38fd8;
    0x0001c7c0 bl 0x68f74                                |     fcn_00068f74 (r0, r1, r2, r3);
                                                         |     do {
    0x0001c7c4 mvn r0, 0x15                              |         r0 = ~0x15;
    0x0001c7c8 b 0x1c744                                 |         goto label_0;
                                                         | label_5:
    0x0001c7ca ldr r1, [pc, 0x4c]                        |         
    0x0001c7cc movw r2, 0x251                            |         r2 = 0x251;
    0x0001c7d0 ldr r3, [pc, 0x48]                        |         
    0x0001c7d2 ldr r0, [pc, 0x4c]                        |         
    0x0001c7d4 add r1, pc                                |         r1 = 0x38ff2;
    0x0001c7d6 add r3, pc                                |         r3 = 0x38ff6;
    0x0001c7d8 adds r1, 7                                |         r1 += 7;
    0x0001c7da add r0, pc                                |         r0 = 0x39000;
    0x0001c7dc bl 0x68f74                                |         fcn_00068f74 (r0, r1, r2, r3);
    0x0001c7e0 b 0x1c7c4                                 |         
                                                         |     } while (1);
                                                         | label_6:
    0x0001c7e2 mvn r0, 0xb                               |     r0 = ~0xb;
    0x0001c7e6 b 0x1c744                                 |     goto label_0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1c9b8 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.sd_bus_message_new_signal ()                     | void sd_bus_message_new_signal (int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_48h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
                                                                 | label_2:
    0x0001c4f8 ldr r3, [r5, 8]                                   |     r3 = *((r5 + 8));
    0x0001c4fa cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001c4fc beq.w 0x1c656                                     |         goto label_8;
                                                                 |     }
    0x0001c500 ldr r1, [r5, 0xc]                                 |     r1 = *((r5 + 0xc));
    0x0001c502 cmp r7, 0x6c                                      |     
    0x0001c504 ldr r3, [sp, 0x34]                                |     r3 = *(arg_34h);
    0x0001c506 ldr r0, [r5, 4]                                   |     r0 = *((r5 + 4));
    0x0001c508 it ne                                             |     
                                                                 |     if (r7 != 0x6c) {
    0x0001c50a revne r1, r1                                      |         __asm ("revne r1, r1");
                                                                 |     }
    0x0001c50c sub.w r3, r3, 0x10                                |     r3 -= 0x10;
    0x0001c510 it ne                                             |     
                                                                 |     if (r7 != 0x6c) {
    0x0001c512 revne r0, r0                                      |         __asm ("revne r0, r0");
                                                                 |     }
    0x0001c514 cmp r1, r3                                        |     
    0x0001c516 strd r1, r0, [r4, 0x114]                          |     __asm ("strd r1, r0, aav.0x000000ff");
                                                                 |     if (r1 > r3) {
    0x0001c51a bhi.w 0x1c656                                     |         goto label_8;
                                                                 |     }
    0x0001c51e adds r1, 7                                        |     r1 += 7;
    0x0001c520 bic r1, r1, 7                                     |     r1 = BIT_MASK (r1, 7);
    0x0001c524 cmp r3, r1                                        |     
                                                                 |     if (r3 <= r1) {
    0x0001c526 blo.w 0x1c656                                     |         goto label_8;
                                                                 |     }
    0x0001c52a subs r3, r3, r1                                   |     r3 -= r1;
    0x0001c52c cmp r3, r0                                        |     
                                                                 |     if (r3 != r0) {
    0x0001c52e bne.w 0x1c656                                     |         goto label_8;
                                                                 |     }
    0x0001c532 ldr r3, [sp, 0x38]                                |     r3 = *(arg_38h);
    0x0001c534 str.w r3, [r4, 0x160]                             |     __asm ("str.w r3, aav.0x000000ff");
    0x0001c538 ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001c53a str.w r3, [r4, 0x15c]                             |     __asm ("str.w r3, aav.0x000000ff");
    0x0001c53e ldr r3, [sp, 0x40]                                |     r3 = *(arg_40h);
                                                                 |     if (r3 != 0) {
    0x0001c540 cbz r3, 0x1c55c                                   |         
    0x0001c542 ldr r0, [sp, 4]                                   |         r0 = var_4h;
    0x0001c544 mov r1, r3                                        |         r1 = r3;
    0x0001c546 add.w r2, sl, 1                                   |         r2 = sl + 1;
    0x0001c54a add r0, r4                                        |         r0 += r4;
    0x0001c54c str.w r0, [r4, 0xc4]                              |         __asm ("str.w r0, [r4, 0xc4]");
    0x0001c550 blx 0xe8b0                                        |         fcn_0000e8b0 ();
    0x0001c554 ldr r3, [r4, 0x40]                                |         r3 = *((r4 + 0x40));
    0x0001c556 orr r3, r3, 0x8000000                             |         r3 |= 0x8000000;
    0x0001c55a str r3, [r4, 0x40]                                |         *((r4 + 0x40)) = r3;
                                                                 |     }
    0x0001c55c movs r3, 1                                        |     r3 = 1;
    0x0001c55e mov r0, sb                                        |     r0 = sb;
    0x0001c560 str r3, [r4]                                      |     *(r4) = r3;
    0x0001c562 blx 0xeca0                                        |     mmap64 ()
    0x0001c566 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x0001c568 str r0, [r4, 8]                                   |     *((r4 + 8)) = r0;
    0x0001c56a str r4, [r3]                                      |     *(r3) = r4;
    0x0001c56c movs r4, 0                                        |     r4 = 0;
    0x0001c56e mov r5, r4                                        |     r5 = r4;
                                                                 |     do {
    0x0001c570 mov r0, r4                                        |         r0 = r4;
    0x0001c572 blx 0xe5d4                                        |         write (r0, r1, r2);
    0x0001c576 mov r0, r5                                        |         r0 = r5;
    0x0001c578 add sp, 0xc                                       |         
    0x0001c57a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_8:
    0x0001c656 mvn r5, 0x49                                      |         r5 = ~0x49;
    0x0001c65a b 0x1c570                                         |         
                                                                 |     } while (1);
    0x0001c9b8 push.w {r4, r5, r6, r7, r8, lr}                   |     
    0x0001c9bc mov r6, r2                                        |     r6 = r2;
    0x0001c9be ldr r2, [pc, 0x1cc]                               |     
    0x0001c9c0 mov r7, r3                                        |     r7 = r3;
    0x0001c9c2 sub sp, 0x18                                      |     
    0x0001c9c4 movs r4, 0                                        |     r4 = 0;
    0x0001c9c6 ldr r3, [pc, 0x1c8]                               |     r3 = *(0x1cb92);
    0x0001c9c8 add r2, pc                                        |     r2 = 0x3955a;
    0x0001c9ca ldr.w r8, [sp, 0x30]                              |     r8 = *(arg_30h);
    0x0001c9ce ldr r3, [r2, r3]                                  |     
    0x0001c9d0 ldr r3, [r3]                                      |     r3 = *(0x3955a);
    0x0001c9d2 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0001c9d4 mov.w r3, 0                                       |     r3 = 0;
    0x0001c9d8 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x0001c9da cmp r0, 0                                         |     
                                                                 |     if (arg_30h == ) {
    0x0001c9dc beq.w 0x1caf0                                     |         goto label_9;
                                                                 |     }
    0x0001c9e0 mov r5, r1                                        |     r5 = r1;
    0x0001c9e2 bl 0x2e4cc                                        |     r0 = fcn_0002e4cc (r0);
    0x0001c9e6 mov r4, r0                                        |     r4 = r0;
    0x0001c9e8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c9ea beq 0x1ca96                                       |         
    0x0001c9ec ldr r3, [r0, 4]                                   |         r3 = *((r0 + 4));
    0x0001c9ee cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001c9f0 beq.w 0x1cb0c                                     |             goto label_10;
                                                                 |         }
    0x0001c9f4 mov r0, r6                                        |         r0 = r6;
    0x0001c9f6 bl 0x18e10                                        |         r0 = fcn_00018e10 (r0);
    0x0001c9fa cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001c9fc beq.w 0x1cb24                                     |             goto label_11;
                                                                 |         }
    0x0001ca00 mov r0, r7                                        |         r0 = r7;
    0x0001ca02 bl 0x18ea8                                        |         r0 = fcn_00018ea8 (r0);
    0x0001ca06 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001ca08 beq.w 0x1cb3c                                     |             goto label_12;
                                                                 |         }
    0x0001ca0c mov r0, r8                                        |         r0 = r8;
    0x0001ca0e bl 0x1900c                                        |         r0 = fcn_0001900c (r0);
    0x0001ca12 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001ca14 beq.w 0x1cb54                                     |             goto label_13;
                                                                 |         }
    0x0001ca18 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0001ca1a beq 0x1cad4                                       |             goto label_14;
                                                                 |         }
    0x0001ca1c mov r0, r4                                        |         r0 = r4;
    0x0001ca1e movs r2, 4                                        |         r2 = 4;
    0x0001ca20 add r1, sp, 0x10                                  |         r1 += var_10h;
    0x0001ca22 blx 0xec10                                        |         r0 = fcn_0000ec10 ();
    0x0001ca26 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0001ca28 blt.w 0x1cb82                                     |             goto label_15;
                                                                 |         }
    0x0001ca2c ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0001ca2e cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001ca30 beq.w 0x1cb6c                                     |             goto label_16;
                                                                 |         }
    0x0001ca34 ldr.w r2, [r3, 0x104]                             |         r2 = *((r3 + 0x104));
    0x0001ca38 movs r1, 0x6f                                     |         r1 = 0x6f;
    0x0001ca3a ldrb r3, [r2, 2]                                  |         r3 = *((r2 + 2));
    0x0001ca3c orr r3, r3, 1                                     |         r3 |= 1;
    0x0001ca40 strb r3, [r2, 2]                                  |         *((r2 + 2)) = r3;
    0x0001ca42 movs r2, 1                                        |         r2 = 1;
    0x0001ca44 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0001ca46 movs r3, 0                                        |         r3 = 0;
    0x0001ca48 strd r1, r6, [sp]                                 |         __asm ("strd r1, r6, [sp]");
    0x0001ca4c add.w r1, r0, 0x18                                |         r1 = r0 + 0x18;
    0x0001ca50 str r1, [sp, 8]                                   |         var_8h = r1;
    0x0001ca52 bl 0x1bcc4                                        |         r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001ca56 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 < r0) {
    0x0001ca58 blt 0x1cab0                                       |             goto label_0;
                                                                 |         }
    0x0001ca5a ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0001ca5c movs r6, 0x73                                     |         r6 = 0x73;
    0x0001ca5e movs r2, 2                                        |         r2 = 2;
    0x0001ca60 str r7, [sp, 4]                                   |         var_4h = r7;
    0x0001ca62 str r6, [sp]                                      |         *(sp) = r6;
    0x0001ca64 add.w r3, r0, 0x1c                                |         r3 = r0 + 0x1c;
    0x0001ca68 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0001ca6a movs r3, 0                                        |         r3 = 0;
    0x0001ca6c bl 0x1bcc4                                        |         r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001ca70 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 < r0) {
    0x0001ca72 blt 0x1cab0                                       |             goto label_0;
                                                                 |         }
    0x0001ca74 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0001ca76 movs r2, 3                                        |         r2 = 3;
    0x0001ca78 movs r3, 0                                        |         r3 = 0;
    0x0001ca7a str.w r8, [sp, 4]                                 |         __asm ("str.w r8, [var_4h]");
    0x0001ca7e str r6, [sp]                                      |         *(sp) = r6;
    0x0001ca80 add.w r1, r0, 0x20                                |         r1 = r0 + 0x20;
    0x0001ca84 str r1, [sp, 8]                                   |         var_8h = r1;
    0x0001ca86 bl 0x1bcc4                                        |         r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001ca8a subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 < r0) {
    0x0001ca8c blt 0x1cab0                                       |             goto label_0;
                                                                 |         }
    0x0001ca8e ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0001ca90 movs r4, 0                                        |         r4 = 0;
    0x0001ca92 str r3, [r5]                                      |         *(r5) = r3;
    0x0001ca94 b 0x1cab8                                         |         goto label_17;
                                                                 |     }
    0x0001ca96 ldr r1, [pc, 0xfc]                                |     
    0x0001ca98 movw r2, 0x272                                    |     r2 = 0x272;
    0x0001ca9c ldr r3, [pc, 0xf8]                                |     
    0x0001ca9e mvn r4, 0x40                                      |     r4 = ~0x40;
    0x0001caa2 ldr r0, [pc, 0xf8]                                |     
    0x0001caa4 add r1, pc                                        |     r1 = 0x3963e;
    0x0001caa6 add r3, pc                                        |     r3 = 0x39642;
    0x0001caa8 adds r1, 7                                        |     r1 += 7;
    0x0001caaa add r0, pc                                        |     r0 = 0x3964c;
    0x0001caac bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 |     do {
                                                                 | label_0:
    0x0001cab0 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
                                                                 |         if (r0 != 0) {
    0x0001cab2 cbz r0, 0x1cab8                                   |             
    0x0001cab4 blx 0xefbc                                        |             fcn_0000efbc ();
                                                                 |         }
                                                                 | label_17:
    0x0001cab8 ldr r2, [pc, 0xe4]                                |         
    0x0001caba ldr r3, [pc, 0xd4]                                |         r3 = *(0x1cb92);
    0x0001cabc add r2, pc                                        |         r2 = 0x39660;
    0x0001cabe ldr r3, [r2, r3]                                  |         r3 = *(0x39660);
    0x0001cac0 ldr r2, [r3]                                      |         r2 = *(0x39660);
    0x0001cac2 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0001cac4 eors r2, r3                                       |         r2 ^= r3;
    0x0001cac6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001caca bne 0x1cb88                                       |             goto label_18;
                                                                 |         }
    0x0001cacc mov r0, r4                                        |         r0 = r4;
    0x0001cace add sp, 0x18                                      |         
    0x0001cad0 pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_14:
    0x0001cad4 ldr r1, [pc, 0xcc]                                |         
    0x0001cad6 movw r2, 0x277                                    |         r2 = 0x277;
    0x0001cada ldr r3, [pc, 0xcc]                                |         
    0x0001cadc ldr r0, [pc, 0xcc]                                |         
    0x0001cade add r1, pc                                        |         r1 = 0x39686;
    0x0001cae0 add r3, pc                                        |         r3 = 0x3968e;
    0x0001cae2 adds r1, 7                                        |         r1 += 7;
    0x0001cae4 add r0, pc                                        |         r0 = 0x39694;
    0x0001cae6 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
                                                                 | label_1:
    0x0001caea mvn r4, 0x15                                      |         r4 = ~0x15;
    0x0001caee b 0x1cab0                                         |         
                                                                 |     } while (1);
                                                                 | label_9:
    0x0001caf0 ldr r1, [pc, 0xbc]                                |     
    0x0001caf2 movw r2, 0x271                                    |     r2 = 0x271;
    0x0001caf6 ldr r3, [pc, 0xbc]                                |     
    0x0001caf8 ldr r0, [pc, 0xbc]                                |     
    0x0001cafa add r1, pc                                        |     r1 = 0x396ae;
    0x0001cafc add r3, pc                                        |     r3 = 0x396b6;
    0x0001cafe adds r1, 7                                        |     r1 += 7;
    0x0001cb00 add r0, pc                                        |     r0 = 0x396bc;
    0x0001cb02 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 |     do {
    0x0001cb06 mvn r4, 0x6a                                      |         r4 = ~0x6a;
    0x0001cb0a b 0x1cab0                                         |         goto label_0;
                                                                 | label_10:
    0x0001cb0c ldr r1, [pc, 0xac]                                |         
    0x0001cb0e movw r2, 0x273                                    |         r2 = 0x273;
    0x0001cb12 ldr r3, [pc, 0xac]                                |         
    0x0001cb14 ldr r0, [pc, 0xac]                                |         
    0x0001cb16 add r1, pc                                        |         r1 = 0x396d6;
    0x0001cb18 add r3, pc                                        |         r3 = 0x396de;
    0x0001cb1a adds r1, 7                                        |         r1 += 7;
    0x0001cb1c add r0, pc                                        |         r0 = 0x396e4;
    0x0001cb1e bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x0001cb22 b 0x1cb06                                         |         
                                                                 |     } while (1);
                                                                 | label_11:
    0x0001cb24 ldr r1, [pc, 0xa0]                                |     
    0x0001cb26 mov.w r2, 0x274                                   |     r2 = 0x274;
    0x0001cb2a ldr r3, [pc, 0xa0]                                |     
    0x0001cb2c ldr r0, [pc, 0xa0]                                |     
    0x0001cb2e add r1, pc                                        |     r1 = 0x396fa;
    0x0001cb30 add r3, pc                                        |     r3 = 0x39702;
    0x0001cb32 adds r1, 7                                        |     r1 += 7;
    0x0001cb34 add r0, pc                                        |     r0 = 0x39708;
    0x0001cb36 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cb3a b 0x1caea                                         |     goto label_1;
                                                                 | label_12:
    0x0001cb3c ldr r1, [pc, 0x94]                                |     
    0x0001cb3e movw r2, 0x275                                    |     r2 = 0x275;
    0x0001cb42 ldr r3, [pc, 0x94]                                |     
    0x0001cb44 ldr r0, [pc, 0x94]                                |     
    0x0001cb46 add r1, pc                                        |     r1 = 0x3971e;
    0x0001cb48 add r3, pc                                        |     r3 = 0x39726;
    0x0001cb4a adds r1, 7                                        |     r1 += 7;
    0x0001cb4c add r0, pc                                        |     r0 = 0x3972c;
    0x0001cb4e bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cb52 b 0x1caea                                         |     goto label_1;
                                                                 | label_13:
    0x0001cb54 ldr r1, [pc, 0x88]                                |     
    0x0001cb56 movw r2, 0x276                                    |     r2 = 0x276;
    0x0001cb5a ldr r3, [pc, 0x88]                                |     
    0x0001cb5c ldr r0, [pc, 0x88]                                |     
    0x0001cb5e add r1, pc                                        |     r1 = 0x39742;
    0x0001cb60 add r3, pc                                        |     r3 = 0x3974a;
    0x0001cb62 adds r1, 7                                        |     r1 += 7;
    0x0001cb64 add r0, pc                                        |     r0 = 0x39750;
    0x0001cb66 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cb6a b 0x1caea                                         |     goto label_1;
                                                                 | label_16:
    0x0001cb6c ldr r1, [pc, 0x7c]                                |     
    0x0001cb6e movw r2, 0x27d                                    |     r2 = 0x27d;
    0x0001cb72 ldr r3, [pc, 0x7c]                                |     
    0x0001cb74 ldr r0, [pc, 0x7c]                                |     
    0x0001cb76 add r1, pc                                        |     r1 = 0x39766;
    0x0001cb78 add r3, pc                                        |     r3 = 0x3976e;
    0x0001cb7a adds r1, 7                                        |     r1 += 7;
    0x0001cb7c add r0, pc                                        |     r0 = 0x39774;
    0x0001cb7e bl 0x68d78                                        |     fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_15:
    0x0001cb82 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0001cb86 b 0x1cab0                                         |     goto label_0;
                                                                 | label_18:
    0x0001cb88 blx 0xed3c                                        |     strnlen ();
    0x0001cb8c cdp2 p0, 0xb, c0, c12, c7, 0                      |     __asm ("cdp2 p0, 0xb, c0, c12, c7, 0");
    0x0001cb90 lsls r4, r6, 0x1c                                 |     r4 = r6 << 0x1c;
    0x0001cb92 movs r0, r0                                       |     
                                                                 |     if (r0 == r0) {
    0x0001cb94 bne 0x1cc18                                       |         
    0x0001cb96 movs r5, r0                                       |         r5 = r0;
    0x0001cb98 b 0x1c4f8                                         |         goto label_2;
                                                                 |     }
    0x0001cc18 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001cc1a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001cc1c beq.w 0x1cd40                                     |         goto label_19;
                                                                 |     }
    0x0001cc20 mov r7, r1                                        |     r7 = r1;
    0x0001cc22 bl 0x2e4cc                                        |     r0 = fcn_0002e4cc (r0);
    0x0001cc26 mov r4, r0                                        |     r4 = r0;
    0x0001cc28 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001cc2a beq 0x1ccec                                       |         
    0x0001cc2c ldr r3, [r0, 4]                                   |         r3 = *((r0 + 4));
    0x0001cc2e cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001cc30 beq.w 0x1cd5c                                     |             goto label_20;
                                                                 |         }
    0x0001cc34 cmp r6, 0                                         |         
                                                                 |         if (r6 != 0) {
    0x0001cc36 bne.w 0x1cd74                                     |             goto label_21;
                                                                 |         }
                                                                 | label_4:
    0x0001cc3a mov r0, r5                                        |         r0 = r5;
    0x0001cc3c bl 0x18e10                                        |         r0 = fcn_00018e10 (r0);
    0x0001cc40 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001cc42 beq.w 0x1cd98                                     |             goto label_22;
                                                                 |         }
    0x0001cc46 cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x0001cc4a bne.w 0x1cdb4                                     |             goto label_23;
                                                                 |         }
                                                                 | label_6:
    0x0001cc4e mov r0, sb                                        |         r0 = sb;
    0x0001cc50 bl 0x1900c                                        |         r0 = fcn_0001900c (r0);
    0x0001cc54 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001cc56 beq.w 0x1cdd8                                     |             goto label_24;
                                                                 |         }
    0x0001cc5a cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x0001cc5c beq.w 0x1cdf0                                     |             goto label_25;
                                                                 |         }
    0x0001cc60 mov r0, r4                                        |         r0 = r4;
    0x0001cc62 movs r2, 1                                        |         r2 = 1;
    0x0001cc64 add r1, sp, 0x10                                  |         r1 += var_10h;
    0x0001cc66 blx 0xec10                                        |         r0 = fcn_0000ec10 ();
    0x0001cc6a cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0001cc6c blt.w 0x1ce08                                     |             goto label_26;
                                                                 |         }
    0x0001cc70 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0001cc72 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001cc74 beq 0x1cd2a                                       |             goto label_27;
                                                                 |         }
    0x0001cc76 add.w r3, r0, 0x18                                |         r3 = r0 + 0x18;
    0x0001cc7a movs r2, 1                                        |         r2 = 1;
    0x0001cc7c str r3, [sp, 8]                                   |         var_8h = r3;
    0x0001cc7e movs r3, 0x6f                                     |         r3 = 0x6f;
    0x0001cc80 str r3, [sp]                                      |         *(sp) = r3;
    0x0001cc82 movs r3, 0                                        |         r3 = 0;
    0x0001cc84 str r5, [sp, 4]                                   |         var_4h = r5;
    0x0001cc86 bl 0x1bcc4                                        |         r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001cc8a subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 < r0) {
    0x0001cc8c blt 0x1cd06                                       |             goto label_5;
                                                                 |         }
    0x0001cc8e ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0001cc90 movs r5, 0x73                                     |         r5 = 0x73;
    0x0001cc92 movs r2, 3                                        |         r2 = 3;
    0x0001cc94 str.w sb, [sp, 4]                                 |         __asm ("str.w sb, [var_4h]");
    0x0001cc98 str r5, [sp]                                      |         *(sp) = r5;
    0x0001cc9a add.w r3, r0, 0x20                                |         r3 = r0 + 0x20;
    0x0001cc9e str r3, [sp, 8]                                   |         var_8h = r3;
    0x0001cca0 movs r3, 0                                        |         r3 = 0;
    0x0001cca2 bl 0x1bcc4                                        |         r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001cca6 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 < r0) {
    0x0001cca8 blt 0x1cd06                                       |             goto label_5;
                                                                 |         }
    0x0001ccaa ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0001ccac cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x0001ccb0 beq 0x1ccca                                       |             
    0x0001ccb2 add.w r1, r0, 0x1c                                |             r1 = r0 + 0x1c;
    0x0001ccb6 movs r2, 2                                        |             r2 = 2;
    0x0001ccb8 movs r3, 0                                        |             r3 = 0;
    0x0001ccba strd r5, r8, [sp]                                 |             __asm ("strd r5, r8, [sp]");
    0x0001ccbe str r1, [sp, 8]                                   |             var_8h = r1;
    0x0001ccc0 bl 0x1bcc4                                        |             r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001ccc4 subs r4, r0, 0                                    |             r4 = r0 - 0;
                                                                 |             if (r4 < r0) {
    0x0001ccc6 blt 0x1cd06                                       |                 goto label_5;
                                                                 |             }
    0x0001ccc8 ldr r0, [sp, 0x10]                                |             r0 = var_10h;
                                                                 |         }
                                                                 |         if (r6 != 0) {
    0x0001ccca cbz r6, 0x1cce6                                   |             
    0x0001cccc add.w r3, r0, 0x24                                |             r3 = r0 + 0x24;
    0x0001ccd0 movs r1, 0x73                                     |             r1 = 0x73;
    0x0001ccd2 strd r6, r3, [sp, 4]                              |             __asm ("strd r6, r3, [var_8h]");
    0x0001ccd6 movs r2, 6                                        |             r2 = 6;
    0x0001ccd8 movs r3, 0                                        |             r3 = 0;
    0x0001ccda str r1, [sp]                                      |             *(sp) = r1;
    0x0001ccdc bl 0x1bcc4                                        |             r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001cce0 subs r4, r0, 0                                    |             r4 = r0 - 0;
                                                                 |             if (r4 < r0) {
    0x0001cce2 blt 0x1cd06                                       |                 goto label_5;
                                                                 |             }
    0x0001cce4 ldr r0, [sp, 0x10]                                |             r0 = var_10h;
                                                                 |         }
    0x0001cce6 movs r4, 0                                        |         r4 = 0;
    0x0001cce8 str r0, [r7]                                      |         *(r7) = r0;
    0x0001ccea b 0x1cd0e                                         |         goto label_28;
                                                                 |     }
    0x0001ccec ldr r1, [pc, 0x12c]                               |     
    0x0001ccee movw r2, 0x29b                                    |     r2 = 0x29b;
    0x0001ccf2 ldr r3, [pc, 0x12c]                               |     
    0x0001ccf4 mvn r4, 0x40                                      |     r4 = ~0x40;
    0x0001ccf8 ldr r0, [pc, 0x128]                               |     
    0x0001ccfa add r1, pc                                        |     r1 = 0x39b1a;
    0x0001ccfc add r3, pc                                        |     r3 = 0x39b22;
    0x0001ccfe adds r1, 7                                        |     r1 += 7;
    0x0001cd00 add r0, pc                                        |     r0 = 0x39b28;
    0x0001cd02 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 |     do {
                                                                 | label_5:
    0x0001cd06 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
                                                                 |         if (r0 != 0) {
    0x0001cd08 cbz r0, 0x1cd0e                                   |             
    0x0001cd0a blx 0xefbc                                        |             fcn_0000efbc ();
                                                                 |         }
                                                                 | label_28:
    0x0001cd0e ldr r2, [pc, 0x118]                               |         
    0x0001cd10 ldr r3, [pc, 0x104]                               |         r3 = *(0x1ce18);
    0x0001cd12 add r2, pc                                        |         r2 = 0x39b40;
    0x0001cd14 ldr r3, [r2, r3]                                  |         r3 = *(0x39b40);
    0x0001cd16 ldr r2, [r3]                                      |         r2 = *(0x39b40);
    0x0001cd18 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0001cd1a eors r2, r3                                       |         r2 ^= r3;
    0x0001cd1c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001cd20 bne 0x1ce0e                                       |             goto label_29;
                                                                 |         }
    0x0001cd22 mov r0, r4                                        |         r0 = r4;
    0x0001cd24 add sp, 0x1c                                      |         
    0x0001cd26 pop.w {r4, r5, r6, r7, r8, sb, pc}                |         
                                                                 | label_27:
    0x0001cd2a ldr r1, [pc, 0x100]                               |         
    0x0001cd2c movw r2, 0x2a7                                    |         r2 = 0x2a7;
    0x0001cd30 ldr r3, [pc, 0xfc]                                |         
    0x0001cd32 ldr r0, [pc, 0x100]                               |         
    0x0001cd34 add r1, pc                                        |         r1 = 0x39b66;
    0x0001cd36 add r3, pc                                        |         r3 = 0x39b6a;
    0x0001cd38 adds r1, 7                                        |         r1 += 7;
    0x0001cd3a add r0, pc                                        |         r0 = 0x39b74;
    0x0001cd3c bl 0x68d78                                        |         fcn_00068d78 (r0, r1, r2, r3);
                                                                 | label_19:
    0x0001cd40 ldr r1, [pc, 0xf4]                                |         
    0x0001cd42 movw r2, 0x29a                                    |         r2 = 0x29a;
    0x0001cd46 ldr r3, [pc, 0xf4]                                |         
    0x0001cd48 ldr r0, [pc, 0xf4]                                |         
    0x0001cd4a add r1, pc                                        |         r1 = 0x39b86;
    0x0001cd4c add r3, pc                                        |         r3 = 0x39b8e;
    0x0001cd4e adds r1, 7                                        |         r1 += 7;
    0x0001cd50 add r0, pc                                        |         r0 = 0x39b94;
    0x0001cd52 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
                                                                 | label_3:
    0x0001cd56 mvn r4, 0x6a                                      |         r4 = ~0x6a;
    0x0001cd5a b 0x1cd06                                         |         
                                                                 |     } while (1);
                                                                 | label_20:
    0x0001cd5c ldr r1, [pc, 0xe4]                                |     
    0x0001cd5e mov.w r2, 0x29c                                   |     r2 = 0x29c;
    0x0001cd62 ldr r3, [pc, 0xe4]                                |     
    0x0001cd64 ldr r0, [pc, 0xe4]                                |     
    0x0001cd66 add r1, pc                                        |     r1 = 0x39bae;
    0x0001cd68 add r3, pc                                        |     r3 = 0x39bb6;
    0x0001cd6a adds r1, 7                                        |     r1 += 7;
    0x0001cd6c add r0, pc                                        |     r0 = 0x39bbc;
    0x0001cd6e bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cd72 b 0x1cd56                                         |     goto label_3;
                                                                 | label_21:
    0x0001cd74 mov r0, r6                                        |     r0 = r6;
    0x0001cd76 bl 0x18f68                                        |     r0 = fcn_00018f68 (r0);
    0x0001cd7a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001cd7c bne.w 0x1cc3a                                     |         goto label_4;
                                                                 |     }
    0x0001cd80 ldr r1, [pc, 0xcc]                                |     
    0x0001cd82 movw r2, 0x29d                                    |     r2 = 0x29d;
    0x0001cd86 ldr r3, [pc, 0xcc]                                |     
    0x0001cd88 ldr r0, [pc, 0xcc]                                |     
    0x0001cd8a add r1, pc                                        |     r1 = 0x39bde;
    0x0001cd8c add r3, pc                                        |     r3 = 0x39be6;
    0x0001cd8e adds r1, 7                                        |     r1 += 7;
    0x0001cd90 add r0, pc                                        |     r0 = 0x39bec;
    0x0001cd92 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cd96 b 0x1cdae                                         |     goto label_7;
                                                                 | label_22:
    0x0001cd98 ldr r1, [pc, 0xc0]                                |     
    0x0001cd9a movw r2, 0x29e                                    |     r2 = 0x29e;
    0x0001cd9e ldr r3, [pc, 0xc0]                                |     
    0x0001cda0 ldr r0, [pc, 0xc0]                                |     
    0x0001cda2 add r1, pc                                        |     r1 = 0x39c02;
    0x0001cda4 add r3, pc                                        |     r3 = 0x39c0a;
    0x0001cda6 adds r1, 7                                        |     r1 += 7;
    0x0001cda8 add r0, pc                                        |     r0 = 0x39c10;
    0x0001cdaa bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
                                                                 | label_7:
    0x0001cdae mvn r4, 0x15                                      |     r4 = ~0x15;
    0x0001cdb2 b 0x1cd06                                         |     goto label_5;
                                                                 | label_23:
    0x0001cdb4 mov r0, r8                                        |     r0 = r8;
    0x0001cdb6 bl 0x18ea8                                        |     r0 = fcn_00018ea8 (r0);
    0x0001cdba cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001cdbc bne.w 0x1cc4e                                     |         goto label_6;
                                                                 |     }
    0x0001cdc0 ldr r1, [pc, 0xa4]                                |     
    0x0001cdc2 movw r2, 0x29f                                    |     r2 = 0x29f;
    0x0001cdc6 ldr r3, [pc, 0xa4]                                |     
    0x0001cdc8 ldr r0, [pc, 0xa4]                                |     
    0x0001cdca add r1, pc                                        |     r1 = 0x39c36;
    0x0001cdcc add r3, pc                                        |     r3 = 0x39c3e;
    0x0001cdce adds r1, 7                                        |     r1 += 7;
    0x0001cdd0 add r0, pc                                        |     r0 = 0x39c44;
    0x0001cdd2 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cdd6 b 0x1cdae                                         |     goto label_7;
                                                                 | label_24:
    0x0001cdd8 ldr r1, [pc, 0x98]                                |     
    0x0001cdda mov.w r2, 0x2a0                                   |     r2 = 0x2a0;
    0x0001cdde ldr r3, [pc, 0x98]                                |     
    0x0001cde0 ldr r0, [pc, 0x98]                                |     
    0x0001cde2 add r1, pc                                        |     r1 = 0x39c5a;
    0x0001cde4 add r3, pc                                        |     r3 = 0x39c62;
    0x0001cde6 adds r1, 7                                        |     r1 += 7;
    0x0001cde8 add r0, pc                                        |     r0 = 0x39c68;
    0x0001cdea bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001cdee b 0x1cdae                                         |     goto label_7;
                                                                 | label_25:
    0x0001cdf0 ldr r1, [pc, 0x8c]                                |     
    0x0001cdf2 movw r2, 0x2a1                                    |     r2 = 0x2a1;
    0x0001cdf6 ldr r3, [pc, 0x8c]                                |     
    0x0001cdf8 ldr r0, [pc, 0x8c]                                |     
    0x0001cdfa add r1, pc                                        |     r1 = 0x39c7e;
    0x0001cdfc add r3, pc                                        |     r3 = 0x39c86;
    0x0001cdfe adds r1, 7                                        |     r1 += 7;
    0x0001ce00 add r0, pc                                        |     r0 = 0x39c8c;
    0x0001ce02 bl 0x68f74                                        |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001ce06 b 0x1cdae                                         |     goto label_7;
                                                                 | label_26:
    0x0001ce08 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0001ce0c b 0x1cd06                                         |     goto label_5;
                                                                 | label_29:
    0x0001ce0e blx 0xed3c                                        |     strnlen ();
    0x0001ce12 nop                                               |     
    0x0001ce14 ldc2l p0, c0, [lr], -0x1c                         |     __asm ("ldc2l p0, c0, [lr], -0x1c");
    0x0001ce18 lsls r4, r6, 0x1c                                 |     r4 = r6 << 0x1c;
    0x0001ce1a movs r0, r0                                       |     
    0x0001ce1c ldm r6, {r1, r3, r5, r6, r7}                      |     r1 = *(r6);
                                                                 |     r3 = *((r6 + 4));
                                                                 |     r5 = *((r6 + 8));
                                                                 |     r6 = *((r6 + 12));
                                                                 |     r7 = *((r6 + 16));
    0x0001ce1e movs r5, r0                                       |     r5 = r0;
    0x0001ce20 b 0x1d214                                         |     
                                                                 |     while (1) {
    0x0001d1fe mvn r0, 0x15                                      |         r0 = ~0x15;
    0x0001d202 pop {r3, pc}                                      |         
    0x0001d214 add r0, pc                                        |         r0 += pc;
    0x0001d216 bl 0x68f74                                        |         fcn_00068f74 (r0, r1, r2, r3);
    0x0001d21a b 0x1d1fe                                         |         
                                                                 |     }
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1cbf8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sd_bus_message_new_method_call ()            | void sd_bus_message_new_method_call (int16_t arg_38h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0001cbf8 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0001cbfc mov r6, r2                                    |     r6 = r2;
    0x0001cbfe ldr r2, [pc, 0x214]                           |     
    0x0001cc00 mov r5, r3                                    |     r5 = r3;
    0x0001cc02 sub sp, 0x1c                                  |     
    0x0001cc04 ldr r3, [pc, 0x210]                           |     r3 = *(0x1ce18);
    0x0001cc06 add r2, pc                                    |     r2 = 0x39a20;
    0x0001cc08 ldrd r8, sb, [sp, 0x38]                       |     __asm ("ldrd r8, sb, [arg_38h]");
    0x0001cc0c ldr r3, [r2, r3]                              |     
    0x0001cc0e ldr r3, [r3]                                  |     r3 = *(0x39a20);
    0x0001cc10 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x0001cc12 mov.w r3, 0                                   |     r3 = 0;
    0x0001cc16 movs r3, 0                                    |     r3 = 0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1d0a8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sd_bus_message_new_method_return ()          | void sd_bus_message_new_method_return (int16_t arg2) {
                                                             |     r1 = arg2;
    0x0001d0a8 mov r2, r1                                    |     r2 = r1;
    0x0001d0aa movs r1, 2                                    |     r1 = 2;
    0x0001d0ac b.w 0x1ce8c                                   |     return void (*0x1ce8c)() ();
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1e140 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sd_bus_message_new_method_error ()       | void sd_bus_message_new_method_error (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         | label_1:
    0x0001e084 str r7, [r7, 0x28]                        |     *((r7 + 0x28)) = r7;
    0x0001e086 ldr r3, [pc, 0xa0]                        |     
    0x0001e088 ldr r0, [pc, 0xa0]                        |     
    0x0001e08a add r1, pc                                |     r1 += pc;
    0x0001e08c add r3, pc                                |     r3 = 0x3c1ba;
    0x0001e08e adds r1, 7                                |     r1 += 7;
    0x0001e090 add r0, pc                                |     r0 = 0x3c1c0;
    0x0001e092 orr r0, sl, 0x71                          |     r0 = sl | 0x71;
    0x0001e140 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0001e144 mov r6, r1                                |     r6 = r1;
    0x0001e146 ldr r1, [pc, 0xd4]                        |     
    0x0001e148 mov r5, r2                                |     r5 = r2;
    0x0001e14a sub sp, 0x18                              |     
    0x0001e14c mov r4, r0                                |     r4 = r0;
    0x0001e14e ldr r3, [pc, 0xd0]                        |     r3 = *(0x1e222);
    0x0001e150 movs r2, 0                                |     r2 = 0;
    0x0001e152 add r1, pc                                |     r1 = 0x3c374;
    0x0001e154 mov r0, r5                                |     r0 = r5;
    0x0001e156 ldr r3, [r1, r3]                          |     
    0x0001e158 ldr r3, [r3]                              |     r3 = *(0x3c374);
    0x0001e15a str r3, [sp, 0x14]                        |     var_14h = r3;
    0x0001e15c mov.w r3, 0                               |     r3 = 0;
    0x0001e160 str r2, [sp, 0x10]                        |     var_10h = r2;
    0x0001e162 blx 0xe804                                |     r0 = fcn_0000e804 ();
    0x0001e166 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e168 beq 0x1e1e4                               |         goto label_2;
                                                         |     }
    0x0001e16a cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0001e16c beq 0x1e200                               |         goto label_3;
                                                         |     }
    0x0001e16e mov r0, r4                                |     r0 = r4;
    0x0001e170 add r2, sp, 0x10                          |     r2 += var_10h;
    0x0001e172 movs r1, 3                                |     r1 = 3;
    0x0001e174 bl 0x1ce8c                                |     r0 = fcn_0001ce8c (r0, r1);
    0x0001e178 subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 >= r0) {
    0x0001e17a blt 0x1e1be                               |         
    0x0001e17c ldr r7, [sp, 0x10]                        |         r7 = var_10h;
    0x0001e17e mov.w r8, 0x73                            |         r8 = 0x73;
    0x0001e182 ldr r2, [r5]                              |         r2 = *(r5);
    0x0001e184 str.w r8, [sp]                            |         __asm ("str.w r8, [sp]");
    0x0001e188 add.w r3, r7, 0x2c                        |         r3 = r7 + 0x2c;
    0x0001e18c mov r0, r7                                |         r0 = r7;
    0x0001e18e strd r2, r3, [sp, 4]                      |         __asm ("strd r2, r3, [sp, 4]");
    0x0001e192 movs r2, 4                                |         r2 = 4;
    0x0001e194 movs r3, 0                                |         r3 = 0;
    0x0001e196 bl 0x1bcc4                                |         r0 = fcn_0001bcc4 (r0, r1, r2);
    0x0001e19a subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 >= r0) {
    0x0001e19c blt 0x1e1c0                               |             
    0x0001e19e ldr r2, [r5, 4]                           |             r2 = *((r5 + 4));
                                                         |             if (r2 != 0) {
    0x0001e1a0 cbz r2, 0x1e1b2                           |                 
    0x0001e1a2 add.w r3, r7, 0x30                        |                 r3 = r7 + 0x30;
    0x0001e1a6 mov r1, r8                                |                 r1 = r8;
    0x0001e1a8 mov r0, r7                                |                 r0 = r7;
    0x0001e1aa bl 0x1dc5c                                |                 r0 = fcn_0001dc5c (r0, r1, r2, r3, r4);
    0x0001e1ae subs r4, r0, 0                            |                 r4 = r0 - 0;
                                                         |                 if (r4 < r0) {
    0x0001e1b0 blt 0x1e1c0                               |                     goto label_4;
                                                         |                 }
                                                         |             }
    0x0001e1b2 mov.w r3, -1                              |             r3 = -1;
    0x0001e1b6 movs r4, 0                                |             r4 = 0;
    0x0001e1b8 str r3, [r7, 0x34]                        |             *((r7 + 0x34)) = r3;
    0x0001e1ba str r7, [r6]                              |             *(r6) = r7;
    0x0001e1bc b 0x1e1c8                                 |             
                                                         |         } else {
    0x0001e1be ldr r7, [sp, 0x10]                        |             r7 = var_10h;
                                                         |         }
                                                         |         if (r7 == 0) {
                                                         | label_4:
    0x0001e1c0 cbz r7, 0x1e1c8                           |             goto label_5;
                                                         |         }
    0x0001e1c2 mov r0, r7                                |         r0 = r7;
    0x0001e1c4 blx 0xefbc                                |         fcn_0000efbc ();
                                                         |     }
                                                         |     do {
                                                         | label_5:
    0x0001e1c8 ldr r2, [pc, 0x58]                        |         
    0x0001e1ca ldr r3, [pc, 0x54]                        |         r3 = *(0x1e222);
    0x0001e1cc add r2, pc                                |         r2 = 0x3c3f4;
    0x0001e1ce ldr r3, [r2, r3]                          |         r3 = *(0x3c3f4);
    0x0001e1d0 ldr r2, [r3]                              |         r2 = *(0x3c3f4);
    0x0001e1d2 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0001e1d4 eors r2, r3                               |         r2 ^= r3;
    0x0001e1d6 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0001e1da bne 0x1e218                               |             goto label_6;
                                                         |         }
    0x0001e1dc mov r0, r4                                |         r0 = r4;
    0x0001e1de add sp, 0x18                              |         
    0x0001e1e0 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_2:
    0x0001e1e4 ldr r1, [pc, 0x40]                        |         
    0x0001e1e6 movw r2, 0x301                            |         r2 = 0x301;
    0x0001e1ea ldr r3, [pc, 0x40]                        |         
    0x0001e1ec ldr r0, [pc, 0x40]                        |         
    0x0001e1ee add r1, pc                                |         r1 = 0x3c41a;
    0x0001e1f0 add r3, pc                                |         r3 = 0x3c422;
    0x0001e1f2 adds r1, 7                                |         r1 += 7;
    0x0001e1f4 add r0, pc                                |         r0 = 0x3c428;
    0x0001e1f6 bl 0x68f74                                |         fcn_00068f74 (r0, r1, r2, r3);
                                                         | label_0:
    0x0001e1fa mvn r4, 0x15                              |         r4 = ~0x15;
    0x0001e1fe b 0x1e1c8                                 |         
                                                         |     } while (1);
                                                         | label_3:
    0x0001e200 ldr r1, [pc, 0x30]                        |     
    0x0001e202 movw r2, 0x302                            |     r2 = 0x302;
    0x0001e206 ldr r3, [pc, 0x30]                        |     
    0x0001e208 ldr r0, [pc, 0x30]                        |     
    0x0001e20a add r1, pc                                |     r1 = 0x3c442;
    0x0001e20c add r3, pc                                |     r3 = 0x3c44a;
    0x0001e20e adds r1, 7                                |     r1 += 7;
    0x0001e210 add r0, pc                                |     r0 = 0x3c450;
    0x0001e212 bl 0x68f74                                |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001e216 b 0x1e1fa                                 |     goto label_0;
                                                         | label_6:
    0x0001e218 blx 0xed3c                                |     strnlen ();
    0x0001e21c b 0x1e084                                 |     goto label_1;
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1e240 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sd_bus_message_new_method_errorf ()      | void sd_bus_message_new_method_errorf (int16_t arg_30h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_2ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0001e240 push {r3}                                 |     
    0x0001e242 movs r3, 0                                |     r3 = 0;
    0x0001e244 push {r4, r5, r6, lr}                     |     
    0x0001e246 mov r6, r0                                |     r6 = r0;
    0x0001e248 mov r4, r1                                |     r4 = r1;
    0x0001e24a sub sp, 0x1c                              |     
    0x0001e24c ldr r0, [pc, 0x98]                        |     
    0x0001e24e ldr r1, [pc, 0x9c]                        |     r1 = *(0x1e2ee);
    0x0001e250 vmov.i32 d16, 0                           |     __asm ("vmov.i32 d16, 0");
    0x0001e254 add r0, pc                                |     r0 = 0x3c540;
    0x0001e256 ldr r5, [sp, 0x2c]                        |     r5 = var_2ch;
    0x0001e258 vstr d16, [sp, 8]                         |     __asm ("vstr d16, [sp, 8]");
    0x0001e25c ldr r1, [r0, r1]                          |     
    0x0001e25e ldr r1, [r1]                              |     r1 = *(0x3c540);
    0x0001e260 str r1, [sp, 0x14]                        |     var_14h = r1;
    0x0001e262 mov.w r1, 0                               |     r1 = 0;
    0x0001e266 str r3, [sp, 0x10]                        |     var_10h = r3;
                                                         |     if (r2 == 0) {
    0x0001e268 cbz r2, 0x1e2ae                           |         goto label_1;
                                                         |     }
                                                         |     if (r4 == 0) {
    0x0001e26a cbz r4, 0x1e2cc                           |         goto label_2;
                                                         |     }
    0x0001e26c mov r1, r2                                |     r1 = r2;
    0x0001e26e mov r2, r5                                |     r2 = r5;
    0x0001e270 add r5, sp, 8                             |     r5 += var_8h;
    0x0001e272 add r3, sp, 0x30                          |     r3 += arg_30h;
    0x0001e274 mov r0, r5                                |     r0 = r5;
    0x0001e276 str r3, [sp, 4]                           |     var_4h = r3;
    0x0001e278 bl 0x18078                                |     fcn_00018078 (r0, r1, r2, r3);
    0x0001e27c mov r1, r4                                |     r1 = r4;
    0x0001e27e mov r2, r5                                |     r2 = r5;
    0x0001e280 mov r0, r6                                |     r0 = r6;
    0x0001e282 blx 0xeb94                                |     r0 = fcn_0000eb94 ();
    0x0001e286 mov r4, r0                                |     r4 = r0;
                                                         |     do {
    0x0001e288 mov r0, r5                                |         r0 = r5;
    0x0001e28a blx 0xe1dc                                |         fcn_0000e1dc ();
    0x0001e28c vshll.s32 q2, d8, 8                       |         __asm ("vshll.s32 q2, d8, 8");
    0x0001e290 ldr r3, [pc, 0x58]                        |         r3 = *(0x1e2ec);
    0x0001e292 add r2, pc                                |         r2 += pc;
    0x0001e294 ldr r3, [r2, r3]                          |         r3 = *((r2 + r3));
    0x0001e296 ldr r2, [r3]                              |         r2 = *(0x1e2ec);
    0x0001e298 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0001e29a eors r2, r3                               |         r2 ^= r3;
    0x0001e29c mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0001e2a0 bne 0x1e2e4                               |             goto label_3;
                                                         |         }
    0x0001e2a2 mov r0, r4                                |         r0 = r4;
    0x0001e2a4 add sp, 0x1c                              |         
    0x0001e2a6 pop.w {r4, r5, r6, lr}                    |         
    0x0001e2aa add sp, 4                                 |         
    0x0001e2ac bx lr                                     |         return;
                                                         | label_1:
    0x0001e2ae ldr r1, [pc, 0x44]                        |         
    0x0001e2b0 movw r2, 0x322                            |         r2 = 0x322;
    0x0001e2b4 ldr r3, [pc, 0x40]                        |         
    0x0001e2b6 ldr r0, [pc, 0x44]                        |         
    0x0001e2b8 add r1, pc                                |         r1 = 0x3c5b2;
    0x0001e2ba add r3, pc                                |         r3 = 0x3c5b6;
    0x0001e2bc adds r1, 7                                |         r1 += 7;
    0x0001e2be add r0, pc                                |         r0 = 0x3c5c0;
    0x0001e2c0 bl 0x68f74                                |         fcn_00068f74 (r0, r1, r2, r3);
                                                         | label_0:
    0x0001e2c4 mvn r4, 0x15                              |         r4 = ~0x15;
    0x0001e2c8 add r5, sp, 8                             |         r5 += var_8h;
    0x0001e2ca b 0x1e288                                 |         
                                                         |     } while (1);
                                                         | label_2:
    0x0001e2cc ldr r1, [pc, 0x30]                        |     
    0x0001e2ce movw r2, 0x323                            |     r2 = 0x323;
    0x0001e2d2 ldr r3, [pc, 0x30]                        |     
    0x0001e2d4 ldr r0, [pc, 0x30]                        |     
    0x0001e2d6 add r1, pc                                |     r1 = 0x3c5da;
    0x0001e2d8 add r3, pc                                |     r3 = 0x3c5e2;
    0x0001e2da adds r1, 7                                |     r1 += 7;
    0x0001e2dc add r0, pc                                |     r0 = 0x3c5e8;
    0x0001e2de bl 0x68f74                                |     fcn_00068f74 (r0, r1, r2, r3);
    0x0001e2e2 b 0x1e2c4                                 |     goto label_0;
                                                         | label_3:
    0x0001e2e4 blx 0xed3c                                |     strnlen ();
    0x0001e2e8 b 0x1df4c                                 |     return void (*0x1df4c)() ();
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1e30c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sd_bus_message_new_method_errno ()       | void sd_bus_message_new_method_errno (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0001e30c push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0001e310 mov r6, r1                                |     r6 = r1;
    0x0001e312 ldr r1, [pc, 0x78]                        |     
    0x0001e314 mov r8, r2                                |     r8 = r2;
    0x0001e316 sub sp, 0x10                              |     
    0x0001e318 mov r4, r3                                |     r4 = r3;
    0x0001e31a ldr r2, [pc, 0x74]                        |     r2 = *(0x1e392);
    0x0001e31c movs r3, 0                                |     r3 = 0;
    0x0001e31e vmov.i32 d16, 0                           |     __asm ("vmov.i32 d16, 0");
    0x0001e322 add r1, pc                                |     r1 = 0x3c6b4;
    0x0001e324 mov r5, r0                                |     r5 = r0;
    0x0001e326 mov r0, r4                                |     r0 = r4;
    0x0001e328 vstr d16, [sp]                            |     __asm ("vstr d16, [sp]");
    0x0001e32c ldr r2, [r1, r2]                          |     
    0x0001e32e ldr r2, [r2]                              |     r2 = *(0x3c6b4);
    0x0001e330 str r2, [sp, 0xc]                         |     var_ch = r2;
    0x0001e332 mov.w r2, 0                               |     r2 = 0;
    0x0001e336 str r3, [sp, 8]                           |     var_8h = r3;
    0x0001e338 blx 0xe804                                |     r0 = fcn_0000e804 ();
                                                         |     if (r0 != 0) {
    0x0001e33c cbnz r0, 0x1e376                          |         goto label_0;
                                                         |     }
    0x0001e33e mov r7, sp                                |     r7 = sp;
    0x0001e340 mov r1, r8                                |     r1 = r8;
    0x0001e342 mov r0, r7                                |     r0 = r7;
    0x0001e344 blx 0xe48c                                |     fcn_0000e48c ();
    0x0001e348 mov r2, r7                                |     r2 = r7;
    0x0001e34a mov r1, r6                                |     r1 = r6;
    0x0001e34c mov r0, r5                                |     r0 = r5;
    0x0001e34e blx 0xeb94                                |     r0 = fcn_0000eb94 ();
    0x0001e352 mov r4, r0                                |     r4 = r0;
                                                         |     do {
    0x0001e354 mov r0, r7                                |         r0 = r7;
    0x0001e356 blx 0xe1dc                                |         fcn_0000e1dc ();
    0x0001e35a ldr r2, [pc, 0x38]                        |         
    0x0001e35c ldr r3, [pc, 0x30]                        |         r3 = *(0x1e390);
    0x0001e35e add r2, pc                                |         r2 = 0x3c6f8;
    0x0001e360 ldr r3, [r2, r3]                          |         r3 = *(0x3c6f8);
    0x0001e362 ldr r2, [r3]                              |         r2 = *(0x3c6f8);
    0x0001e364 ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x0001e366 eors r2, r3                               |         r2 ^= r3;
    0x0001e368 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0001e36c bne 0x1e386                               |             goto label_1;
                                                         |         }
    0x0001e36e mov r0, r4                                |         r0 = r4;
    0x0001e370 add sp, 0x10                              |         
    0x0001e372 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_0:
    0x0001e376 mov r2, r4                                |         r2 = r4;
    0x0001e378 mov r1, r6                                |         r1 = r6;
    0x0001e37a mov r0, r5                                |         r0 = r5;
    0x0001e37c mov r7, sp                                |         r7 = sp;
    0x0001e37e blx 0xeb94                                |         r0 = fcn_0000eb94 ();
    0x0001e382 mov r4, r0                                |         r4 = r0;
    0x0001e384 b 0x1e354                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x0001e386 blx 0xed3c                                |     strnlen ();
    0x0001e38a nop                                       |     
    0x0001e38c b 0x1de54                                 |     return void (*0x1de54)() ();
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1e398 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sd_bus_message_new_method_errnof ()      | void sd_bus_message_new_method_errnof (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_2ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0001e398 push {r3}                                 |     
    0x0001e39a push {r4, r5, r6, lr}                     |     
    0x0001e39c sub sp, 0x1c                              |     
    0x0001e39e add r3, sp, 0x2c                          |     r3 += var_2ch;
    0x0001e3a0 mov r6, r1                                |     r6 = r1;
    0x0001e3a2 mov r1, r2                                |     r1 = r2;
    0x0001e3a4 mov r5, r0                                |     r5 = r0;
    0x0001e3a6 ldr r4, [r3], 4                           |     r4 = *(r3);
                                                         |     r3 += 4;
    0x0001e3aa vmov.i32 d16, 0                           |     __asm ("vmov.i32 d16, 0");
    0x0001e3ae ldr r0, [pc, 0x5c]                        |     r0 = *(0x1e40e);
    0x0001e3b0 mov r2, r4                                |     r2 = r4;
    0x0001e3b2 ldr r4, [pc, 0x5c]                        |     
    0x0001e3b4 vstr d16, [sp, 8]                         |     __asm ("vstr d16, [sp, 8]");
    0x0001e3b8 add r4, pc                                |     r4 = 0x3c7ce;
    0x0001e3ba ldr r0, [r4, r0]                          |     
    0x0001e3bc add r4, sp, 8                             |     r4 += var_8h;
    0x0001e3be ldr r0, [r0]                              |     r0 = *(0x3c7ce);
    0x0001e3c0 str r0, [sp, 0x14]                        |     var_14h = r0;
    0x0001e3c2 mov.w r0, 0                               |     r0 = 0;
    0x0001e3c6 movs r0, 0                                |     r0 = 0;
    0x0001e3c8 str r0, [sp, 0x10]                        |     var_10h = r0;
    0x0001e3ca mov r0, r4                                |     r0 = r4;
    0x0001e3cc str r3, [sp, 4]                           |     var_4h = r3;
    0x0001e3ce blx 0xef18                                |     fcn_0000ef18 ();
    0x0001e3d2 mov r2, r4                                |     r2 = r4;
    0x0001e3d4 mov r1, r6                                |     r1 = r6;
    0x0001e3d6 mov r0, r5                                |     r0 = r5;
    0x0001e3d8 blx 0xeb94                                |     r0 = fcn_0000eb94 ();
    0x0001e3dc mov r3, r0                                |     r3 = r0;
    0x0001e3de mov r0, r4                                |     r0 = r4;
    0x0001e3e0 mov r4, r3                                |     r4 = r3;
    0x0001e3e2 blx 0xe1dc                                |     fcn_0000e1dc ();
    0x0001e3e6 ldr r2, [pc, 0x2c]                        |     
    0x0001e3e8 ldr r3, [pc, 0x20]                        |     r3 = *(0x1e40c);
    0x0001e3ea add r2, pc                                |     r2 = 0x3c804;
    0x0001e3ec ldr r3, [r2, r3]                          |     r3 = *(0x3c804);
    0x0001e3ee ldr r2, [r3]                              |     r2 = *(0x3c804);
    0x0001e3f0 ldr r3, [sp, 0x14]                        |     r3 = var_14h;
    0x0001e3f2 eors r2, r3                               |     r2 ^= r3;
    0x0001e3f4 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r2 == r3) {
    0x0001e3f8 bne 0x1e406                               |         
    0x0001e3fa mov r0, r4                                |         r0 = r4;
    0x0001e3fc add sp, 0x1c                              |         
    0x0001e3fe pop.w {r4, r5, r6, lr}                    |         
    0x0001e400 eors r0, r6                               |         r0 ^= r6;
    0x0001e402 add sp, 4                                 |         
    0x0001e404 bx lr                                     |         return;
                                                         |     }
    0x0001e406 blx 0xed3c                                |     strnlen ();
    0x0001e40a nop                                       |     
    0x0001e40c lsls r4, r6, 0x1c                         |     r4 = r6 << 0x1c;
    0x0001e40e movs r0, r0                               |     
    0x0001e410 b 0x1ddac                                 |     return void (*0x1ddac)() ();
                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x1c924 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sd_bus_message_ref ()        | void sd_bus_message_ref (int16_t arg1) {
                                             |     r0 = arg1;
                                             | label_2:
    0x0001bcb8 svc 0x92                      |     __asm ("svc 0x92");
    0x0001bcba movs r5, r0                   |     r5 = r0;
    0x0001bcbc movt r0, 0xc005               |     r0 = (r0 & 0xFFFF) | 0xc0050000;
    0x0001bcc0 ldr r1, [pc, 0x2c0]           |     r1 = *(0x1bf84);
    0x0001bcc2 movs r6, r0                   |     r6 = r0;
                                             | label_1:
    0x0001c2d0 movs r3, r0                   |     r3 = r0;
    0x0001c2d2 ldr r3, [r0, -0x28]           |     r3 = *((r0 - 0x28));
    0x0001c2d6 subs r0, 0x34                 |     r0 -= 0x34;
                                             |     if (r3 == 0) {
    0x0001c2d8 cbz r3, 0x1c2f2               |         goto label_5;
                                             |     }
                                             |     do {
    0x0001c2da ldr r2, [r0, 4]               |         r2 = *((r0 + 4));
    0x0001c2dc ldrb r0, [r3, r2]             |         r0 = *((r3 + r2));
    0x0001c2de clz r0, r0                    |         r0 &= r0;
    0x0001c2e2 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001c2e4 pop {r3, pc}                  |         
                                             | label_0:
    0x0001c2f0 bne 0x1c2da                   |         
                                             |     } while (r0 != r0);
                                             | label_5:
    0x0001c2f2 movs r0, 1                    |     r0 = 1;
    0x0001c2f4 pop {r3, pc}                  |     
                                             | label_3:
    0x0001c304 add r0, pc                    |     r0 += pc;
    0x0001c306 bl 0x68d78                    |     fcn_00068d78 (r0, r1, r2, r3);
    0x0001c308 invalid                       |     
    0x0001c30a ldr r1, [pc, 0x20]            |     
    0x0001c30c movw r2, 0xc1d                |     r2 = 0xc1d;
    0x0001c310 ldr r3, [pc, 0x1c]            |     
    0x0001c312 ldr r0, [pc, 0x20]            |     
    0x0001c314 add r1, pc                    |     r1 = 0x38646;
    0x0001c316 add r3, pc                    |     r3 = 0x3864a;
    0x0001c318 adds r1, 7                    |     r1 += 7;
    0x0001c31a add r0, pc                    |     r0 = 0x38654;
    0x0001c31c bl 0x68d78                    |     fcn_00068d78 (r0, r1, r2, r3);
                                             |     if (r1 > 7) {
    0x0001c320 bhi 0x1c2f0                   |         goto label_0;
                                             |     }
    0x0001c322 movs r5, r0                   |     r5 = r0;
    0x0001c324 adcs.w r0, r4, r5             |     __asm ("adcs.w r0, r4, r5");
                                             |     if (r5 < r0) {
    0x0001c328 bls 0x1c3ac                   |         goto label_6;
                                             |     }
    0x0001c32a movs r5, r0                   |     r5 = r0;
                                             |     if (r5 > r0) {
    0x0001c32c bhi 0x1c2d0                   |         goto label_1;
                                             |     }
    0x0001c32e movs r5, r0                   |     r5 = r0;
    0x0001c330 b 0x1bcb8                     |     goto label_2;
                                             | label_6:
    0x0001c3ac adds r1, 7                    |     r1 += 7;
    0x0001c3ae add r0, pc                    |     r0 += pc;
    0x0001c3b0 bl 0x68d78                    |     fcn_00068d78 (r0, r1, r2, r3);
    0x0001c3b4 ldr r0, [r3, 0x18]            |     r0 = *((r3 + 0x18));
    0x0001c3b6 cmp r0, r1                    |     
    0x0001c3b8 ite hi                        |     
                                             |     if (r0 <= r1) {
    0x0001c3ba movhi r0, 0                   |         r0 = 0;
                                             |     }
                                             |     if (r0 > r1) {
    0x0001c3bc movls r0, 1                   |         r0 = 1;
                                             |     }
    0x0001c3be pop {r3, pc}                  |     
                                             |     if (r0 <= r1) {
                                             | label_4:
    0x0001c88c blo 0x1c98c                   |         goto label_7;
                                             |     }
    0x0001c88e movs r5, r0                   |     r5 = r0;
    0x0001c890 b 0x1c304                     |     goto label_3;
    0x0001c924 push {r4, lr}                 |     
    0x0001c926 mov r4, r0                    |     r4 = r0;
                                             |     if (r0 == 0) {
    0x0001c928 cbz r0, 0x1c938               |         goto label_8;
                                             |     }
    0x0001c92a ldr r3, [r0]                  |     r3 = *(r0);
    0x0001c92c cbz r3, 0x1c93c               |     
                                             |     while (r2 != 0) {
    0x0001c92e adds r3, 1                    |         r3++;
    0x0001c930 ldr r0, [r4, 8]               |         r0 = *((r4 + 8));
    0x0001c932 str r3, [r4]                  |         *(r4) = r3;
    0x0001c934 blx 0xeca0                    |         mmap64 ()
                                             | label_8:
    0x0001c938 mov r0, r4                    |         r0 = r4;
    0x0001c93a pop {r4, pc}                  |         
    0x0001c93c ldr r2, [r0, 4]               |         r2 = *((r0 + 4));
    0x0001c93e cmp r2, 0                     |         
    0x0001c940 bne 0x1c92e                   |         
                                             |     }
    0x0001c942 ldr r1, [pc, 0x14]            |     
    0x0001c944 movw r2, 0x397                |     r2 = 0x397;
    0x0001c948 ldr r3, [pc, 0x10]            |     
    0x0001c94a ldr r0, [pc, 0x14]            |     
    0x0001c94c add r1, pc                    |     r1 = 0x392aa;
    0x0001c94e add r3, pc                    |     r3 = 0x392ae;
    0x0001c950 adds r1, 7                    |     r1 += 7;
    0x0001c952 add r0, pc                    |     r0 = 0x392b8;
    0x0001c954 bl 0x68d78                    |     fcn_00068d78 (r0, r1, r2, r3);
                                             |     if (r1 >= 7) {
    0x0001c958 bhs 0x1c88c                   |         goto label_4;
                                             |     }
    0x0001c95a movs r5, r0                   |     r5 = r0;
    0x0001c95c b 0x1d15c                     |     void (*0x1d15c)() ();
                                             | label_7:
    0x0001c98c movs r0, 0                    |     r0 = 0;
    0x0001c98e pop {r4, pc}                  |     
                                             | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x346c0 */
                                                                             | #include <stdint.h>
                                                                             |  
                                                                             | #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
                                                                             |                                ((n & 0x0000ff00) <<  8) | \
                                                                             |                                ((n & 0x00ff0000) >>  8) | \
                                                                             |                                ((n & 0xff000000) >> 24)))
                                                                             |  
    ; (fcn) sym.sd_bus_process ()                                            | void sd_bus_process (int16_t arg_118h, int16_t arg_190h, int16_t arg_240h, int16_t arg_2f0h, int16_t arg_308h, uint32_t arg1, int16_t arg2) {
                                                                             |     int16_t var_0h;
                                                                             |     int16_t var_4h;
                                                                             |     int16_t var_8h;
                                                                             |     int16_t var_ch;
                                                                             |     int16_t var_10h;
                                                                             |     int16_t var_14h;
                                                                             |     int16_t var_30h;
                                                                             |     int16_t var_44h;
                                                                             |     int16_t var_48h;
                                                                             |     int16_t var_4ch;
                                                                             |     int16_t var_50h;
                                                                             |     int16_t var_54h;
                                                                             |     int16_t var_58h;
                                                                             |     int16_t var_60h;
                                                                             |     int16_t var_64h;
                                                                             |     int16_t var_70h;
                                                                             |     int16_t var_80h;
                                                                             |     int16_t var_90h;
                                                                             |     int16_t var_a4h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
                                                                             | label_46:
    0x000339e8 ldr.w r2, [pc, 0xbcc]                                         |     r2 = switch.0x00068e90;
    0x000339ec ldr.w r3, [pc, 0xbcc]                                         |     
    0x000339f0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}                   |     
    0x000339f4 add r2, pc                                                    |     r2 += pc;
    0x000339f6 vpush {d8}                                                    |     __asm ("vpush {d8}");
    0x000339fa sub sp, 0xac                                                  |     
    0x000339fc ldr r3, [r2, r3]                                              |     r3 = *((r2 + r3));
    0x000339fe ldr r3, [r3]                                                  |     r3 = *(0x345bc);
    0x00033a00 str r3, [sp, 0xa4]                                            |     var_a4h = r3;
    0x00033a02 mov.w r3, 0                                                   |     r3 = 0;
    0x00033a06 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x00033a08 beq.w 0x33bb6                                                 |         goto label_47;
                                                                             |     }
    0x00033a0c mov r6, r1                                                    |     r6 = r1;
    0x00033a0e bl 0x2e4cc                                                    |     r0 = fcn_0002e4cc (r0);
    0x00033a12 mov r4, r0                                                    |     r4 = r0;
    0x00033a14 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x00033a16 beq.w 0x33bd8                                                 |         goto label_48;
                                                                             |     }
    0x00033a1a bl 0x2f628                                                    |     r0 = fcn_0002f628 (r0);
    0x00033a1e cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00033a20 bne.w 0x33bfa                                                 |         goto label_49;
                                                                             |     }
    0x00033a24 ldr.w r3, [r4, 0x3e8]                                         |     r3 = *((r4 + 0x3e8));
    0x00033a28 cmp r3, 0                                                     |     
                                                                             |     if (r3 != 0) {
    0x00033a2a bne.w 0x33c1c                                                 |         goto label_50;
                                                                             |     }
    0x00033a2e ldr.w r3, [r4, 0x3ec]                                         |     r3 = *((r4 + 0x3ec));
    0x00033a32 cmp r3, 0                                                     |     
                                                                             |     if (r3 != 0) {
    0x00033a34 bne.w 0x33c3e                                                 |         goto label_51;
                                                                             |     }
    0x00033a38 mov r0, r4                                                    |     r0 = r4;
    0x00033a3a blx 0xeca0                                                    |     mmap64 ()
    0x00033a3e ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
    0x00033a40 mov r7, r0                                                    |     r7 = r0;
    0x00033a42 cmp r3, 7                                                     |     
                                                                             |     if (r3 > 7) {
    0x00033a44 bhi.w 0x345a6                                                 |         goto label_52;
                                                                             |     }
                                                                             |     /* switch table (8 cases) at 0x33a4c */
    0x00033a48 tbb [pc, r3]                                                  |     __asm ("tbb aav.0x000000ff");
    0x00033a54 vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x00033a58 mov.w sl, 0                                                   |     sl = 0;
    0x00033a5c str.w sl, [sp, 0x60]                                          |     __asm ("str.w sl, [var_60h]");
    0x00033a60 str.w sl, [sp, 0x54]                                          |     __asm ("str.w sl, [var_54h]");
    0x00033a64 vstr d16, [sp, 0x58]                                          |     __asm ("vstr d16, [sp, 0x58]");
    0x00033a68 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
    0x00033a6a subs r3, 4                                                    |     r3 -= 4;
    0x00033a6c cmp r3, 1                                                     |     
                                                                             |     if (r3 < 1) {
    0x00033a6e bls 0x33b3e                                                   |         goto label_53;
                                                                             |     }
    0x00033a70 ldr.w r1, [pc, 0xb4c]                                         |     
    0x00033a74 movw r2, 0xa3d                                                |     r2 = 0xa3d;
    0x00033a78 ldr.w r3, [pc, 0xb48]                                         |     r3 = *(0x000345c4);
    0x00033a7c ldr.w r0, [pc, 0xb48]                                         |     r0 = *(0x000345c8);
    0x00033a80 add r1, pc                                                    |     r1 = 0x68044;
    0x00033a82 add r3, pc                                                    |     r3 += pc;
    0x00033a84 adds r1, 7                                                    |     r1 += 7;
    0x00033a86 add r0, pc                                                    |     r0 += pc;
    0x00033a88 bl 0x68d78                                                    |     fcn_00068d78 (r0, r1, r2, r3);
    0x00033a8c movs r5, 0                                                    |     r5 = 0;
    0x00033a8e ldr.w r0, [r4, 0x80]                                          |     r0 = *((r4 + 0x80));
    0x00033a92 mov r2, r5                                                    |     r2 = r5;
    0x00033a94 mov r1, r5                                                    |     r1 = r5;
    0x00033a96 str r5, [sp, 0x50]                                            |     var_50h = r5;
    0x00033a98 bl 0x666d4                                                    |     r0 = fcn_000666d4 (r0, r1, r2);
    0x00033a9c mov sb, r0                                                    |     sb = r0;
    0x00033a9e cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00033aa0 bne.w 0x33e50                                                 |         goto label_54;
                                                                             |     }
    0x00033aa4 ldr.w r0, [r4, 0x40c]                                         |     r0 = *((r4 + 0x40c));
    0x00033aa8 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x00033aaa beq.w 0x33c5a                                                 |         goto label_55;
                                                                             |     }
    0x00033aae bl 0x2d544                                                    |     fcn_0002d544 (r0);
    0x00033ab2 ldr r0, [sp, 0x50]                                            |     r0 = var_50h;
    0x00033ab4 movs r5, 1                                                    |     r5 = 1;
                                                                             |     if (r0 == 0) {
                                                                             | label_8:
    0x00033ab6 cbz r0, 0x33abc                                               |         goto label_0;
                                                                             |     }
                                                                             | label_16:
    0x00033ab8 blx 0xefbc                                                    |     fcn_0000efbc ();
                                                                             |     do {
                                                                             |         if (r7 != 0) {
                                                                             | label_0:
    0x00033abc cbz r7, 0x33ac4                                               |             
    0x00033abe mov r0, r7                                                    |             r0 = r7;
    0x00033ac0 blx 0xe4e8                                                    |             fcn_0000e4e8 ();
                                                                             |         }
                                                                             | label_4:
    0x00033ac4 ldr.w r2, [pc, 0xb04]                                         |         
    0x00033ac8 ldr.w r3, [pc, 0xaf0]                                         |         r3 = *(0x345bc);
    0x00033acc add r2, pc                                                    |         r2 = 0x6809c;
    0x00033ace ldr r3, [r2, r3]                                              |         r3 = *(0x6809c);
    0x00033ad0 ldr r2, [r3]                                                  |         r2 = *(0x6809c);
    0x00033ad2 ldr r3, [sp, 0xa4]                                            |         r3 = var_a4h;
    0x00033ad4 eors r2, r3                                                   |         r2 ^= r3;
    0x00033ad6 mov.w r3, 0                                                   |         r3 = 0;
                                                                             |         if (r2 != r3) {
    0x00033ada bne.w 0x3423c                                                 |             goto label_56;
                                                                             |         }
    0x00033ade mov r0, r5                                                    |         r0 = r5;
    0x00033ae0 add sp, 0xac                                                  |         
    0x00033ae2 vpop {d8}                                                     |         __asm ("vpop {d8}");
    0x00033ae6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}                    |         
    0x00033aea mov r0, r4                                                    |         r0 = r4;
    0x00033aec bl 0x2c910                                                    |         r0 = fcn_0002c910 (r0);
    0x00033af0 mov r5, r0                                                    |         r5 = r0;
                                                                             | label_1:
    0x00033af2 eor.w r3, r5, r5, asr 31                                      |         r3 = r5 ^ (r5 >> 31);
    0x00033af6 sub.w r3, r3, r5, asr 31                                      |         r3 -= (r5 >> 31);
    0x00033afa cmp r3, 0x71                                                  |         
                                                                             |         if (r3 <= 0x71) {
    0x00033afc bgt 0x33b10                                                   |             
    0x00033afe cmp r3, 0x5b                                                  |             
                                                                             |             if (r3 > 0x5b) {
    0x00033b00 bgt 0x33b9c                                                   |                 goto label_57;
                                                                             |             }
    0x00033b02 sub.w r2, r3, 0x20                                            |             r2 = r3 - 0x20;
    0x00033b06 bics r2, r2, 0x20                                             |             __asm ("bics r2, r2, 0x20");
                                                                             |             if (r3 == 0x5b) {
    0x00033b0a beq 0x33bac                                                   |                 goto label_7;
                                                                             |             }
    0x00033b0c cmp r3, 0x47                                                  |             
                                                                             |             if (r3 == 0x47) {
    0x00033b0e beq 0x33bac                                                   |                 goto label_7;
                                                                             |             }
                                                                             |         }
                                                                             | label_2:
    0x00033b10 cmp r5, 0                                                     |         
    0x00033b12 blt 0x33abc                                                   |         
                                                                             |     } while (r5 < 0);
                                                                             | label_3:
    0x00033b14 cmp r6, 0                                                     |     
                                                                             |     if (r6 == 0) {
    0x00033b16 beq 0x33abc                                                   |         goto label_0;
                                                                             |     }
                                                                             | label_6:
    0x00033b18 movs r3, 0                                                    |     r3 = 0;
    0x00033b1a str r3, [r6]                                                  |     *(r6) = r3;
    0x00033b1c b 0x33abc                                                     |     goto label_0;
    0x00033b1e mov r0, r4                                                    |     r0 = r4;
    0x00033b20 bl 0x2c9d8                                                    |     r0 = fcn_0002c9d8 (r0);
    0x00033b24 mov r5, r0                                                    |     r5 = r0;
    0x00033b26 b 0x33af2                                                     |     goto label_1;
    0x00033b28 mov r0, r4                                                    |     r0 = r4;
    0x00033b2a bl 0x2ca54                                                    |     r0 = fcn_0002ca54 (r0);
    0x00033b2e mov r5, r0                                                    |     r5 = r0;
    0x00033b30 b 0x33af2                                                     |     goto label_1;
    0x00033b32 mvn r5, 0x67                                                  |     r5 = ~0x67;
    0x00033b36 b 0x33abc                                                     |     goto label_0;
    0x00033b38 mvn r5, 0x6a                                                  |     r5 = ~0x6a;
    0x00033b3c b 0x33abc                                                     |     goto label_0;
                                                                             | label_53:
    0x00033b3e ldr r0, [r4, 0x7c]                                            |     r0 = *((r4 + 0x7c));
    0x00033b40 mov r1, sl                                                    |     r1 = sl;
    0x00033b42 bl 0x6d478                                                    |     r0 = fcn_0006d478 (r0, r1);
    0x00033b46 mov sb, r0                                                    |     sb = r0;
    0x00033b48 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x00033b4a beq.w 0x33cf8                                                 |         goto label_58;
                                                                             |     }
    0x00033b4e movs r0, 1                                                    |     r0 = 1;
    0x00033b50 bl 0x725f4                                                    |     fcn_000725f4 (r0);
    0x00033b54 ldrd r2, r3, [sb, 8]                                          |     __asm ("ldrd r2, r3, [sb, 8]");
    0x00033b58 cmp r0, r2                                                    |     
    0x00033b5a sbcs r1, r3                                                   |     __asm ("sbcs r1, r3");
                                                                             |     if (r0 >= r2) {
    0x00033b5c bhs.w 0x33d04                                                 |         goto label_59;
                                                                             |     }
    0x00033b60 ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
    0x00033b62 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x00033b64 beq.w 0x33cf8                                                 |         goto label_58;
                                                                             |     }
    0x00033b68 add.w r8, sp, 0x58                                            |     r8 += var_58h;
    0x00033b6c blx 0xefbc                                                    |     fcn_0000efbc ();
    0x00033b70 mov r0, r8                                                    |     r0 = r8;
    0x00033b72 blx 0xe1dc                                                    |     fcn_0000e1dc ();
                                                                             | label_5:
    0x00033b76 mov r0, r4                                                    |     r0 = r4;
    0x00033b78 bl 0x2e418                                                    |     r0 = fcn_0002e418 (r0);
    0x00033b7c mov r5, r0                                                    |     r5 = r0;
    0x00033b7e cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00033b80 bne.w 0x33e12                                                 |         goto label_60;
                                                                             |     }
    0x00033b84 ldr.w r0, [r4, 0x404]                                         |     r0 = *((r4 + 0x404));
    0x00033b88 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x00033b8a beq.w 0x33f74                                                 |         goto label_61;
                                                                             |     }
    0x00033b8e bl 0x2d47c                                                    |     fcn_0002d47c (r0);
                                                                             |     if (r6 != 0) {
                                                                             | label_13:
    0x00033b92 cbz r6, 0x33b98                                               |         
    0x00033b94 movs r3, 0                                                    |         r3 = 0;
    0x00033b96 str r3, [r6]                                                  |         *(r6) = r3;
                                                                             |     }
                                                                             | label_20:
    0x00033b98 movs r5, 1                                                    |     r5 = 1;
    0x00033b9a b 0x33abc                                                     |     goto label_0;
                                                                             | label_57:
    0x00033b9c movw r2, 0x9f01                                               |     
    0x00033ba0 subs r3, 0x5c                                                 |     r3 -= 0x5c;
    0x00033ba2 movt r2, 0x3d                                                 |     r2 = 0x3d9f01;
    0x00033ba6 lsrs r2, r3                                                   |     r2 >>= r3;
    0x00033ba8 lsls r2, r2, 0x1f                                             |     r2 <<= 0x1f;
                                                                             |     if (r2 >= r2) {
    0x00033baa bpl 0x33b10                                                   |         goto label_2;
                                                                             |     }
                                                                             | label_7:
    0x00033bac mov r0, r4                                                    |     r0 = r4;
    0x00033bae movs r5, 1                                                    |     r5 = 1;
    0x00033bb0 bl 0x2ef5c                                                    |     fcn_0002ef5c (r0, r1, r2, r3, r4, r5, r6);
    0x00033bb4 b 0x33b14                                                     |     goto label_3;
                                                                             | label_47:
    0x00033bb6 ldr.w r1, [pc, 0xa18]                                         |     r1 = *(0x000345d0);
    0x00033bba movw r2, 0xc78                                                |     r2 = 0xc78;
    0x00033bbe ldr.w r3, [pc, 0xa14]                                         |     
    0x00033bc2 mvn r5, 0x15                                                  |     r5 = ~0x15;
    0x00033bc6 ldr.w r0, [pc, 0xa10]                                         |     
    0x00033bca add r1, pc                                                    |     r1 += pc;
    0x00033bcc add r3, pc                                                    |     r3 = 0x681a6;
    0x00033bce adds r1, 7                                                    |     r1 += 7;
    0x00033bd0 add r0, pc                                                    |     r0 = 0x681ae;
    0x00033bd2 bl 0x68f74                                                    |     fcn_00068f74 (r0, r1, r2, r3);
    0x00033bd6 b 0x33ac4                                                     |     goto label_4;
                                                                             | label_48:
    0x00033bd8 ldr.w r1, [pc, 0xa00]                                         |     
    0x00033bdc movw r2, 0xc79                                                |     r2 = 0xc79;
    0x00033be0 ldr.w r3, [pc, 0x9fc]                                         |     r3 = *(0x000345e0);
    0x00033be4 mvn r5, 0x40                                                  |     r5 = ~0x40;
    0x00033be8 ldr.w r0, [pc, 0x9f8]                                         |     r0 = *(0x000345e4);
    0x00033bec add r1, pc                                                    |     r1 = 0x681cc;
    0x00033bee add r3, pc                                                    |     r3 += pc;
    0x00033bf0 adds r1, 7                                                    |     r1 += 7;
    0x00033bf2 add r0, pc                                                    |     r0 += pc;
    0x00033bf4 bl 0x68f74                                                    |     fcn_00068f74 (r0, r1, r2, r3);
    0x00033bf8 b 0x33ac4                                                     |     goto label_4;
                                                                             | label_49:
    0x00033bfa ldr.w r1, [pc, 0x9ec]                                         |     r1 = *(0x000345e8);
    0x00033bfe movw r2, 0xc7a                                                |     r2 = 0xc7a;
    0x00033c02 ldr.w r3, [pc, 0x9e8]                                         |     
    0x00033c06 mvn r5, 9                                                     |     r5 = ~9;
    0x00033c08 lsls r1, r1, 0x14                                             |     r1 <<= 0x14;
    0x00033c0a ldr.w r0, [pc, 0x9e4]                                         |     
    0x00033c0e add r1, pc                                                    |     r1 += pc;
    0x00033c10 add r3, pc                                                    |     r3 = 0x68202;
    0x00033c12 adds r1, 7                                                    |     r1 += 7;
    0x00033c14 add r0, pc                                                    |     r0 = 0x6820a;
    0x00033c16 bl 0x68f74                                                    |     fcn_00068f74 (r0, r1, r2, r3);
    0x00033c18 vld4.16 {d14[1], d15[1], d16[1], d17[1]}, [sp:0x40], r3       |     __asm ("vld4.16 {d14[1], d15[1], d16[1], d17[1]}, [sp:0x40], r3");
                                                                             | label_50:
    0x00033c1c ldr.w r1, [pc, 0x9d4]                                         |     
    0x00033c20 movw r2, 0xc7d                                                |     r2 = 0xc7d;
    0x00033c24 ldr.w r3, [pc, 0x9d0]                                         |     r3 = *(0x000345f8);
    0x00033c28 mvn r5, 0xf                                                   |     r5 = ~0xf;
    0x00033c2c ldr.w r0, [pc, 0x9cc]                                         |     r0 = *(0x000345fc);
    0x00033c30 add r1, pc                                                    |     r1 = 0x68228;
    0x00033c32 add r3, pc                                                    |     r3 += pc;
    0x00033c34 adds r1, 7                                                    |     r1 += 7;
    0x00033c36 add r0, pc                                                    |     r0 += pc;
    0x00033c38 bl 0x68f74                                                    |     fcn_00068f74 (r0, r1, r2, r3);
    0x00033c3c b 0x33ac4                                                     |     goto label_4;
                                                                             | label_51:
    0x00033c3e ldr.w r1, [pc, 0x9c0]                                         |     r1 = *(0x00034600);
    0x00033c42 movw r2, 0xc7e                                                |     r2 = 0xc7e;
    0x00033c46 ldr.w r3, [pc, 0x9bc]                                         |     
    0x00033c4a ldr.w r0, [pc, 0x9bc]                                         |     
    0x00033c4e add r1, pc                                                    |     r1 += pc;
    0x00033c50 add r3, pc                                                    |     r3 = 0x6825a;
    0x00033c52 adds r1, 7                                                    |     r1 += 7;
    0x00033c54 add r0, pc                                                    |     r0 = 0x68262;
    0x00033c56 bl 0x68d78                                                    |     fcn_00068d78 (r0, r1, r2, r3);
                                                                             | label_55:
    0x00033c5a ldr.w r2, [pc, 0x9b0]                                         |     r2 = *(0x0003460c);
    0x00033c5e add r1, sp, 0x50                                              |     r1 += var_50h;
    0x00033c60 ldr.w r3, [pc, 0x9ac]                                         |     r3 = *(0x00034610);
    0x00033c64 mov r0, r4                                                    |     r0 = r4;
    0x00033c66 add r2, pc                                                    |     r2 += pc;
    0x00033c68 str r2, [sp]                                                  |     *(sp) = r2;
    0x00033c6a add r3, pc                                                    |     r3 += pc;
    0x00033c6c ldr.w r2, [pc, 0x9a4]                                         |     
    0x00033c70 add r2, pc                                                    |     r2 = 0x68288;
    0x00033c72 blx 0xe524                                                    |     r0 = fcn_0000e524 ();
    0x00033c76 subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 < r0) {
    0x00033c78 blt.w 0x33f56                                                 |         goto label_62;
                                                                             |     }
    0x00033c7c ldr r1, [sp, 0x50]                                            |     r1 = var_50h;
    0x00033c7e mov r0, r4                                                    |     r0 = r4;
    0x00033c80 bl 0x1c824                                                    |     fcn_0001c824 (r0, r1);
    0x00033c84 ldrd r3, r2, [r4, 0x48]                                       |     __asm ("ldrd r3, r2, [r4, 0x48]");
    0x00033c88 mov r0, r4                                                    |     r0 = r4;
    0x00033c8a ldr r1, [sp, 0x50]                                            |     r1 = var_50h;
    0x00033c8c adds r3, 1                                                    |     r3++;
    0x00033c8e adc r2, r2, 0                                                 |     __asm ("adc r2, r2, 0");
    0x00033c92 strd r3, r2, [r4, 0x48]                                       |     __asm ("strd r3, r2, [r4, 0x48]");
    0x00033c96 strd r3, r2, [r1, 0x1f8]                                      |     __asm ("strd r3, r2, aav.0x000000ff");
    0x00033c9a bl 0x2f224                                                    |     r0 = fcn_0002f224 (r0, r1, r2);
    0x00033c9e subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 < r0) {
    0x00033ca0 blt.w 0x33f56                                                 |         goto label_62;
                                                                             |     }
    0x00033ca4 mov r0, r4                                                    |     r0 = r4;
    0x00033ca6 blx 0xe548                                                    |     fcn_0000e548 ();
    0x00033ca8 mrrc p8, 0xd, pc, r0, c4                                      |     __asm ("mrrc p8, 0xd, pc, r0, c4");
    0x00033cac adds r3, 0xc4                                                 |     r3 += 0xc4;
    0x00033cae mov r0, r4                                                    |     r0 = r4;
    0x00033cb0 ldr r1, [sp, 0x50]                                            |     r1 = var_50h;
    0x00033cb2 adds r3, 1                                                    |     r3++;
    0x00033cb4 str.w r1, [r4, 0x3e8]                                         |     __asm ("str.w r1, aav.0x000000ff");
    0x00033cb8 str.w r3, [r4, 0x3c4]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033cbc bl 0x2df34                                                    |     r0 = fcn_0002df34 (r0, r1);
    0x00033cc0 mov r5, r0                                                    |     r5 = r0;
    0x00033cc2 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00033cc4 bne.w 0x33f6a                                                 |         goto label_63;
                                                                             |     }
    0x00033cc8 ldr r1, [sp, 0x50]                                            |     r1 = var_50h;
    0x00033cca mov r0, r4                                                    |     r0 = r4;
    0x00033ccc bl 0x2e160                                                    |     r0 = fcn_0002e160 (r0, r1);
    0x00033cd0 mov r5, r0                                                    |     r5 = r0;
    0x00033cd2 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00033cd4 bne.w 0x33f6a                                                 |         goto label_63;
                                                                             |     }
    0x00033cd8 ldrb r3, [r4, 0x1e]                                           |     r3 = *((r4 + 0x1e));
    0x00033cda mov r0, r4                                                    |     r0 = r4;
    0x00033cdc orr r3, r3, 2                                                 |     r3 |= 2;
    0x00033ce0 strb r3, [r4, 0x1e]                                           |     *((r4 + 0x1e)) = r3;
    0x00033ce2 bl 0x2e1d4                                                    |     fcn_0002e1d4 (r0);
    0x00033ce6 cmp r6, 0                                                     |     
                                                                             |     if (r6 == 0) {
    0x00033ce8 beq.w 0x3422e                                                 |         goto label_64;
                                                                             |     }
    0x00033cec ldr r3, [sp, 0x50]                                            |     r3 = var_50h;
    0x00033cee str r3, [r6]                                                  |     *(r6) = r3;
    0x00033cf0 str.w r5, [r4, 0x3e8]                                         |     __asm ("str.w r5, aav.0x000000ff");
    0x00033cf4 movs r5, 1                                                    |     r5 = 1;
    0x00033cf6 b 0x33abc                                                     |     goto label_0;
                                                                             | label_58:
    0x00033cf8 add.w r8, sp, 0x58                                            |     r8 += var_58h;
    0x00033cfc mov r0, r8                                                    |     r0 = r8;
    0x00033cfe blx 0xe1dc                                                    |     fcn_0000e1dc ();
    0x00033d02 b 0x33b76                                                     |     goto label_5;
                                                                             | label_59:
    0x00033d04 ldr.w r3, [pc, 0x910]                                         |     
    0x00033d08 ldrd fp, ip, [sb, 0x10]                                       |     __asm ("ldrd fp, ip, [sb, 0x10]");
    0x00033d0c add r3, pc                                                    |     r3 = 0x68328;
    0x00033d0e adds r3, 0x28                                                 |     r3 += 0x28;
    0x00033d10 ldm.w r3, {r0, r1, r2}                                        |     r0 = *(r3);
                                                                             |     r1 = *((r3 + 4));
                                                                             |     r2 = *((r3 + 8));
    0x00033d14 add r3, sp, 0x64                                              |     r3 += var_64h;
    0x00033d16 stm.w r3, {r0, r1, r2}                                        |     *(r3) = r0;
                                                                             |     *((r3 + 4)) = r1;
                                                                             |     *((r3 + 8)) = r2;
    0x00033d1a add r2, sp, 0x54                                              |     r2 += var_54h;
    0x00033d1c strd r3, r2, [sp]                                             |     __asm ("strd r3, r2, [sp]");
    0x00033d20 mov r0, r4                                                    |     r0 = r4;
    0x00033d22 mov r2, fp                                                    |     r2 = fp;
    0x00033d24 mov r3, ip                                                    |     r3 = ip;
    0x00033d26 bl 0x1e418                                                    |     r0 = fcn_0001e418 (r0, r1, r2, r3);
    0x00033d2a subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 < r0) {
    0x00033d2c blt.w 0x33f5a                                                 |         goto label_65;
                                                                             |     }
    0x00033d30 ldr r3, [r4, 0x48]                                            |     r3 = *((r4 + 0x48));
    0x00033d32 mov r0, r4                                                    |     r0 = r4;
    0x00033d34 ldr r2, [r4, 0x4c]                                            |     r2 = *((r4 + 0x4c));
    0x00033d36 adds r3, 1                                                    |     r3++;
    0x00033d38 adc r2, r2, 0                                                 |     __asm ("adc r2, r2, 0");
    0x00033d3c str r3, [r4, 0x48]                                            |     *((r4 + 0x48)) = r3;
    0x00033d3e str r2, [r4, 0x4c]                                            |     *((r4 + 0x4c)) = r2;
    0x00033d40 ldr r1, [sp, 0x54]                                            |     r1 = var_54h;
    0x00033d42 strd r3, r2, [r1, 0x1f8]                                      |     __asm ("strd r3, r2, aav.0x000000ff");
    0x00033d46 bl 0x2f224                                                    |     r0 = fcn_0002f224 (r0, r1, r2);
    0x00033d4a subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 < r0) {
    0x00033d4c blt.w 0x33f5a                                                 |         goto label_65;
                                                                             |     }
    0x00033d50 ldr r0, [r4, 0x7c]                                            |     r0 = *((r4 + 0x7c));
    0x00033d52 bl 0x6d48c                                                    |     r0 = fcn_0006d48c (r0);
    0x00033d56 cmp sb, r0                                                    |     
                                                                             |     if (sb != r0) {
    0x00033d58 bne.w 0x34212                                                 |         goto label_66;
                                                                             |     }
    0x00033d5c vmov.i32 d8, 0                                                |     __asm ("vmov.i32 d8, 0");
    0x00033d60 add.w r1, sb, 0x10                                            |     r1 = sb + 0x10;
    0x00033d64 sub.w fp, sb, 0x20                                            |     
    0x00033d68 vstr d8, [sb, 8]                                              |     __asm ("vstr d8, [sb, 8]");
    0x00033d6c ldr.w r0, [r4, 0x80]                                          |     r0 = *((r4 + 0x80));
    0x00033d70 bl 0x66610                                                    |     fcn_00066610 (r0, r1);
    0x00033d74 vstr d8, [sb, 0x10]                                           |     __asm ("vstr d8, [sb, 0x10]");
    0x00033d78 ldr.w r3, [r4, 0x3c4]                                         |     r3 = *((r4 + 0x3c4));
    0x00033d7c adds r3, 1                                                    |     r3++;
    0x00033d7e str.w r3, [r4, 0x3c4]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033d82 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
    0x00033d84 cmp r3, 4                                                     |     
                                                                             |     if (r3 == 4) {
    0x00033d86 bne 0x33d9e                                                   |         
    0x00033d88 ldr.w r3, [pc, 0x890]                                         |         r3 = *(0x0003461c);
    0x00033d8c ldr.w r2, [sb]                                                |         r2 = *(sb);
    0x00033d90 add r3, pc                                                    |         r3 += pc;
    0x00033d92 sub.w sl, r2, r3                                              |         sl = r2 - r3;
    0x00033d96 clz sl, sl                                                    |         sl &= sl;
    0x00033d9a lsr.w sl, sl, 5                                               |         sl >>= 5;
                                                                             |     }
    0x00033d9e ldr r3, [sp, 0x54]                                            |     r3 = var_54h;
    0x00033da0 mov r0, fp                                                    |     r0 = fp;
    0x00033da2 add.w r8, sp, 0x58                                            |     r8 += var_58h;
    0x00033da6 str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033daa blx 0xefa0                                                    |     fcn_0000efa0 ();
    0x00033dae str.w r0, [r4, 0x3ec]                                         |     __asm ("str.w r0, aav.0x000000ff");
    0x00033db2 mov r2, r8                                                    |     r2 = r8;
    0x00033db4 ldr.w r3, [sb]                                                |     r3 = *(sb);
    0x00033db8 str.w r3, [r4, 0x3f0]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033dbc ldr r1, [sb, -0x14]                                           |     r1 = *((sb - 0x14));
    0x00033dc0 str.w r1, [r4, 0x3f4]                                         |     __asm ("str.w r1, aav.0x000000ff");
    0x00033dc4 ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
    0x00033dc6 ldr.w r3, [sb]                                                |     r3 = *(sb);
    0x00033dca blx r3                                                        |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00033dcc vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x00033dd0 movs r3, 0                                                    |     r3 = 0;
    0x00033dd2 strd r3, r3, [r4, 0x3f0]                                      |     __asm ("strd r3, r3, aav.0x000000ff");
    0x00033dd6 mov r5, r0                                                    |     r5 = r0;
    0x00033dd8 vstr d16, [r4, 0x3e8]                                         |     __asm ("vstr d16, aav.0x000000ff");
    0x00033ddc ldrb r3, [sb, -0x1b]                                          |     r3 = *((sb - 0x1b));
    0x00033de0 cmp r3, 0                                                     |     
                                                                             |     if (r3 != 0) {
    0x00033de2 bne.w 0x34204                                                 |         goto label_67;
                                                                             |     }
                                                                             | label_14:
    0x00033de6 mov r0, fp                                                    |     r0 = fp;
    0x00033de8 blx 0xe4a8                                                    |     fcn_0000e4a8 ();
    0x00033dec cmp.w sl, 0                                                   |     
                                                                             |     if (sl == 0) {
    0x00033df0 bne 0x33dfe                                                   |         
    0x00033df2 mov r1, r5                                                    |         r1 = r5;
    0x00033df4 ldr r0, [sp, 0x54]                                            |         r0 = var_54h;
    0x00033df6 mov r2, r8                                                    |         r2 = r8;
    0x00033df8 bl 0x192bc                                                    |         r0 = fcn_000192bc (r0, r1, r2);
    0x00033dfc mov r5, r0                                                    |         r5 = r0;
                                                                             |     }
    0x00033dfe ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
                                                                             |     if (r0 != 0) {
    0x00033e00 cbz r0, 0x33e06                                               |         
    0x00033e02 blx 0xefbc                                                    |         fcn_0000efbc ();
                                                                             |     }
    0x00033e06 mov r0, r8                                                    |     r0 = r8;
    0x00033e08 blx 0xe1dc                                                    |     fcn_0000e1dc ();
    0x00033e0c cmp r5, 0                                                     |     
                                                                             |     if (r5 == 0) {
    0x00033e0e beq.w 0x33b76                                                 |         goto label_5;
                                                                             |     }
                                                                             | label_60:
    0x00033e12 mvns r3, r5                                                   |     r3 = ~r5;
    0x00033e14 cmp r6, 0                                                     |     
    0x00033e16 lsr.w r3, r3, 0x1f                                            |     r3 >>= 0x1f;
    0x00033e1a it eq                                                         |     
                                                                             |     if (r6 != 0) {
    0x00033e1c moveq r3, 0                                                   |         r3 = 0;
                                                                             |     }
    0x00033e1e cmp r3, 0                                                     |     
                                                                             |     if (r3 != 0) {
    0x00033e20 bne.w 0x33b18                                                 |         goto label_6;
                                                                             |     }
                                                                             | label_17:
    0x00033e24 cmp r5, 0                                                     |     
                                                                             |     if (r5 >= 0) {
    0x00033e26 bge.w 0x33abc                                                 |         goto label_0;
                                                                             |     }
                                                                             | label_10:
    0x00033e2a cmn.w r5, 0x71                                                |     
                                                                             |     if (r5 < 0x71) {
    0x00033e2e blt.w 0x33abc                                                 |         goto label_0;
                                                                             |     }
    0x00033e32 cmn.w r5, 0x5b                                                |     
                                                                             |     if (r5 < 0x5b) {
    0x00033e36 blt 0x33f38                                                   |         goto label_68;
                                                                             |     }
    0x00033e38 mvn r3, 0x1f                                                  |     r3 = ~0x1f;
    0x00033e3c subs r3, r3, r5                                               |     r3 -= r5;
    0x00033e3e bics r3, r3, 0x20                                             |     __asm ("bics r3, r3, 0x20");
    0x00033e40 lsls r0, r4, 0xc                                              |     r0 = r4 << 0xc;
                                                                             |     if (r0 == r4) {
    0x00033e42 beq.w 0x33bac                                                 |         goto label_7;
                                                                             |     }
    0x00033e46 cmn.w r5, 0x47                                                |     
                                                                             |     if (r5 != 0x47) {
    0x00033e4a bne.w 0x33abc                                                 |         goto label_0;
                                                                             |     }
    0x00033e4e b 0x33bac                                                     |     goto label_7;
                                                                             | label_54:
    0x00033e50 ldr.w r3, [pc, 0x7cc]                                         |     
    0x00033e54 add r2, sp, 0x54                                              |     r2 += var_54h;
    0x00033e56 vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x00033e5a str r5, [sp, 0x60]                                            |     var_60h = r5;
    0x00033e5c add r3, pc                                                    |     r3 = 0x68480;
    0x00033e5e str r5, [sp, 0x54]                                            |     var_54h = r5;
    0x00033e60 adds r3, 0x40                                                 |     r3 += 0x40;
    0x00033e62 vstr d16, [sp, 0x58]                                          |     __asm ("vstr d16, [sp, 0x58]");
    0x00033e66 ldrd sl, fp, [r0, 0x10]                                       |     __asm ("ldrd sl, fp, [r0, 0x10]");
    0x00033e6a add r5, sp, 0x64                                              |     r5 += var_64h;
    0x00033e6c str r2, [sp, 4]                                               |     var_4h = r2;
    0x00033e6e ldm.w r3, {r0, r1, r2}                                        |     r0 = *(r3);
                                                                             |     r1 = *((r3 + 4));
                                                                             |     r2 = *((r3 + 8));
    0x00033e72 mov r3, fp                                                    |     r3 = fp;
    0x00033e74 str r5, [sp]                                                  |     *(sp) = r5;
    0x00033e76 stm.w r5, {r0, r1, r2}                                        |     *(r5) = r0;
                                                                             |     *((r5 + 4)) = r1;
                                                                             |     *((r5 + 8)) = r2;
    0x00033e7a mov r2, sl                                                    |     r2 = sl;
    0x00033e7c mov r0, r4                                                    |     r0 = r4;
    0x00033e7e bl 0x1e418                                                    |     r0 = fcn_0001e418 (r0, r1, r2, r3);
    0x00033e82 subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 < r0) {
    0x00033e84 blt 0x33f50                                                   |         goto label_69;
                                                                             |     }
    0x00033e86 ldrd r3, r2, [r4, 0x48]                                       |     __asm ("ldrd r3, r2, [r4, 0x48]");
    0x00033e8a mov r0, r4                                                    |     r0 = r4;
    0x00033e8c adds r3, 1                                                    |     r3++;
    0x00033e8e adc r2, r2, 0                                                 |     __asm ("adc r2, r2, 0");
    0x00033e92 strd r3, r2, [r4, 0x48]                                       |     __asm ("strd r3, r2, [r4, 0x48]");
    0x00033e96 ldr r1, [sp, 0x54]                                            |     r1 = var_54h;
    0x00033e98 strd r3, r2, [r1, 0x1f8]                                      |     __asm ("strd r3, r2, aav.0x000000ff");
    0x00033e9c bl 0x2f224                                                    |     r0 = fcn_0002f224 (r0, r1, r2);
    0x00033ea0 subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 < r0) {
    0x00033ea2 blt 0x33f50                                                   |         goto label_69;
                                                                             |     }
    0x00033ea4 ldrd r3, r2, [sb, 8]                                          |     __asm ("ldrd r3, r2, [sb, 8]");
    0x00033ea8 orrs r3, r2                                                   |     r3 |= r2;
                                                                             |     if (r3 != r2) {
    0x00033eaa bne 0x33f98                                                   |         goto label_70;
                                                                             |     }
                                                                             | label_11:
    0x00033eac add.w r1, sb, 0x10                                            |     r1 = sb + 0x10;
    0x00033eb0 ldr.w r0, [r4, 0x80]                                          |     r0 = *((r4 + 0x80));
    0x00033eb4 bl 0x66610                                                    |     fcn_00066610 (r0, r1);
    0x00033eb8 vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x00033ebc sub.w r6, sb, 0x20                                            |     r6 = sb - 0x20;
    0x00033ec0 mov r0, r6                                                    |     r0 = r6;
    0x00033ec2 add.w r8, sp, 0x58                                            |     r8 += var_58h;
    0x00033ec6 vstr d16, [sb, 0x10]                                          |     __asm ("vstr d16, [sb, 0x10]");
    0x00033ec8 lsrs r4, r0, 0xc                                              |     r4 = r0 >> 0xc;
    0x00033eca ldr.w r3, [r4, 0x3c4]                                         |     r3 = *((r4 + 0x3c4));
    0x00033ece adds r3, 1                                                    |     r3++;
    0x00033ed0 str.w r3, [r4, 0x3c4]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033ed4 ldr r3, [sp, 0x54]                                            |     r3 = var_54h;
    0x00033ed6 str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033eda blx 0xefa0                                                    |     fcn_0000efa0 ();
    0x00033ede str.w r0, [r4, 0x3ec]                                         |     __asm ("str.w r0, aav.0x000000ff");
    0x00033ee2 mov r2, r8                                                    |     r2 = r8;
    0x00033ee4 ldr.w r3, [sb]                                                |     r3 = *(sb);
    0x00033ee8 str.w r3, [r4, 0x3f0]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033eec ldr r1, [sb, -0x14]                                           |     r1 = *((sb - 0x14));
    0x00033ef0 str.w r1, [r4, 0x3f4]                                         |     __asm ("str.w r1, aav.0x000000ff");
    0x00033ef4 ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
    0x00033ef6 ldr.w r3, [sb]                                                |     r3 = *(sb);
    0x00033efa blx r3                                                        |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00033efc vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x00033f00 movs r3, 0                                                    |     r3 = 0;
    0x00033f02 strd r3, r3, [r4, 0x3f0]                                      |     __asm ("strd r3, r3, aav.0x000000ff");
    0x00033f06 mov r5, r0                                                    |     r5 = r0;
    0x00033f08 vstr d16, [r4, 0x3e8]                                         |     __asm ("vstr d16, aav.0x000000ff");
    0x00033f0c ldrb r3, [sb, -0x1b]                                          |     r3 = *((sb - 0x1b));
    0x00033f10 cmp r3, 0                                                     |     
                                                                             |     if (r3 != 0) {
    0x00033f12 bne 0x33fae                                                   |         goto label_71;
                                                                             |     }
                                                                             | label_12:
    0x00033f14 mov r0, r6                                                    |     r0 = r6;
    0x00033f16 blx 0xe4a8                                                    |     fcn_0000e4a8 ();
    0x00033f1a mov r1, r5                                                    |     r1 = r5;
    0x00033f1c ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
    0x00033f1e mov r2, r8                                                    |     r2 = r8;
    0x00033f20 bl 0x192bc                                                    |     r0 = fcn_000192bc (r0, r1, r2);
    0x00033f24 mov r5, r0                                                    |     r5 = r0;
                                                                             | label_9:
    0x00033f26 ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
                                                                             |     if (r0 != 0) {
    0x00033f28 cbz r0, 0x33f2e                                               |         
    0x00033f2a blx 0xefbc                                                    |         fcn_0000efbc ();
                                                                             |     }
    0x00033f2e mov r0, r8                                                    |     r0 = r8;
    0x00033f30 blx 0xe1dc                                                    |     fcn_0000e1dc ();
    0x00033f34 ldr r0, [sp, 0x50]                                            |     r0 = var_50h;
    0x00033f36 b 0x33ab6                                                     |     goto label_8;
                                                                             | label_68:
    0x00033f38 mvn r2, 0x5b                                                  |     r2 = ~0x5b;
    0x00033f3c movw r3, 0x9f01                                               |     
    0x00033f40 subs r2, r2, r5                                               |     r2 -= r5;
    0x00033f42 movt r3, 0x3d                                                 |     r3 = 0x3d9f01;
    0x00033f44 lsls r5, r7, 0xc                                              |     r5 = r7 << 0xc;
    0x00033f46 lsrs r3, r2                                                   |     r3 >>= r2;
    0x00033f48 lsls r3, r3, 0x1f                                             |     r3 <<= 0x1f;
                                                                             |     if (r3 < r3) {
    0x00033f4a bmi.w 0x33bac                                                 |         goto label_7;
                                                                             |     }
    0x00033f4e b 0x33abc                                                     |     goto label_0;
                                                                             | label_69:
    0x00033f50 add.w r8, sp, 0x58                                            |     r8 += var_58h;
    0x00033f54 b 0x33f26                                                     |     goto label_9;
                                                                             | label_62:
    0x00033f56 ldr r0, [sp, 0x50]                                            |     r0 = var_50h;
    0x00033f58 b 0x33ab6                                                     |     goto label_8;
                                                                             | label_65:
    0x00033f5a ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
                                                                             |     if (r0 != 0) {
    0x00033f5c cbz r0, 0x33f62                                               |         
    0x00033f5e blx 0xefbc                                                    |         fcn_0000efbc ();
                                                                             |     }
    0x00033f62 add r0, sp, 0x58                                              |     r0 += var_58h;
    0x00033f64 blx 0xe1dc                                                    |     fcn_0000e1dc ();
    0x00033f68 b 0x33e2a                                                     |     goto label_10;
                                                                             | label_63:
    0x00033f6a ldr r0, [sp, 0x50]                                            |     r0 = var_50h;
                                                                             | label_15:
    0x00033f6c movs r3, 0                                                    |     r3 = 0;
    0x00033f6e str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033f70 adds r3, 0xe8                                                 |     r3 += 0xe8;
    0x00033f72 b 0x33ab6                                                     |     goto label_8;
                                                                             | label_61:
    0x00033f74 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
    0x00033f76 subs r3, 4                                                    |     r3 -= 4;
    0x00033f78 cmp r3, 1                                                     |     
                                                                             |     if (r3 >= 1) {
    0x00033f7a bls 0x33fb8                                                   |         
    0x00033f7c ldr.w r1, [pc, 0x6a4]                                         |         
    0x00033f80 movw r2, 0x817                                                |         r2 = 0x817;
    0x00033f84 ldr.w r3, [pc, 0x6a0]                                         |         r3 = *(0x00034628);
    0x00033f88 ldr.w r0, [pc, 0x6a0]                                         |         r0 = *(0x0003462c);
    0x00033f8c add r1, pc                                                    |         r1 = 0x685b4;
    0x00033f8e add r3, pc                                                    |         r3 += pc;
    0x00033f90 adds r1, 7                                                    |         r1 += 7;
    0x00033f92 add r0, pc                                                    |         r0 += pc;
    0x00033f94 bl 0x68d78                                                    |         fcn_00068d78 (r0, r1, r2, r3);
                                                                             | label_70:
    0x00033f98 ldr r0, [r4, 0x7c]                                            |         r0 = *((r4 + 0x7c));
    0x00033f9a add.w r2, sb, 0x18                                            |         r2 = sb + 0x18;
    0x00033f9e mov r1, sb                                                    |         r1 = sb;
    0x00033fa0 bl 0x6d418                                                    |         fcn_0006d418 (r0);
    0x00033fa4 vmov.i32 d16, 0                                               |         __asm ("vmov.i32 d16, 0");
    0x00033fa8 vstr d16, [sb, 8]                                             |         __asm ("vstr d16, [sb, 8]");
    0x00033fac b 0x33eac                                                     |         goto label_11;
                                                                             | label_71:
    0x00033fae movs r1, 1                                                    |         r1 = 1;
    0x00033fb0 mov r0, r6                                                    |         r0 = r6;
    0x00033fb2 bl 0x29d1c                                                    |         fcn_00029d1c (r0, r1);
    0x00033fb6 b 0x33f14                                                     |         goto label_12;
                                                                             |     }
    0x00033fb8 mov sb, r5                                                    |     sb = r5;
    0x00033fba b 0x33fd0                                                     |     
                                                                             |     while (r3 == 0) {
    0x00033fbc mov r0, r4                                                    |         r0 = r4;
    0x00033fbe bl 0x2c620                                                    |         r0 = fcn_0002c620 (r0);
    0x00033fc2 cmp r0, 0                                                     |         
                                                                             |         if (r0 < 0) {
    0x00033fc4 blt.w 0x3420e                                                 |             goto label_72;
                                                                             |         }
                                                                             |         if (r0 == 0) {
    0x00033fc8 beq.w 0x34234                                                 |             goto label_73;
                                                                             |         }
    0x00033fcc mov.w sb, 1                                                   |         sb = 1;
    0x00033fd0 ldr r3, [r4, 0x2c]                                            |         r3 = *((r4 + 0x2c));
    0x00033fd2 cmp r3, 0                                                     |         
    0x00033fd4 beq 0x33fbc                                                   |         
                                                                             |     }
    0x00033fd6 ldr r3, [r4, 0x28]                                            |     r3 = *((r4 + 0x28));
    0x00033fd8 ldr r0, [r3]                                                  |     r0 = *(r3);
    0x00033fda blx 0xe684                                                    |     fcn_0000e684 ();
    0x00033fde movs r1, 0                                                    |     r1 = 0;
    0x00033fe0 mov sb, r0                                                    |     sb = r0;
    0x00033fe2 mov r0, r4                                                    |     r0 = r4;
    0x00033fe4 bl 0x2dcf4                                                    |     fcn_0002dcf4 (r0, r1);
    0x00033fe8 cmp.w sb, 0                                                   |     
                                                                             |     if (sb == 0) {
    0x00033fec beq.w 0x33b92                                                 |         goto label_13;
                                                                             |     }
    0x00033ff0 ldr.w r3, [r4, 0x3c4]                                         |     r3 = *((r4 + 0x3c4));
    0x00033ff4 str.w sb, [r4, 0x3e8]                                         |     __asm ("str.w sb, aav.0x000000ff");
    0x00033ff8 adds r3, 1                                                    |     r3++;
    0x00033ffa str.w r3, [r4, 0x3c4]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00033ffe bl 0x68450                                                    |     r0 = fcn_00068450 ();
    0x00034002 cmp r0, 6                                                     |     
                                                                             |     if (r0 > 6) {
    0x00034004 ble 0x340e4                                                   |         
    0x00034006 ldr.w r3, [sb, 0x104]                                         |         r3 = *((sb + 0x104));
    0x0003400a ldrb r0, [r3, 1]                                              |         r0 = *((r3 + 1));
    0x0003400c bl 0x191f0                                                    |         fcn_000191f0 ();
    0x00034010 str r0, [sp, 0x44]                                            |         var_44h = r0;
    0x00034012 cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x00034014 beq.w 0x343a6                                                 |             goto label_74;
                                                                             |         }
                                                                             | label_29:
    0x00034018 mov r0, sb                                                    |         r0 = sb;
    0x0003401a blx 0xe054                                                    |         fcn_0000e054 ();
    0x0003401e str r0, [sp, 0x48]                                            |         var_48h = r0;
    0x00034020 cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x00034022 beq.w 0x3439e                                                 |             goto label_75;
                                                                             |         }
                                                                             | label_28:
    0x00034026 mov r0, sb                                                    |         r0 = sb;
    0x00034028 blx 0xe0e0                                                    |         fcn_0000e0e0 ();
    0x0003402c str r0, [sp, 0x4c]                                            |         var_4ch = r0;
    0x0003402e cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x00034030 beq.w 0x34396                                                 |             goto label_76;
                                                                             |         }
                                                                             | label_27:
    0x00034034 mov r0, sb                                                    |         r0 = sb;
    0x00034036 blx 0xf254                                                    |         r0 = fcn_0000f254 ();
    0x0003403a mov sl, r0                                                    |         sl = r0;
    0x0003403c cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x0003403e beq.w 0x3438e                                                 |             goto label_77;
                                                                             |         }
                                                                             | label_26:
    0x00034042 mov r0, sb                                                    |         r0 = sb;
    0x00034044 blx 0xe15c                                                    |         r0 = fcn_0000e15c ();
    0x00034048 mov fp, r0                                                    |         
    0x0003404a cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x0003404c beq.w 0x34386                                                 |             goto label_78;
                                                                             |         }
                                                                             | label_25:
    0x00034050 mov r0, sb                                                    |         r0 = sb;
    0x00034052 blx 0xeab8                                                    |         r0 = fcn_0000eab8 ();
    0x00034056 mov r2, r0                                                    |         r2 = r0;
    0x00034058 cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x0003405a beq.w 0x34380                                                 |             goto label_79;
                                                                             |         }
                                                                             | label_24:
    0x0003405e ldr.w r1, [sb, 0x104]                                         |         r1 = *((sb + 0x104));
    0x00034062 ldrb r3, [r1, 3]                                              |         r3 = *((r1 + 3));
    0x00034064 ldrb r0, [r1]                                                 |         r0 = *(r1);
    0x00034066 cmp r3, 2                                                     |         
    0x00034068 ldr r3, [r1, 8]                                               |         r3 = *((r1 + 8));
                                                                             |         if (r3 == 2) {
    0x0003406a beq.w 0x34370                                                 |             goto label_80;
                                                                             |         }
    0x0003406e cmp r0, 0x6c                                                  |         
    0x00034070 mov.w r1, 0                                                   |         r1 = 0;
    0x00034074 it ne                                                         |         
                                                                             |         if (r0 != 0x6c) {
    0x00034076 revne r3, r3                                                  |             __asm ("revne r3, r3");
                                                                             |         }
                                                                             | label_23:
    0x00034078 ldr.w r0, [sb, 0x170]                                         |         r0 = *((sb + 0x170));
    0x0003407c vldr d16, [sb, 0x10]                                          |         __asm ("vldr d16, [sb, 0x10]");
    0x00034080 cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x00034082 beq.w 0x3436a                                                 |             goto label_81;
                                                                             |         }
                                                                             | label_22:
    0x00034086 ldr.w ip, [sb, 0x2c]                                          |         ip = *((sb + 0x2c));
    0x0003408a cmp.w ip, 0                                                   |         
                                                                             |         if (ip == 0) {
    0x0003408e beq.w 0x343ae                                                 |             goto label_82;
                                                                             |         }
                                                                             | label_30:
    0x00034092 ldr.w lr, [sb, 0x30]                                          |         
    0x00034096 cmp.w lr, 0                                                   |         
                                                                             |         if (lr == 0) {
    0x0003409a beq.w 0x34362                                                 |             goto label_83;
                                                                             |         }
                                                                             | label_21:
    0x0003409e strd r3, r1, [sp, 0x20]                                       |         __asm ("strd r3, r1, [sp, 0x20]");
    0x000340a2 movs r1, 0                                                    |         r1 = 0;
    0x000340a4 ldr r3, [sp, 0x4c]                                            |         r3 = var_4ch;
    0x000340a6 strd fp, r2, [sp, 0x18]                                       |         __asm ("strd fp, r2, [sp, 0x18]");
    0x000340aa ldr.w r2, [pc, 0x584]                                         |         r2 = *(0x00034630);
    0x000340ac movs r5, 0x84                                                 |         r5 = 0x84;
    0x000340ae str r3, [sp, 0x10]                                            |         var_10h = r3;
    0x000340b0 ldr r3, [sp, 0x48]                                            |         r3 = var_48h;
    0x000340b2 add r2, pc                                                    |         r2 += pc;
    0x000340b4 str r0, [sp, 0x30]                                            |         var_30h = r0;
    0x000340b6 adds r2, 7                                                    |         r2 += 7;
    0x000340b8 movs r0, 7                                                    |         r0 = 7;
    0x000340ba str r3, [sp, 0xc]                                             |         var_ch = r3;
    0x000340bc ldr r3, [sp, 0x44]                                            |         r3 = var_44h;
    0x000340be vstr d16, [sp, 0x28]                                          |         __asm ("vstr d16, [sp, 0x28]");
    0x000340c2 strd ip, lr, [sp, 0x34]                                       |         __asm ("strd ip, lr, [sp, 0x34]");
    0x000340c6 str r3, [sp, 8]                                               |         var_8h = r3;
    0x000340c8 ldr.w r3, [pc, 0x568]                                         |         
    0x000340cc str.w sl, [sp, 0x14]                                          |         __asm ("str.w sl, [var_14h]");
    0x000340d0 add r3, pc                                                    |         r3 = 0x68708;
    0x000340d2 str r3, [sp, 4]                                               |         var_4h = r3;
    0x000340d4 ldr.w r3, [pc, 0x560]                                         |         
    0x000340d8 add r3, pc                                                    |         r3 = 0x68714;
    0x000340da str r3, [sp]                                                  |         *(sp) = r3;
    0x000340dc movw r3, 0xb78                                                |         r3 = 0xb78;
    0x000340e0 bl 0x68ca8                                                    |         fcn_00068ca8 (r0, r1, r2, r3, r4, r5, r6);
                                                                             |     }
    0x000340e4 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
    0x000340e6 ldr.w r2, [sb, 0x104]                                         |     r2 = *((sb + 0x104));
    0x000340ea cmp r3, 4                                                     |     
                                                                             |     if (r3 == 4) {
    0x000340ec bne 0x34108                                                   |         
    0x000340ee ldrb r3, [r2, 1]                                              |         r3 = *((r2 + 1));
    0x000340f0 subs r3, 2                                                    |         r3 -= 2;
    0x000340f2 cmp r3, 1                                                     |         
                                                                             |         if (r3 > 1) {
    0x000340f4 bhi.w 0x34240                                                 |             goto label_84;
                                                                             |         }
    0x000340f8 ldr.w r3, [sb, 0x10]                                          |         r3 = *((sb + 0x10));
    0x000340fc ldr.w r1, [sb, 0x14]                                          |         r1 = *((sb + 0x14));
    0x00034100 subs r3, 1                                                    |         r3--;
    0x00034102 orrs r3, r1                                                   |         r3 |= r1;
                                                                             |         if (r3 != r1) {
    0x00034104 bne.w 0x34240                                                 |             goto label_84;
                                                                             |         }
                                                                             |     }
    0x00034108 vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x0003410c movs r3, 0                                                    |     r3 = 0;
    0x0003410e str r3, [sp, 0x54]                                            |     var_54h = r3;
    0x00034110 str r3, [sp, 0x60]                                            |     var_60h = r3;
    0x00034112 vstr d16, [sp, 0x58]                                          |     __asm ("vstr d16, [sp, 0x58]");
    0x00034116 ldrb r3, [r2, 1]                                              |     r3 = *((r2 + 1));
    0x00034118 subs r3, 2                                                    |     r3 -= 2;
    0x0003411a cmp r3, 1                                                     |     
                                                                             |     if (r3 <= 1) {
    0x0003411c bhi.w 0x34252                                                 |         
    0x00034120 ldr.w r0, [sb, 0x24]                                          |         r0 = *((sb + 0x24));
                                                                             |         if (r0 != 0) {
    0x00034124 cbz r0, 0x34134                                               |             
    0x00034126 ldr r1, [r4, 0x50]                                            |             r1 = *((r4 + 0x50));
                                                                             |             if (r1 == 0) {
    0x00034128 cbz r1, 0x34134                                               |                 goto label_85;
                                                                             |             }
    0x0003412a blx 0xf350                                                    |             r0 = fcn_0000f350 ();
    0x0003412e cmp r0, 0                                                     |             
                                                                             |             if (r0 != 0) {
    0x00034130 bne.w 0x34252                                                 |                 goto label_86;
                                                                             |             }
                                                                             |         }
                                                                             | label_85:
    0x00034134 ldr.w r0, [r4, 0x80]                                          |         r0 = *((r4 + 0x80));
    0x00034138 add.w r1, sb, 0x10                                            |         r1 = sb + 0x10;
    0x0003413c bl 0x66610                                                    |         r0 = fcn_00066610 (r0, r1);
    0x00034140 mov sl, r0                                                    |         sl = r0;
    0x00034142 cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x00034144 beq.w 0x34252                                                 |             goto label_86;
                                                                             |         }
    0x00034148 vmov.i32 d16, 0                                               |         __asm ("vmov.i32 d16, 0");
    0x0003414c vstr d16, [r0, 0x10]                                          |         __asm ("vstr d16, [r0, 0x10]");
    0x00034150 ldr.w r3, [sb, 0x15c]                                         |         r3 = *((sb + 0x15c));
                                                                             |         if (r3 != 0) {
    0x00034154 cbz r3, 0x3415e                                               |             
    0x00034156 ldrb r3, [r4, 0x1e]                                           |             r3 = *((r4 + 0x1e));
    0x00034158 lsls r0, r3, 0x1a                                             |             r0 = r3 << 0x1a;
                                                                             |             if (r0 >= r3) {
    0x0003415a bpl.w 0x34484                                                 |                 goto label_87;
                                                                             |             }
    0x0003415c strh r3, [r2, 0xc]                                            |             *((r2 + 0xc)) = r3;
                                                                             |         }
    0x0003415e movs r1, 1                                                    |         r1 = 1;
    0x00034160 mov r0, sb                                                    |         r0 = sb;
    0x00034162 blx 0xe780                                                    |         r0 = fcn_0000e780 ();
    0x00034166 subs.w fp, r0, 0                                              |         
                                                                             |         if (fp < r0) {
    0x0003416a blt.w 0x34290                                                 |             goto label_35;
                                                                             |         }
    0x0003416e str.w sb, [sp, 0x44]                                          |         __asm ("str.w sb, [var_44h]");
                                                                             | label_36:
    0x00034172 ldrd r3, r2, [sl, 8]                                          |         __asm ("ldrd r3, r2, [sl, 8]");
    0x00034176 orrs r3, r2                                                   |         r3 |= r2;
                                                                             |         if (r3 != r2) {
    0x00034178 bne.w 0x34574                                                 |             goto label_88;
                                                                             |         }
                                                                             | label_41:
    0x0003417c ldr r3, [r4, 4]                                               |         r3 = *((r4 + 4));
    0x0003417e cmp r3, 4                                                     |         
                                                                             |         if (r3 == 4) {
    0x00034180 bne 0x34192                                                   |             
    0x00034182 ldr.w r3, [pc, 0x4b8]                                         |             r3 = *(0x0003463c);
    0x00034186 ldr.w r5, [sl]                                                |             r5 = *(sl);
    0x0003418a add r3, pc                                                    |             r3 += pc;
    0x0003418c subs r1, r5, r3                                               |             r1 = r5 - r3;
    0x0003418e rsbs r5, r1, 0                                                |             r5 = r1 - ;
    0x00034190 adcs r5, r1                                                   |             __asm ("adcs r5, r1");
                                                                             |         }
    0x00034192 sub.w r3, sl, 0x20                                            |         r3 = sl - 0x20;
    0x00034196 mov r0, r3                                                    |         r0 = r3;
    0x00034198 str r3, [sp, 0x48]                                            |         var_48h = r3;
    0x0003419a blx 0xefa0                                                    |         fcn_0000efa0 ();
    0x0003419e str.w r0, [r4, 0x3ec]                                         |         __asm ("str.w r0, aav.0x000000ff");
    0x000341a2 mov r2, r8                                                    |         r2 = r8;
    0x000341a4 ldr.w r3, [sl]                                                |         r3 = *(sl);
    0x000341a8 ldr r0, [sp, 0x44]                                            |         r0 = var_44h;
    0x000341aa str.w r3, [r4, 0x3f0]                                         |         __asm ("str.w r3, aav.0x000000ff");
    0x000341ae ldr r1, [sl, -0x14]                                           |         r1 = *((sl - 0x14));
    0x000341b2 str.w r1, [r4, 0x3f4]                                         |         __asm ("str.w r1, aav.0x000000ff");
    0x000341b6 ldr.w r3, [sl]                                                |         r3 = *(sl);
    0x000341ba blx r3                                                        |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000341bc movs r3, 0                                                    |         r3 = 0;
    0x000341be mov fp, r0                                                    |         
    0x000341c0 strd r3, r3, [r4, 0x3f0]                                      |         __asm ("strd r3, r3, aav.0x000000ff");
    0x000341c4 str.w r3, [r4, 0x3ec]                                         |         __asm ("str.w r3, aav.0x000000ff");
    0x000341c8 ldrb r3, [sl, -0x1b]                                          |         r3 = *((sl - 0x1b));
    0x000341cc cmp r3, 0                                                     |         
                                                                             |         if (r3 != 0) {
    0x000341ce bne.w 0x3447a                                                 |             goto label_89;
                                                                             |         }
                                                                             | label_34:
    0x000341d2 ldr r0, [sp, 0x48]                                            |         r0 = var_48h;
    0x000341d4 blx 0xe4a8                                                    |         fcn_0000e4a8 ();
                                                                             |         if (r5 == 0) {
    0x000341d8 cbnz r5, 0x341e6                                              |             
    0x000341da mov r1, fp                                                    |             r1 = fp;
    0x000341dc ldr r0, [sp, 0x44]                                            |             r0 = var_44h;
    0x000341de mov r2, r8                                                    |             r2 = r8;
    0x000341e0 bl 0x192bc                                                    |             r0 = fcn_000192bc (r0, r1, r2);
    0x000341e4 mov fp, r0                                                    |             
                                                                             |         }
    0x000341e6 mov r0, r8                                                    |         r0 = r8;
    0x000341e8 blx 0xe1dc                                                    |         fcn_0000e1dc ();
    0x000341ec ldr r0, [sp, 0x54]                                            |         r0 = var_54h;
                                                                             |         if (r0 != 0) {
    0x000341ee cbz r0, 0x341f4                                               |             
    0x000341f0 blx 0xefbc                                                    |             fcn_0000efbc ();
                                                                             |         }
    0x000341f4 cmp.w fp, 0                                                   |         
                                                                             |         if (fp == 0) {
    0x000341f8 beq 0x34260                                                   |             goto label_90;
                                                                             |         }
    0x000341fa movs r3, 0                                                    |         r3 = 0;
    0x000341fc mov r5, fp                                                    |         r5 = fp;
    0x000341fe str.w r3, [r4, 0x3e8]                                         |         __asm ("str.w r3, aav.0x000000ff");
    0x00034202 b 0x34282                                                     |         goto label_19;
                                                                             | label_67:
    0x00034204 movs r1, 1                                                    |         r1 = 1;
    0x00034206 mov r0, fp                                                    |         r0 = fp;
    0x00034208 bl 0x29d1c                                                    |         fcn_00029d1c (r0, r1);
    0x0003420c b 0x33de6                                                     |         goto label_14;
                                                                             | label_72:
    0x0003420e mov r5, r0                                                    |         r5 = r0;
    0x00034210 b 0x33e2a                                                     |         goto label_10;
                                                                             | label_66:
    0x00034212 ldr.w r1, [pc, 0x42c]                                         |         r1 = *(0x00034640);
    0x00034216 movw r2, 0xa55                                                |         r2 = 0xa55;
    0x0003421a ldr.w r3, [pc, 0x428]                                         |         
    0x0003421e ldr.w r0, [pc, 0x428]                                         |         
    0x00034222 add r1, pc                                                    |         r1 += pc;
    0x00034224 add r3, pc                                                    |         r3 = 0x6886e;
    0x00034226 adds r1, 7                                                    |         r1 += 7;
    0x00034228 add r0, pc                                                    |         r0 = 0x68876;
    0x0003422a bl 0x68d78                                                    |         fcn_00068d78 (r0, r1, r2, r3);
                                                                             | label_64:
    0x0003422e ldr r0, [sp, 0x50]                                            |         r0 = var_50h;
    0x00034230 movs r5, 1                                                    |         r5 = 1;
    0x00034232 b 0x33f6c                                                     |         goto label_15;
                                                                             |         if (r6 != 0) {
                                                                             | label_73:
    0x00034234 cbz r6, 0x34238                                               |             
    0x00034236 str r0, [r6]                                                  |             *(r6) = r0;
                                                                             |         }
    0x00034238 mov r5, sb                                                    |         r5 = sb;
    0x0003423a b 0x33abc                                                     |         goto label_0;
                                                                             | label_56:
    0x0003423c blx 0xed3c                                                    |         strnlen ();
                                                                             | label_84:
    0x00034240 movs r3, 0                                                    |         r3 = 0;
    0x00034242 mov r0, sb                                                    |         r0 = sb;
    0x00034244 str.w r3, [r4, 0x3e8]                                         |         __asm ("str.w r3, aav.0x000000ff");
    0x00034248 mvn r5, 4                                                     |         r5 = ~4;
    0x0003424c blx 0xefbc                                                    |         fcn_0000efbc ();
    0x00034250 b 0x33abc                                                     |         goto label_0;
                                                                             |     }
                                                                             | label_86:
    0x00034252 mov r0, r8                                                    |     r0 = r8;
    0x00034254 blx 0xe1dc                                                    |     fcn_0000e1dc ();
    0x00034258 ldr r0, [sp, 0x54]                                            |     r0 = var_54h;
                                                                             |     if (r0 != 0) {
    0x0003425a cbz r0, 0x34260                                               |         
    0x0003425c blx 0xefbc                                                    |         fcn_0000efbc ();
                                                                             |     }
                                                                             | label_90:
    0x00034260 ldrb r3, [r4, 0x1e]                                           |     r3 = *((r4 + 0x1e));
    0x00034262 lsls r2, r3, 0x1b                                             |     r2 = r3 << 0x1b;
                                                                             |     if (r2 < r3) {
    0x00034264 bmi 0x342c2                                                   |         goto label_91;
                                                                             |     }
    0x00034266 ldr.w r2, [sb, 0x15c]                                         |     r2 = *((sb + 0x15c));
                                                                             |     if (r2 == 0) {
    0x0003426a cbz r2, 0x342c2                                               |         goto label_91;
                                                                             |     }
    0x0003426c lsls r3, r3, 0x1a                                             |     r3 <<= 0x1a;
                                                                             |     if (r3 < r3) {
    0x0003426e bmi 0x342c2                                                   |         goto label_91;
                                                                             |     }
    0x00034270 ldr.w r3, [sb, 0x104]                                         |     r3 = *((sb + 0x104));
    0x00034274 ldrb r3, [r3, 1]                                              |     r3 = *((r3 + 1));
    0x00034276 cmp r3, 1                                                     |     
                                                                             |     if (r3 == 1) {
    0x00034278 beq 0x342ae                                                   |         goto label_92;
                                                                             |     }
    0x0003427a movs r5, 1                                                    |     r5 = 1;
                                                                             |     do {
                                                                             | label_18:
    0x0003427c movs r3, 0                                                    |         r3 = 0;
    0x0003427e str.w r3, [r4, 0x3e8]                                         |         __asm ("str.w r3, aav.0x000000ff");
                                                                             | label_19:
    0x00034282 cmp r5, 0                                                     |         
                                                                             |         if (r5 >= 0) {
    0x00034284 blt 0x342a6                                                   |             
                                                                             |             if (r6 == 0) {
    0x00034286 cbz r6, 0x342a6                                               |                 goto label_33;
                                                                             |             }
    0x00034288 movs r3, 0                                                    |             r3 = 0;
    0x0003428a mov r0, sb                                                    |             r0 = sb;
    0x0003428c str r3, [r6]                                                  |             *(r6) = r3;
    0x0003428e b 0x33ab8                                                     |             goto label_16;
                                                                             | label_35:
    0x00034290 mov r0, r8                                                    |             r0 = r8;
    0x00034292 blx 0xe1dc                                                    |             fcn_0000e1dc ();
    0x00034296 ldr r0, [sp, 0x54]                                            |             r0 = var_54h;
                                                                             |             if (r0 != 0) {
    0x00034298 cbz r0, 0x3429e                                               |                 
    0x0003429a blx 0xefbc                                                    |                 fcn_0000efbc ();
                                                                             |             }
    0x0003429e mov r5, fp                                                    |             r5 = fp;
    0x000342a0 movs r3, 0                                                    |             r3 = 0;
    0x000342a2 str.w r3, [r4, 0x3e8]                                         |             __asm ("str.w r3, aav.0x000000ff");
                                                                             |         }
                                                                             | label_33:
    0x000342a6 mov r0, sb                                                    |         r0 = sb;
    0x000342a8 blx 0xefbc                                                    |         fcn_0000efbc ();
    0x000342ac b 0x33e24                                                     |         goto label_17;
                                                                             | label_92:
    0x000342ae ldr r2, [pc, 0x39c]                                           |         
    0x000342b0 mov r0, sb                                                    |         r0 = sb;
    0x000342b2 ldr r1, [pc, 0x39c]                                           |         
    0x000342b4 add r2, pc                                                    |         r2 = 0x68906;
    0x000342b6 add r1, pc                                                    |         r1 = 0x6890c;
    0x000342b8 blx 0xe5f8                                                    |         r0 = fcn_0000e5f8 ();
    0x000342bc mov r5, r0                                                    |         r5 = r0;
    0x000342be cmp r0, 0                                                     |         
    0x000342c0 bne 0x3427c                                                   |         
                                                                             |     } while (r0 != 0);
                                                                             | label_91:
    0x000342c2 mov r1, sb                                                    |     r1 = sb;
    0x000342c4 mov r0, r4                                                    |     r0 = r4;
    0x000342c6 bl 0x2df34                                                    |     r0 = fcn_0002df34 (r0, r1);
    0x000342ca mov r5, r0                                                    |     r5 = r0;
    0x000342cc cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x000342ce bne 0x3427c                                                   |         goto label_18;
                                                                             |     }
    0x000342d0 mov r1, sb                                                    |     r1 = sb;
    0x000342d2 mov r0, r4                                                    |     r0 = r4;
    0x000342d4 bl 0x2e160                                                    |     r0 = fcn_0002e160 (r0, r1);
    0x000342d8 mov r5, r0                                                    |     r5 = r0;
    0x000342da cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x000342dc bne 0x3427c                                                   |         goto label_18;
                                                                             |     }
    0x000342de str r0, [sp, 0x64]                                            |     var_64h = r0;
    0x000342e0 ldrb r3, [r4, 0x1e]                                           |     r3 = *((r4 + 0x1e));
    0x000342e2 lsls r5, r3, 0x1b                                             |     r5 = r3 << 0x1b;
                                                                             |     if (r5 >= r3) {
    0x000342e4 bmi 0x34302                                                   |         
    0x000342e6 ldrb r3, [r4, 0x1d]                                           |         r3 = *((r4 + 0x1d));
    0x000342e8 lsls r0, r3, 0x1c                                             |         r0 = r3 << 0x1c;
                                                                             |         if (r0 < r3) {
    0x000342ea bmi 0x34302                                                   |             goto label_32;
                                                                             |         }
    0x000342ec ldr.w r5, [sb, 0x104]                                         |         r5 = *((sb + 0x104));
    0x000342f0 ldrb r3, [r5, 1]                                              |         r3 = *((r5 + 1));
    0x000342f2 cmp r3, 1                                                     |         
                                                                             |         if (r3 != 1) {
    0x000342f4 bne 0x34302                                                   |             goto label_32;
                                                                             |         }
    0x000342f6 ldr.w r8, [sb, 0x1c]                                          |         r8 = *((sb + 0x1c));
    0x000342fa cmp.w r8, 0                                                   |         
                                                                             |         if (r8 != 0) {
    0x000342fe bne.w 0x34414                                                 |             goto label_93;
                                                                             |         }
                                                                             |     }
                                                                             | label_32:
    0x00034302 mov r1, sb                                                    |     r1 = sb;
    0x00034304 mov r0, r4                                                    |     r0 = r4;
    0x00034306 bl 0x26d8c                                                    |     fcn_00026d8c (r0, r1);
    0x00034308 stc2l p3, c2, [r1, -0]                                        |     __asm ("stc2l p3, c2, [r1, -0]");
    0x0003430c mov r5, r0                                                    |     r5 = r0;
    0x0003430e str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00034312 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00034314 bne 0x34282                                                   |         goto label_19;
                                                                             |     }
                                                                             |     if (r6 != 0) {
    0x00034316 cbz r6, 0x3432a                                               |         
    0x00034318 movs r1, 1                                                    |         r1 = 1;
    0x0003431a mov r0, sb                                                    |         r0 = sb;
    0x0003431c blx 0xe780                                                    |         r0 = fcn_0000e780 ();
    0x00034320 subs r5, r0, 0                                                |         r5 = r0 - 0;
                                                                             |         if (r5 < r0) {
    0x00034322 blt 0x3435a                                                   |             goto label_94;
                                                                             |         }
    0x00034324 str.w sb, [r6]                                                |         __asm ("str.w sb, [r6]");
    0x00034328 b 0x33b98                                                     |         goto label_20;
                                                                             |     }
    0x0003432a ldr.w r3, [sb, 0x104]                                         |     r3 = *((sb + 0x104));
    0x0003432e ldrb r3, [r3, 1]                                              |     r3 = *((r3 + 1));
    0x00034330 cmp r3, 1                                                     |     
    0x00034332 beq 0x3433c                                                   |     
                                                                             |     while (r5 >= r0) {
    0x00034334 mov r0, sb                                                    |         r0 = sb;
    0x00034336 blx 0xefbc                                                    |         fcn_0000efbc ();
    0x0003433a b 0x33b98                                                     |         goto label_20;
    0x0003433c bl 0x68450                                                    |         r0 = fcn_00068450 ();
    0x00034340 cmp r0, 6                                                     |         
                                                                             |         if (r0 > 6) {
    0x00034342 bgt 0x343b6                                                   |             goto label_95;
                                                                             |         }
                                                                             | label_31:
    0x00034344 ldr r2, [pc, 0x30c]                                           |         
    0x00034346 mov r0, sb                                                    |         r0 = sb;
    0x00034348 ldr r1, [pc, 0x30c]                                           |         
    0x0003434a ldr.w r3, [sb, 0x18]                                          |         r3 = *((sb + 0x18));
    0x0003434e add r2, pc                                                    |         r2 = 0x689a6;
    0x00034350 add r1, pc                                                    |         r1 = 0x689ac;
    0x00034352 blx 0xe5f8                                                    |         r0 = fcn_0000e5f8 ();
    0x00034356 subs r5, r0, 0                                                |         r5 = r0 - 0;
    0x00034358 bge 0x34334                                                   |         
                                                                             |     }
                                                                             | label_94:
    0x0003435a mov r0, sb                                                    |     r0 = sb;
    0x0003435c blx 0xefbc                                                    |     fcn_0000efbc ();
    0x00034360 b 0x33e2a                                                     |     goto label_10;
                                                                             | label_83:
    0x00034362 ldr.w lr, [pc, 0x2f8]                                         |     
    0x00034366 add lr, pc                                                    |     lr += pc;
    0x00034368 b 0x3409e                                                     |     goto label_21;
                                                                             | label_81:
    0x0003436a ldr r0, [pc, 0x2f4]                                           |     
    0x0003436c add r0, pc                                                    |     r0 = 0x689d2;
    0x0003436e b 0x34086                                                     |     goto label_22;
                                                                             | label_80:
    0x00034370 cmp r0, 0x6c                                                  |     
    0x00034372 ldr r1, [r1, 0xc]                                             |     r1 = *((r1 + 0xc));
                                                                             |     if (r0 == 0x6c) {
    0x00034374 beq.w 0x34078                                                 |         goto label_23;
                                                                             |     }
    0x00034378 rev r0, r3                                                    |     r3 = SWAP32 (r0);
    0x0003437a rev r3, r1                                                    |     r1 = SWAP32 (r3);
    0x0003437c mov r1, r0                                                    |     r1 = r0;
    0x0003437e b 0x34078                                                     |     goto label_23;
                                                                             | label_79:
    0x00034380 ldr r2, [pc, 0x2e0]                                           |     
    0x00034382 add r2, pc                                                    |     r2 = 0x689ea;
    0x00034384 b 0x3405e                                                     |     goto label_24;
                                                                             | label_78:
    0x00034386 ldr.w fp, [pc, 0x2e0]                                         |     fp = *(0x00034668);
    0x0003438a add fp, pc                                                    |     
    0x0003438c b 0x34050                                                     |     goto label_25;
                                                                             | label_77:
    0x0003438e ldr.w sl, [pc, 0x2dc]                                         |     sl = *(0x0003466c);
    0x00034392 add sl, pc                                                    |     sl += pc;
    0x00034394 b 0x34042                                                     |     goto label_26;
                                                                             | label_76:
    0x00034396 ldr r3, [pc, 0x2d8]                                           |     
    0x00034398 add r3, pc                                                    |     r3 = 0x68a0e;
    0x0003439a str r3, [sp, 0x4c]                                            |     var_4ch = r3;
    0x0003439c b 0x34034                                                     |     goto label_27;
                                                                             | label_75:
    0x0003439e ldr r3, [pc, 0x2d4]                                           |     
    0x000343a0 add r3, pc                                                    |     r3 = 0x68a1a;
    0x000343a2 str r3, [sp, 0x48]                                            |     var_48h = r3;
    0x000343a4 b 0x34026                                                     |     goto label_28;
                                                                             | label_74:
    0x000343a6 ldr r3, [pc, 0x2d0]                                           |     
    0x000343a8 add r3, pc                                                    |     r3 = 0x68a26;
    0x000343aa str r3, [sp, 0x44]                                            |     var_44h = r3;
    0x000343ac b 0x34018                                                     |     goto label_29;
                                                                             | label_82:
    0x000343ae ldr.w ip, [pc, 0x2cc]                                         |     ip = *(0x0003467c);
    0x000343b2 add ip, pc                                                    |     
    0x000343b4 b 0x34092                                                     |     goto label_30;
                                                                             | label_95:
    0x000343b6 mov r0, sb                                                    |     r0 = sb;
    0x000343b8 blx 0xe054                                                    |     r0 = fcn_0000e054 ();
    0x000343bc mov r5, r0                                                    |     r5 = r0;
    0x000343be cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x000343c0 beq.w 0x345a0                                                 |         goto label_96;
                                                                             |     }
                                                                             | label_45:
    0x000343c4 mov r0, sb                                                    |     r0 = sb;
    0x000343c6 blx 0xf254                                                    |     r0 = fcn_0000f254 ();
    0x000343ca mov r8, r0                                                    |     r8 = r0;
    0x000343cc cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x000343ce beq.w 0x34598                                                 |         goto label_97;
                                                                             |     }
                                                                             | label_44:
    0x000343d2 mov r0, sb                                                    |     r0 = sb;
    0x000343d4 blx 0xe15c                                                    |     r0 = fcn_0000e15c ();
    0x000343d8 mov sl, r0                                                    |     sl = r0;
    0x000343da cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x000343dc beq.w 0x34590                                                 |         goto label_98;
                                                                             |     }
                                                                             | label_43:
    0x000343e0 mov r0, sb                                                    |     r0 = sb;
    0x000343e2 blx 0xeab8                                                    |     r0 = fcn_0000eab8 ();
    0x000343e6 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x000343e8 beq.w 0x3458a                                                 |         goto label_99;
                                                                             |     }
                                                                             | label_42:
    0x000343ec ldr r3, [pc, 0x290]                                           |     
    0x000343ee movs r1, 0                                                    |     r1 = 0;
    0x000343f0 ldr r2, [pc, 0x290]                                           |     
    0x000343f2 strd sl, r0, [sp, 0x10]                                       |     __asm ("strd sl, r0, [sp, 0x10]");
    0x000343f6 movs r0, 7                                                    |     r0 = 7;
    0x000343f8 add r3, pc                                                    |     r3 = 0x68a7c;
    0x000343fa strd r5, r8, [sp, 8]                                          |     __asm ("strd r5, r8, [sp, 8]");
    0x000343fe str r3, [sp, 4]                                               |     var_4h = r3;
    0x00034400 add r2, pc                                                    |     r2 = 0x68a88;
    0x00034402 ldr r3, [pc, 0x284]                                           |     
    0x00034404 adds r2, 7                                                    |     r2 += 7;
    0x00034406 add r3, pc                                                    |     r3 = 0x68a94;
    0x00034408 str r3, [sp]                                                  |     *(sp) = r3;
    0x0003440a movw r3, 0xbcb                                                |     r3 = 0xbcb;
    0x0003440e bl 0x68ca8                                                    |     fcn_00068ca8 (r0, r1, r2, r3, r4, r5, r6);
    0x00034412 b 0x34344                                                     |     goto label_31;
                                                                             | label_93:
    0x00034414 ldr r1, [pc, 0x274]                                           |     
    0x00034416 mov r0, r8                                                    |     r0 = r8;
    0x00034418 add r1, pc                                                    |     r1 = 0x68aa8;
    0x0003441a blx 0xf350                                                    |     r0 = fcn_0000f350 ();
    0x0003441e cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00034420 bne.w 0x34302                                                 |         goto label_32;
                                                                             |     }
    0x00034424 ldrb r3, [r5, 2]                                              |     r3 = *((r5 + 2));
    0x00034426 lsls r1, r3, 0x1f                                             |     r1 = r3 << 0x1f;
                                                                             |     if (r1 >= r3) {
    0x00034428 bmi 0x34462                                                   |         
    0x0003442a ldr.w r5, [sb, 0x20]                                          |         r5 = *((sb + 0x20));
    0x0003442e cmp r5, 0                                                     |         
                                                                             |         if (r5 != 0) {
    0x00034430 bne 0x344f6                                                   |             goto label_100;
                                                                             |         }
                                                                             | label_37:
    0x00034432 ldr r3, [pc, 0x25c]                                           |         
    0x00034434 add r1, sp, 0x64                                              |         r1 += var_64h;
    0x00034436 ldr r2, [pc, 0x25c]                                           |         
    0x00034438 mov r0, sb                                                    |         r0 = sb;
    0x0003443a strd r5, r8, [sp]                                             |         __asm ("strd r5, r8, [sp]");
    0x0003443e add r3, pc                                                    |         r3 = 0x68ad4;
    0x00034440 add r2, pc                                                    |         r2 = 0x68ada;
    0x00034442 blx 0xeb64                                                    |         r0 = fcn_0000eb64 ();
    0x00034446 mov r5, r0                                                    |         r5 = r0;
                                                                             | label_38:
    0x00034448 cmp r5, 0                                                     |         
    0x0003444a ldr r1, [sp, 0x64]                                            |         r1 = var_64h;
                                                                             |         if (r5 < 0) {
    0x0003444c blt 0x344e6                                                   |             goto label_101;
                                                                             |         }
    0x0003444e movs r2, 0                                                    |         r2 = 0;
    0x00034450 mov r0, r4                                                    |         r0 = r4;
    0x00034452 blx 0xeac8                                                    |         r0 = fcn_0000eac8 ();
    0x00034456 subs r5, r0, 0                                                |         r5 = r0 - 0;
    0x00034458 ldr r0, [sp, 0x64]                                            |         r0 = var_64h;
                                                                             |         if (r5 < r0) {
    0x0003445a blt 0x3446c                                                   |             goto label_102;
                                                                             |         }
                                                                             |         if (r0 == 0) {
    0x0003445c cbz r0, 0x34462                                               |             goto label_103;
                                                                             |         }
    0x0003445e blx 0xefbc                                                    |         fcn_0000efbc ();
                                                                             |     }
                                                                             | label_103:
    0x00034462 movs r3, 0                                                    |     r3 = 0;
    0x00034464 movs r5, 1                                                    |     r5 = 1;
    0x00034466 str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x0003446a b 0x34282                                                     |     goto label_19;
                                                                             |     if (r0 != 0) {
                                                                             | label_102:
    0x0003446c cbz r0, 0x34472                                               |         
                                                                             | label_39:
    0x0003446e blx 0xefbc                                                    |         fcn_0000efbc ();
                                                                             |     }
                                                                             | label_40:
    0x00034472 movs r3, 0                                                    |     r3 = 0;
    0x00034474 str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x00034478 b 0x342a6                                                     |     goto label_33;
                                                                             | label_89:
    0x0003447a ldr r0, [sp, 0x48]                                            |     r0 = var_48h;
    0x0003447c movs r1, 1                                                    |     r1 = 1;
    0x0003447e bl 0x29d1c                                                    |     fcn_00029d1c (r0, r1);
    0x00034482 b 0x341d2                                                     |     goto label_34;
                                                                             | label_87:
    0x00034484 ldr r3, [pc, 0x210]                                           |     
    0x00034486 ldrd fp, ip, [sb, 0x10]                                       |     __asm ("ldrd fp, ip, [sb, 0x10]");
    0x0003448a add r3, pc                                                    |     r3 = 0x68b26;
    0x0003448c adds r3, 0x34                                                 |     r3 += 0x34;
    0x0003448e ldm.w r3, {r0, r1, r2}                                        |     r0 = *(r3);
                                                                             |     r1 = *((r3 + 4));
                                                                             |     r2 = *((r3 + 8));
    0x00034492 add r3, sp, 0x64                                              |     r3 += var_64h;
    0x00034494 stm.w r3, {r0, r1, r2}                                        |     *(r3) = r0;
                                                                             |     *((r3 + 4)) = r1;
                                                                             |     *((r3 + 8)) = r2;
    0x00034498 add r2, sp, 0x54                                              |     r2 += var_54h;
    0x0003449a strd r3, r2, [sp]                                             |     __asm ("strd r3, r2, [sp]");
    0x0003449c adds r2, 0                                                    |     r2 += 0;
    0x0003449e mov r0, r4                                                    |     r0 = r4;
    0x000344a0 mov r2, fp                                                    |     r2 = fp;
    0x000344a2 mov r3, ip                                                    |     r3 = ip;
    0x000344a4 bl 0x1e418                                                    |     r0 = fcn_0001e418 (r0, r1, r2, r3);
    0x000344a8 subs.w fp, r0, 0                                              |     
                                                                             |     if (fp < r0) {
    0x000344ac blt.w 0x34290                                                 |         goto label_35;
                                                                             |     }
    0x000344b0 ldrd r2, r3, [sb, 0xe8]                                       |     __asm ("ldrd r2, r3, [sb, 0xe8]");
    0x000344b4 mov r0, r4                                                    |     r0 = r4;
    0x000344b6 ldr r1, [sp, 0x54]                                            |     r1 = var_54h;
    0x000344b8 strd r2, r3, [r1, 0xe8]                                       |     __asm ("strd r2, r3, [r1, 0xe8]");
    0x000344bc ldrd r2, r3, [sb, 0xe0]                                       |     __asm ("ldrd r2, r3, [sb, 0xe0]");
    0x000344c0 strd r2, r3, [r1, 0xe0]                                       |     __asm ("strd r2, r3, [r1, 0xe0]");
    0x000344c4 ldrd r2, r3, [sb, 0xf0]                                       |     __asm ("ldrd r2, r3, [sb, 0xf0]");
    0x000344c8 strd r2, r3, [r1, 0xf0]                                       |     __asm ("strd r2, r3, [r1, 0xf0]");
    0x000344cc ldrd r2, r3, [sb, 0x1f8]                                      |     __asm ("ldrd r2, r3, aav.0x000000ff");
    0x000344d0 strd r2, r3, [r1, 0x1f8]                                      |     __asm ("strd r2, r3, aav.0x000000ff");
    0x000344d4 bl 0x2f224                                                    |     r0 = fcn_0002f224 (r0, r1, r2);
    0x000344d8 subs.w fp, r0, 0                                              |     
                                                                             |     if (fp < r0) {
    0x000344dc blt.w 0x34290                                                 |         goto label_35;
                                                                             |     }
    0x000344e0 ldr r3, [sp, 0x54]                                            |     r3 = var_54h;
    0x000344e2 str r3, [sp, 0x44]                                            |     var_44h = r3;
    0x000344e4 b 0x34172                                                     |     goto label_36;
                                                                             |     if (r1 == 0) {
                                                                             | label_101:
    0x000344e6 cbz r1, 0x34554                                               |         goto label_104;
                                                                             |     }
    0x000344e8 mov r0, r1                                                    |     r0 = r1;
    0x000344ea blx 0xefbc                                                    |     fcn_0000efbc ();
    0x000344ee movs r3, 0                                                    |     r3 = 0;
    0x000344f0 str.w r3, [r4, 0x3e8]                                         |     __asm ("str.w r3, aav.0x000000ff");
    0x000344f4 b 0x342a6                                                     |     goto label_33;
                                                                             | label_100:
    0x000344f6 ldr r1, [pc, 0x1a4]                                           |     
    0x000344f8 mov r0, r5                                                    |     r0 = r5;
    0x000344fa add r1, pc                                                    |     r1 = 0x68b9c;
    0x000344fc blx 0xf350                                                    |     r0 = fcn_0000f350 ();
                                                                             |     if (r0 == 0) {
    0x00034500 cbz r0, 0x34568                                               |         goto label_105;
                                                                             |     }
    0x00034502 ldr r1, [pc, 0x19c]                                           |     
    0x00034504 mov r0, r5                                                    |     r0 = r5;
    0x00034506 add r1, pc                                                    |     r1 = 0x68bac;
    0x00034508 blx 0xf350                                                    |     r0 = fcn_0000f350 ();
    0x0003450c mov sl, r0                                                    |     sl = r0;
    0x0003450e cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00034510 bne 0x34432                                                   |         goto label_37;
                                                                             |     }
    0x00034512 add.w r8, sp, 0x70                                            |     r8 += var_70h;
    0x00034516 mov r0, r8                                                    |     r0 = r8;
    0x00034518 blx 0xf158                                                    |     r0 = fcn_0000f158 ();
    0x0003451c subs r5, r0, 0                                                |     r5 = r0 - 0;
                                                                             |     if (r5 >= r0) {
    0x0003451e blt 0x34560                                                   |         
    0x00034520 add r1, sp, 0x64                                              |         r1 += var_64h;
    0x00034522 mov r0, sb                                                    |         r0 = sb;
    0x00034524 blx 0xf368                                                    |         r0 = fcn_0000f368 ();
    0x00034528 subs r5, r0, 0                                                |         r5 = r0 - 0;
                                                                             |         if (r5 < r0) {
    0x0003452a blt 0x34560                                                   |             goto label_106;
                                                                             |         }
    0x0003452c add r3, sp, 0x80                                              |         r3 += var_80h;
    0x0003452e mov r1, sl                                                    |         r1 = sl;
    0x00034530 movs r2, 0x21                                                 |         r2 = 0x21;
    0x00034532 mov r0, r3                                                    |         r0 = r3;
    0x00034534 ldr r5, [sp, 0x64]                                            |         r5 = var_64h;
    0x00034536 blx 0xe380                                                    |         fcn_0000e380 ();
    0x0003453a str r0, [sp]                                                  |         *(sp) = r0;
    0x0003453c ldm.w r8, {r0, r1, r2, r3}                                    |         r0 = *(r8);
                                                                             |         r1 = *((r8 + 4));
                                                                             |         r2 = *((r8 + 8));
                                                                             |         r3 = *((r8 + 12));
    0x00034540 blx 0xe50c                                                    |         fcn_0000e50c ();
    0x00034544 ldr r1, [pc, 0x15c]                                           |         
    0x00034546 mov r2, r0                                                    |         r2 = r0;
    0x00034548 mov r0, r5                                                    |         r0 = r5;
    0x0003454a add r1, pc                                                    |         r1 = 0x68bf2;
    0x0003454c blx 0xed54                                                    |         r0 = fcn_0000ed54 ();
    0x00034550 mov r5, r0                                                    |         r5 = r0;
    0x00034552 b 0x34448                                                     |         goto label_38;
                                                                             | label_104:
    0x00034554 mov r0, sb                                                    |         r0 = sb;
    0x00034556 str.w r1, [r4, 0x3e8]                                         |         __asm ("str.w r1, aav.0x000000ff");
    0x0003455a blx 0xefbc                                                    |         fcn_0000efbc ();
    0x0003455e b 0x33e2a                                                     |         goto label_10;
                                                                             |     }
                                                                             | label_106:
    0x00034560 ldr r0, [sp, 0x64]                                            |     r0 = var_64h;
    0x00034562 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00034564 bne 0x3446e                                                   |         goto label_39;
                                                                             |     }
    0x00034566 b 0x34472                                                     |     goto label_40;
                                                                             | label_105:
    0x00034568 add r1, sp, 0x64                                              |     r1 += var_64h;
    0x0003456a mov r0, sb                                                    |     r0 = sb;
    0x0003456c blx 0xf368                                                    |     r0 = fcn_0000f368 ();
    0x00034570 mov r5, r0                                                    |     r5 = r0;
    0x00034572 b 0x34448                                                     |     goto label_38;
                                                                             | label_88:
    0x00034574 ldr r0, [r4, 0x7c]                                            |     r0 = *((r4 + 0x7c));
    0x00034576 add.w r2, sl, 0x18                                            |     r2 = sl + 0x18;
    0x0003457a mov r1, sl                                                    |     r1 = sl;
    0x0003457c bl 0x6d418                                                    |     fcn_0006d418 (r0);
    0x00034580 vmov.i32 d16, 0                                               |     __asm ("vmov.i32 d16, 0");
    0x00034584 vstr d16, [sl, 8]                                             |     __asm ("vstr d16, [sl, 8]");
    0x00034588 b 0x3417c                                                     |     goto label_41;
                                                                             | label_99:
    0x0003458a ldr r0, [pc, 0x11c]                                           |     
    0x0003458c add r0, pc                                                    |     r0 = 0x68c3a;
    0x0003458e b 0x343ec                                                     |     goto label_42;
                                                                             | label_98:
    0x00034590 ldr.w sl, [pc, 0x118]                                         |     sl = switch.0x00043480;
    0x00034594 add sl, pc                                                    |     sl += pc;
    0x00034596 b 0x343e0                                                     |     goto label_43;
                                                                             | label_97:
    0x00034598 ldr.w r8, [pc, 0x114]                                         |     
    0x0003459c add r8, pc                                                    |     r8 = 0x68c50;
    0x0003459e b 0x343d2                                                     |     goto label_44;
                                                                             | label_96:
    0x000345a0 ldr r5, [pc, 0x110]                                           |     
    0x000345a2 add r5, pc                                                    |     r5 = 0x68c5a;
    0x000345a4 b 0x343c4                                                     |     goto label_45;
                                                                             | label_52:
    0x000345a6 ldr r0, [pc, 0x110]                                           |     
    0x000345a8 movw r1, 0xca3                                                |     r1 = 0xca3;
    0x000345ac ldr r2, [pc, 0x10c]                                           |     
    0x000345ae add r0, pc                                                    |     r0 = 0x68c6c;
    0x000345b0 add r2, pc                                                    |     r2 = 0x68c70;
    0x000345b2 adds r0, 7                                                    |     r0 += 7;
    0x000345b4 bl 0x68db0                                                    |     fcn_00068db0 (r0, r1, r2);
    0x000345b8 ldrh r0, [r2, 0x34]                                           |     r0 = *((r2 + 0x34));
    0x000345ba movs r6, r0                                                   |     r6 = r0;
    0x000345bc lsls r4, r6, 0x1c                                             |     r4 = r6 << 0x1c;
    0x000345be movs r0, r0                                                   |     
    0x000345c0 str r1, [sp, 0x240]                                           |     *(arg_240h) = r1;
    0x000345c2 movs r4, r0                                                   |     r4 = r0;
    0x000345c4 adr r2, 0x368                                                 |     r2 = 0x368;
    0x000345c6 movs r4, r0                                                   |     r4 = r0;
    0x000345c8 strh r2, [r1, 0x1a]                                           |     *((r1 + 0x1a)) = r2;
    0x000345ca movs r4, r0                                                   |     r4 = r0;
    0x000345cc ldrh r0, [r7, 0x2c]                                           |     r0 = *((r7 + 0x2c));
    0x000345ce movs r6, r0                                                   |     r6 = r0;
    0x000345d0 str r0, [sp, 0x118]                                           |     *(arg_118h) = r0;
    0x000345d2 movs r4, r0                                                   |     r4 = r0;
    0x000345d4 adr r1, 0x2c0                                                 |     r1 = 0x2c0;
    0x000345d6 movs r4, r0                                                   |     r4 = r0;
    0x000345d8 ldr r0, [sp, 0x190]                                           |     r0 = *(arg_190h);
    0x000345da movs r4, r0                                                   |     r4 = r0;
    0x000345dc str r0, [sp, 0x90]                                            |     var_90h = r0;
    0x000345de movs r4, r0                                                   |     r4 = r0;
    0x000345e0 adr r1, 0x238                                                 |     r1 = 0x238;
    0x000345e2 movs r4, r0                                                   |     r4 = r0;
    0x000345e4 cmp r5, 0x1e                                                  |     
    0x000345e6 movs r4, r0                                                   |     r4 = r0;
    0x000345e8 str r0, [sp, 8]                                               |     var_8h = r0;
    0x000345ea movs r4, r0                                                   |     r4 = r0;
    0x000345ec adr r1, 0x1b0                                                 |     r1 = 0x1b0;
    0x000345ee movs r4, r0                                                   |     r4 = r0;
    0x000345f0 cmp r5, 0x1c                                                  |     
    0x000345f2 movs r4, r0                                                   |     r4 = r0;
    0x000345f4 ldrh r0, [r4, 0x3e]                                           |     r0 = *((r4 + 0x3e));
    0x000345f6 movs r4, r0                                                   |     r4 = r0;
    0x000345f8 adr r1, 0x128                                                 |     r1 = 0x128;
    0x000345fa movs r4, r0                                                   |     r4 = r0;
    0x000345fc ldr r0, [sp, 0x308]                                           |     r0 = *(arg_308h);
    0x000345fe movs r4, r0                                                   |     r4 = r0;
    0x00034600 ldrh r2, [r0, 0x3e]                                           |     r2 = *((r0 + 0x3e));
    0x00034602 movs r4, r0                                                   |     r4 = r0;
    0x00034604 adr r1, 0xb0                                                  |     r1 = 0xb0;
    0x00034606 movs r4, r0                                                   |     r4 = r0;
    0x00034608 ldr r0, [sp, 0x2f0]                                           |     r0 = *(arg_2f0h);
    0x0003460a movs r4, r0                                                   |     r4 = r0;
    0x0003460c invalid                                                       |     
    0x000346c0 b.w 0x339e8                                                   |     goto label_46;
                                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x34bf0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sd_bus_process_priority ()           | void sd_bus_process_priority (int16_t arg_0h, int16_t arg1) {
                                                     |     r0 = arg1;
    0x00034bf0 ldr r1, [sp]                          |     r1 = *(sp);
    0x00034bf2 b.w 0x339e8                           |     return void (*0x339e8)() ();
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x2a394 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sd_bus_slot_set_floating ()          | void sd_bus_slot_set_floating (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0002a394 push {r4, lr}                         |     
                                                     |     if (r0 == 0) {
    0x0002a396 cbz r0, 0x2a3ce                       |         goto label_0;
                                                     |     }
    0x0002a398 ldrb r2, [r0, 5]                      |     r2 = *((r0 + 5));
    0x0002a39a subs r3, r1, 0                        |     r3 = r1 - 0;
    0x0002a39c it ne                                 |     
                                                     |     if (r3 == r1) {
    0x0002a39e movne r3, 1                           |         r3 = 1;
                                                     |     }
    0x0002a3a0 mov r4, r0                            |     r4 = r0;
    0x0002a3a2 cmp r2, r3                            |     
    0x0002a3a4 it eq                                 |     
                                                     |     if (r2 != r3) {
    0x0002a3a6 moveq r0, 0                           |         r0 = 0;
                                                     |     }
                                                     |     if (r2 == r3) {
    0x0002a3a8 beq 0x2a3c0                           |         goto label_1;
                                                     |     }
    0x0002a3aa ldr r2, [r4, 8]                       |     r2 = *((r4 + 8));
                                                     |     if (r2 == 0) {
    0x0002a3ac cbz r2, 0x2a3ea                       |         goto label_2;
                                                     |     }
    0x0002a3ae strb r3, [r4, 5]                      |     *((r4 + 5)) = r3;
                                                     |     if (r1 != 0) {
    0x0002a3b0 cbnz r1, 0x2a3c2                      |         goto label_3;
                                                     |     }
    0x0002a3b2 mov r0, r2                            |     r0 = r2;
    0x0002a3b4 blx 0xeca0                            |     mmap64 ()
    0x0002a3b8 mov r0, r4                            |     r0 = r4;
    0x0002a3ba blx 0xe4a8                            |     fcn_0000e4a8 ();
                                                     |     do {
    0x0002a3be movs r0, 1                            |         r0 = 1;
                                                     | label_1:
    0x0002a3c0 pop {r4, pc}                          |         
                                                     | label_3:
    0x0002a3c2 blx 0xefa0                            |         fcn_0000efa0 ();
    0x0002a3c6 ldr r0, [r4, 8]                       |         r0 = *((r4 + 8));
    0x0002a3c8 blx 0xe4e8                            |         fcn_0000e4e8 ();
    0x0002a3cc b 0x2a3be                             |         
                                                     |     } while (1);
                                                     | label_0:
    0x0002a3ce ldr r1, [pc, 0x20]                    |     
    0x0002a3d0 movw r2, 0x10d                        |     r2 = 0x10d;
    0x0002a3d4 ldr r3, [pc, 0x1c]                    |     
    0x0002a3d6 ldr r0, [pc, 0x20]                    |     
    0x0002a3d8 add r1, pc                            |     r1 = 0x547ce;
    0x0002a3da add r3, pc                            |     r3 = 0x547d2;
    0x0002a3dc adds r1, 7                            |     r1 += 7;
    0x0002a3de add r0, pc                            |     r0 = 0x547dc;
    0x0002a3e0 bl 0x68f74                            |     fcn_00068f74 (r0, r1, r2, r3);
    0x0002a3e4 mvn r0, 0x15                          |     r0 = ~0x15;
    0x0002a3e8 pop {r4, pc}                          |     
                                                     | label_2:
    0x0002a3ea mvn r0, 0x73                          |     r0 = ~0x73;
    0x0002a3ee pop {r4, pc}                          |     
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.34.0 @ 0x2cdbc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sd_bus_track_new ()                      | void sd_bus_track_new (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0002cdbc push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0002cdc0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0002cdc2 beq 0x2ce2a                               |         goto label_2;
                                                         |     }
    0x0002cdc4 mov r6, r1                                |     r6 = r1;
    0x0002cdc6 mov r8, r2                                |     r8 = r2;
    0x0002cdc8 mov r7, r3                                |     r7 = r3;
    0x0002cdca bl 0x2e4cc                                |     r0 = fcn_0002e4cc (r0);
    0x0002cdce mov r5, r0                                |     r5 = r0;
    0x0002cdd0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0002cdd2 beq 0x2ce44                               |         goto label_3;
                                                         |     }
    0x0002cdd4 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0002cdd6 beq 0x2ce5e                               |         goto label_4;
                                                         |     }
    0x0002cdd8 ldrb r3, [r0, 0x1c]                       |     r3 = *((r0 + 0x1c));
    0x0002cdda lsls r3, r3, 0x1e                         |     r3 <<= 0x1e;
                                                         |     if (r3 >= r3) {
    0x0002cddc bpl 0x2ce3e                               |         goto label_1;
                                                         |     }
    0x0002cdde movs r1, 0x38                             |     r1 = 0x38;
    0x0002cde0 movs r0, 1                                |     r0 = 1;
    0x0002cde2 blx 0xe2f8                                |     r0 = fcn_0000e2f8 ();
    0x0002cde6 mov r4, r0                                |     r4 = r0;
    0x0002cde8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0002cdea beq 0x2ce74                               |         goto label_5;
                                                         |     }
    0x0002cdec movs r3, 1                                |     r3 = 1;
    0x0002cdee str.w r8, [r0, 0xc]                       |     __asm ("str.w r8, [r0, 0xc]");
    0x0002cdf2 str r3, [r4]                              |     *(r4) = r3;
    0x0002cdf4 mov r0, r5                                |     r0 = r5;
    0x0002cdf6 str r7, [r4, 0x10]                        |     *((r4 + 0x10)) = r7;
    0x0002cdf8 blx 0xeca0                                |     mmap64 ()
    0x0002cdfc str r0, [r4, 8]                           |     *((r4 + 8)) = r0;
    0x0002cdfe ldr.w r3, [r5, 0x40c]                     |     r3 = *((r5 + 0x40c));
    0x0002ce02 str r3, [r4, 0x30]                        |     *((r4 + 0x30)) = r3;
                                                         |     if (r3 != 0) {
    0x0002ce04 cbz r3, 0x2ce08                           |         
    0x0002ce06 str r4, [r3, 0x34]                        |         *((r3 + 0x34)) = r4;
                                                         |     }
    0x0002ce08 movs r7, 0                                |     r7 = 0;
    0x0002ce0a mov r0, r4                                |     r0 = r4;
    0x0002ce0c str r7, [r4, 0x34]                        |     *((r4 + 0x34)) = r7;
    0x0002ce0e str.w r4, [r5, 0x40c]                     |     __asm ("str.w r4, aav.0x000000ff");
    0x0002ce12 ldrb.w r3, [r4, 0x28]                     |     r3 = *((r4 + 0x28));
    0x0002ce16 orr r3, r3, 1                             |     r3 |= 1;
    0x0002ce1a strb.w r3, [r4, 0x28]                     |     *((r4 + 0x28)) = r3;
    0x0002ce1e bl 0x2cbc8                                |     fcn_0002cbc8 (r0);
    0x0002ce22 mov r0, r7                                |     r0 = r7;
    0x0002ce24 str r4, [r6]                              |     *(r6) = r4;
                                                         |     do {
                                                         | label_0:
    0x0002ce26 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_2:
    0x0002ce2a ldr r1, [pc, 0x50]                        |         
    0x0002ce2c movs r2, 0x7b                             |         r2 = 0x7b;
    0x0002ce2e ldr r3, [pc, 0x50]                        |         
    0x0002ce30 ldr r0, [pc, 0x50]                        |         
    0x0002ce32 add r1, pc                                |         r1 = 0x59cb4;
    0x0002ce34 add r3, pc                                |         r3 = 0x59cba;
    0x0002ce36 adds r1, 7                                |         r1 += 7;
    0x0002ce38 add r0, pc                                |         r0 = 0x59cc0;
    0x0002ce3a bl 0x68f74                                |         fcn_00068f74 (r0, r1, r2, r3);
                                                         | label_1:
    0x0002ce3e mvn r0, 0x15                              |         r0 = ~0x15;
    0x0002ce42 b 0x2ce26                                 |         
                                                         |     } while (1);
                                                         | label_3:
    0x0002ce44 ldr r1, [pc, 0x40]                        |     
    0x0002ce46 movs r2, 0x7c                             |     r2 = 0x7c;
    0x0002ce48 ldr r3, [pc, 0x40]                        |     
    0x0002ce4a ldr r0, [pc, 0x44]                        |     
    0x0002ce4c add r1, pc                                |     r1 = 0x59cd8;
    0x0002ce4e add r3, pc                                |     r3 = 0x59cde;
    0x0002ce50 adds r1, 7                                |     r1 += 7;
    0x0002ce52 add r0, pc                                |     r0 = 0x59ce8;
    0x0002ce54 bl 0x68f74                                |     fcn_00068f74 (r0, r1, r2, r3);
    0x0002ce58 mvn r0, 0x40                              |     r0 = ~0x40;
    0x0002ce5c b 0x2ce26                                 |     goto label_0;
                                                         | label_4:
    0x0002ce5e ldr r1, [pc, 0x34]                        |     
    0x0002ce60 movs r2, 0x7d                             |     r2 = 0x7d;
    0x0002ce62 ldr r3, [pc, 0x34]                        |     
    0x0002ce64 ldr r0, [pc, 0x34]                        |     
    0x0002ce66 add r1, pc                                |     r1 = 0x59d00;
    0x0002ce68 add r3, pc                                |     r3 = 0x59d06;
    0x0002ce6a adds r1, 7                                |     r1 += 7;
    0x0002ce6c add r0, pc                                |     r0 = 0x59d0c;
    0x0002ce6e bl 0x68f74                                |     fcn_00068f74 (r0, r1, r2, r3);
    0x0002ce72 b 0x2ce3e                                 |     goto label_1;
                                                         | label_5:
    0x0002ce74 mvn r0, 0xb                               |     r0 = ~0xb;
    0x0002ce78 b 0x2ce26                                 |     goto label_0;
                                                         | }

[*] Function mmap used 23 times libsystemd.so.0.34.0