[*] Binary protection state of libimpl_wsd_tds.so

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


[*] Function printf tear down of libimpl_wsd_tds.so

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libimpl_wsd_tds.so @ 0x875c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000875c ()                                  | void fcn_0000875c (int16_t arg1) {
                                                             |     int16_t var_0h_2;
                                                             |     r0 = arg1;
    0x0000875c push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00008760 movs r1, 0xe                                  |     r1 = 0xe;
    0x00008762 sub sp, 0x10                                  |     
    0x00008764 mov r4, r0                                    |     r4 = r0;
    0x00008766 bl 0x86e4                                     |     fcn_000086e4 (r0);
    0x0000876a movs r1, 0x10                                 |     r1 = 0x10;
    0x0000876c mov sl, r0                                    |     sl = r0;
    0x0000876e mov r0, r4                                    |     r0 = r4;
    0x00008770 bl 0x86e4                                     |     fcn_000086e4 (r0);
    0x00008774 movs r1, 0xf                                  |     r1 = 0xf;
    0x00008776 mov sb, r0                                    |     sb = r0;
    0x00008778 mov r0, r4                                    |     r0 = r4;
    0x0000877a bl 0x86e4                                     |     fcn_000086e4 (r0);
    0x0000877e movs r1, 0x11                                 |     r1 = 0x11;
    0x00008780 mov r8, r0                                    |     r8 = r0;
    0x00008782 mov r0, r4                                    |     r0 = r4;
    0x00008784 bl 0x86e4                                     |     fcn_000086e4 (r0);
    0x00008788 movs r1, 0x12                                 |     r1 = 0x12;
    0x0000878a mov r7, r0                                    |     r7 = r0;
    0x0000878c mov r0, r4                                    |     r0 = r4;
    0x0000878e bl 0x86e4                                     |     fcn_000086e4 (r0);
    0x00008792 movs r1, 0xd                                  |     r1 = 0xd;
    0x00008794 mov r6, r0                                    |     r6 = r0;
    0x00008796 mov r0, r4                                    |     r0 = r4;
    0x00008798 bl 0x86e4                                     |     fcn_000086e4 (r0);
    0x0000879c mov r1, sl                                    |     r1 = sl;
    0x0000879e mov r5, r0                                    |     r5 = r0;
    0x000087a0 cmp.w sl, 0                                   |     
                                                             |     if (sl == 0) {
    0x000087a4 beq 0x8822                                    |         goto label_4;
                                                             |     }
    0x000087a6 mov r2, sb                                    |     r2 = sb;
    0x000087a8 cmp.w sb, 0                                   |     
                                                             |     if (sb == 0) {
    0x000087ac beq 0x882e                                    |         goto label_5;
                                                             |     }
                                                             |     do {
    0x000087ae mov r3, r8                                    |         r3 = r8;
    0x000087b0 cmp.w r8, 0                                   |         
                                                             |         if (r8 == 0) {
    0x000087b4 beq 0x883a                                    |             goto label_6;
                                                             |         }
                                                             | label_0:
    0x000087b6 mov r0, r7                                    |         r0 = r7;
    0x000087b8 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x000087ba beq 0x8844                                    |             goto label_7;
                                                             |         }
                                                             | label_1:
    0x000087bc mov r4, r6                                    |         r4 = r6;
    0x000087be cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x000087c0 beq 0x884e                                    |             goto label_8;
                                                             |         }
                                                             | label_2:
    0x000087c2 mov ip, r5                                    |         
    0x000087c4 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x000087c6 beq 0x8858                                    |             goto label_9;
                                                             |         }
                                                             | label_3:
    0x000087c8 strd r4, ip, [sp, 4]                          |         __asm ("strd r4, ip, [sp, 4]");
    0x000087cc str r0, [sp]                                  |         *(sp) = r0;
    0x000087ce ldr r4, [pc, 0x90]                            |         
    0x000087d0 ldr r0, [pc, 0x90]                            |         
    0x000087d2 add r4, pc                                    |         r4 = 0x11038;
    0x000087d4 add r0, pc                                    |         r0 = 0x1103c;
    0x000087d6 blx 0x5b50                                    |         g_strdup_printf ()
    0x000087da mov r1, r4                                    |         r1 = r4;
    0x000087dc mov r3, r0                                    |         r3 = r0;
    0x000087de movs r2, 0x65                                 |         r2 = 0x65;
    0x000087e0 mov r0, sl                                    |         r0 = sl;
    0x000087e2 mov sl, r3                                    |         sl = r3;
    0x000087e4 blx 0x5fb4                                    |         fcn_00005fb4 ();
    0x000087e8 mov r0, sb                                    |         r0 = sb;
    0x000087ea mov r1, r4                                    |         r1 = r4;
    0x000087ec movs r2, 0x66                                 |         r2 = 0x66;
    0x000087ee blx 0x5fb4                                    |         fcn_00005fb4 ();
    0x000087f2 mov r0, r8                                    |         r0 = r8;
    0x000087f4 mov r1, r4                                    |         r1 = r4;
    0x000087f6 movs r2, 0x67                                 |         r2 = 0x67;
    0x000087f8 blx 0x5fb4                                    |         fcn_00005fb4 ();
    0x000087fc mov r0, r7                                    |         r0 = r7;
    0x000087fe mov r1, r4                                    |         r1 = r4;
    0x00008800 movs r2, 0x68                                 |         r2 = 0x68;
    0x00008802 blx 0x5fb4                                    |         fcn_00005fb4 ();
    0x00008806 mov r0, r6                                    |         r0 = r6;
    0x00008808 mov r1, r4                                    |         r1 = r4;
    0x0000880a movs r2, 0x69                                 |         r2 = 0x69;
    0x0000880c blx 0x5fb4                                    |         fcn_00005fb4 ();
    0x00008810 mov r0, r5                                    |         r0 = r5;
    0x00008812 movs r2, 0x6a                                 |         r2 = 0x6a;
    0x00008814 mov r1, r4                                    |         r1 = r4;
    0x00008816 blx 0x5fb4                                    |         fcn_00005fb4 ();
    0x0000881a mov r0, sl                                    |         r0 = sl;
    0x0000881c add sp, 0x10                                  |         
    0x0000881e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_4:
    0x00008822 ldr r1, [pc, 0x44]                            |         
    0x00008824 mov r2, sb                                    |         r2 = sb;
    0x00008826 add r1, pc                                    |         r1 = 0x11094;
    0x00008828 cmp.w sb, 0                                   |         
    0x0000882c bne 0x87ae                                    |         
                                                             |     } while (sb != 0);
                                                             | label_5:
    0x0000882e ldr r2, [pc, 0x3c]                            |     
    0x00008830 mov r3, r8                                    |     r3 = r8;
    0x00008832 add r2, pc                                    |     r2 = 0x110a4;
    0x00008834 cmp.w r8, 0                                   |     
                                                             |     if (r8 != 0) {
    0x00008838 bne 0x87b6                                    |         goto label_0;
                                                             |     }
                                                             | label_6:
    0x0000883a ldr r3, [pc, 0x34]                            |     
    0x0000883c mov r0, r7                                    |     r0 = r7;
    0x0000883e add r3, pc                                    |     r3 = 0x110b4;
    0x00008840 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00008842 bne 0x87bc                                    |         goto label_1;
                                                             |     }
                                                             | label_7:
    0x00008844 ldr r0, [pc, 0x2c]                            |     
    0x00008846 mov r4, r6                                    |     r4 = r6;
    0x00008848 add r0, pc                                    |     r0 = 0x110c0;
    0x0000884a cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x0000884c bne 0x87c2                                    |         goto label_2;
                                                             |     }
                                                             | label_8:
    0x0000884e ldr r4, [pc, 0x28]                            |     
    0x00008850 mov ip, r5                                    |     
    0x00008852 add r4, pc                                    |     r4 = 0x110d0;
    0x00008854 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00008856 bne 0x87c8                                    |         goto label_3;
                                                             |     }
                                                             | label_9:
    0x00008858 ldr.w ip, [pc, 0x20]                          |     
    0x0000885c add ip, pc                                    |     ip = 0x110dc;
    0x0000885e b 0x87c8                                      |     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/libimpl_wsd_tds.so @ 0x6a98 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.__tds__AddIPAddressFilter ()                         | void tds_AddIPAddressFilter (int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_170h;
                                                                     |     int16_t var_170h_2;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_1h;
                                                                     |     int16_t var_1h_2;
                                                                     |     int16_t var_14h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x00006a98 ldr r2, [pc, 0x29c]                                   |     
    0x00006a9a ldr r3, [pc, 0x2a0]                                   |     r3 = *(0x6d3e);
    0x00006a9c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00006aa0 mov r4, r1                                            |     r4 = r1;
    0x00006aa2 sub sp, 0x1c                                          |     
    0x00006aa4 add r2, pc                                            |     r2 = 0xd7e0;
    0x00006aa6 movs r5, 0                                            |     r5 = 0;
    0x00006aa8 ldr r1, [pc, 0x294]                                   |     
    0x00006aaa str r0, [sp]                                          |     *(sp) = r0;
    0x00006aac ldr r3, [r2, r3]                                      |     
    0x00006aae add r1, pc                                            |     r1 = 0xd7f2;
    0x00006ab0 ldr r3, [r3]                                          |     r3 = *(0xd7e0);
    0x00006ab2 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x00006ab4 mov.w r3, 0                                           |     r3 = 0;
    0x00006ab8 str r5, [sp, 0x10]                                    |     var_10h = r5;
    0x00006aba blx 0x59d0                                            |     r0 = wssecurity_uh_allowed_access ();
    0x00006abe cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00006ac0 beq.w 0x6c1c                                          |         goto label_12;
                                                                     |     }
    0x00006ac4 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x00006ac6 beq.w 0x6c00                                          |         goto label_13;
                                                                     |     }
    0x00006aca ldr r3, [r4]                                          |     r3 = *(r4);
    0x00006acc cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x00006ace beq.w 0x6c00                                          |         goto label_13;
                                                                     |     }
    0x00006ad2 ldr.w sl, [r3, 4]                                     |     sl = *((r3 + 4));
    0x00006ad6 ldr r6, [r3, 0xc]                                     |     r6 = *((r3 + 0xc));
    0x00006ad8 cmp.w sl, 0                                           |     
    0x00006adc it le                                                 |     
                                                                     |     if (sl <= 0) {
    0x00006ade cmple r6, 0                                           |         __asm ("cmple r6, 0");
                                                                     |     }
                                                                     |     if (sl > 0) {
    0x00006ae0 ble 0x6b28                                            |         
    0x00006ae2 ldr.w r8, [r3, 8]                                     |         r8 = *((r3 + 8));
    0x00006ae6 cmp.w sl, 0                                           |         
    0x00006aea ite le                                                |         
                                                                     |         if (sl > 0) {
    0x00006aec movle r0, 0                                           |             r0 = 0;
                                                                     |         }
                                                                     |         if (sl <= 0) {
    0x00006aee movgt r0, 1                                           |             r0 = 1;
                                                                     |         }
    0x00006af0 ldr r2, [r3, 0x10]                                    |         r2 = *((r3 + 0x10));
    0x00006af2 cmp.w r8, 0                                           |         
    0x00006af6 it ne                                                 |         
                                                                     |         if (r8 == 0) {
    0x00006af8 movne r0, 0                                           |             r0 = 0;
                                                                     |         }
    0x00006afa str r2, [sp, 4]                                       |         var_4h = r2;
    0x00006afc cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x00006afe bne 0x6bf4                                            |             goto label_14;
                                                                     |         }
    0x00006b00 mov r1, r2                                            |         r1 = r2;
    0x00006b02 cmp r6, 0                                             |         
    0x00006b04 ite le                                                |         
                                                                     |         if (r6 > 0) {
    0x00006b06 movle r2, 0                                           |             r2 = 0;
                                                                     |         }
                                                                     |         if (r6 <= 0) {
    0x00006b08 movgt r2, 1                                           |             r2 = 1;
                                                                     |         }
    0x00006b0a cmp r1, 0                                             |         
    0x00006b0c it ne                                                 |         
                                                                     |         if (r1 == 0) {
    0x00006b0e movne r2, 0                                           |             r2 = 0;
                                                                     |         }
    0x00006b10 cmp r2, 0                                             |         
                                                                     |         if (r2 != 0) {
    0x00006b12 bne 0x6bf4                                            |             goto label_14;
                                                                     |         }
    0x00006b14 ldr r3, [r3]                                          |         r3 = *(r3);
    0x00006b16 str r3, [sp, 8]                                       |         var_8h = r3;
                                                                     |         if (r3 == 0) {
    0x00006b18 cbz r3, 0x6b46                                        |             goto label_15;
                                                                     |         }
    0x00006b1a cmp r3, 1                                             |         
                                                                     |         if (r3 == 1) {
    0x00006b1c beq 0x6b46                                            |             goto label_15;
                                                                     |         }
    0x00006b1e ldr r0, [sp]                                          |         r0 = *(sp);
    0x00006b20 movs r1, 0xa                                          |         r1 = 0xa;
    0x00006b22 blx 0x67f4                                            |         fcn_000067f4 ();
                                                                     | label_0:
    0x00006b26 movs r5, 0xc                                          |         r5 = 0xc;
                                                                     |     }
                                                                     | label_3:
    0x00006b28 ldr r2, [pc, 0x218]                                   |     
    0x00006b2a ldr r3, [pc, 0x210]                                   |     r3 = *(0x6d3e);
    0x00006b2c add r2, pc                                            |     r2 = 0xd874;
    0x00006b2e ldr r3, [r2, r3]                                      |     r3 = *(0xd874);
    0x00006b30 ldr r2, [r3]                                          |     r2 = *(0xd874);
    0x00006b32 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x00006b34 eors r2, r3                                           |     r2 ^= r3;
    0x00006b36 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x00006b3a bne.w 0x6d34                                          |         goto label_16;
                                                                     |     }
    0x00006b3e mov r0, r5                                            |     r0 = r5;
    0x00006b40 add sp, 0x1c                                          |     
    0x00006b42 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_15:
    0x00006b46 blx 0x64dc                                            |     r0 = fcn_000064dc ();
    0x00006b4a mov r4, r0                                            |     r4 = r0;
    0x00006b4c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x00006b4e bne.w 0x6cc8                                          |         goto label_17;
                                                                     |     }
    0x00006b52 add r0, sp, 0x10                                      |     r0 += var_10h;
    0x00006b54 blx 0x60c8                                            |     r0 = fcn_000060c8 ();
    0x00006b58 mov fp, r0                                            |     
    0x00006b5a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x00006b5c bne 0x6c28                                            |         goto label_18;
                                                                     |     }
    0x00006b5e ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x00006b60 blx 0x680c                                            |     fcn_0000680c ();
    0x00006b64 add.w r3, sl, r6                                      |     r3 = sl + r6;
    0x00006b68 adds r3, 1                                            |     r3++;
    0x00006b6a add r0, r3                                            |     r0 += r3;
    0x00006b6c lsls r0, r0, 2                                        |     r0 <<= 2;
    0x00006b6e blx 0x5b38                                            |     r0 = g_malloc0 ();
    0x00006b72 mov r7, r0                                            |     r7 = r0;
    0x00006b74 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x00006b76 ldr r4, [r0]                                          |     r4 = *(r0);
    0x00006b78 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x00006b7a beq.w 0x6d0c                                          |         goto label_19;
                                                                     |     }
    0x00006b7e sub.w ip, r7, 4                                       |     
    0x00006b82 mov r5, r0                                            |     r5 = r0;
                                                                     |     do {
    0x00006b84 str r4, [ip, 4]!                                      |         *((ip += 4)) = r4;
    0x00006b88 add.w fp, fp, 1                                       |         
    0x00006b8c ldr r4, [r5, 4]!                                      |         r4 = *((r5 += 4));
    0x00006b90 cmp r4, 0                                             |         
    0x00006b92 bne 0x6b84                                            |         
                                                                     |     } while (r4 != 0);
    0x00006b94 blx 0x5c3c                                            |     fcn_00005c3c ();
    0x00006b98 cmp.w sl, 0                                           |     
    0x00006b9c str r4, [sp, 0x10]                                    |     var_10h = r4;
                                                                     |     if (sl <= 0) {
    0x00006b9e ble 0x6c4a                                            |         goto label_20;
                                                                     |     }
                                                                     | label_9:
    0x00006ba0 ldr r3, [pc, 0x1a4]                                   |     
    0x00006ba2 movs r4, 0                                            |     r4 = 0;
    0x00006ba4 str r6, [sp, 0xc]                                     |     var_ch = r6;
    0x00006ba6 add.w sb, r8, 4                                       |     sb = r8 + 4;
    0x00006baa mov r6, r4                                            |     r6 = r4;
    0x00006bac add r3, pc                                            |     r3 = 0xd8f8;
    0x00006bae mov r4, r3                                            |     r4 = r3;
    0x00006bb0 b 0x6bc8                                              |     
                                                                     |     while (r0 == 0) {
    0x00006bb2 ldr.w r2, [sb, r6, lsl 3]                             |         offset_0 = r6 << 3;
                                                                     |         r2 = *((sb + offset_0));
    0x00006bb6 cmp r2, 0x20                                          |         
                                                                     |         if (r2 == 0x20) {
    0x00006bb8 beq 0x6c0c                                            |             goto label_21;
                                                                     |         }
                                                                     | label_1:
    0x00006bba str.w r5, [r7, fp, lsl 2]                             |         __asm ("str.w r5, [r7, fp, lsl 2]");
    0x00006bbe add.w fp, fp, 1                                       |         
    0x00006bc2 adds r6, 1                                            |         r6++;
    0x00006bc4 cmp sl, r6                                            |         
                                                                     |         if (sl == r6) {
    0x00006bc6 beq 0x6c48                                            |             goto label_22;
                                                                     |         }
    0x00006bc8 ldr.w r2, [sb, r6, lsl 3]                             |         offset_1 = r6 << 3;
                                                                     |         r2 = *((sb + offset_1));
    0x00006bcc mov r0, r4                                            |         r0 = r4;
    0x00006bce ldr.w r1, [r8, r6, lsl 3]                             |         offset_2 = r6 << 3;
                                                                     |         r1 = *((r8 + offset_2));
    0x00006bd2 blx 0x5b50                                            |         r0 = g_strdup_printf ()
    0x00006bd6 mov r5, r0                                            |         r5 = r0;
    0x00006bd8 blx 0x6920                                            |         r0 = fcn_00006920 ();
    0x00006bdc cmp r0, 1                                             |         
                                                                     |         if (r0 != 1) {
    0x00006bde bne 0x6cb4                                            |             goto label_23;
                                                                     |         }
    0x00006be0 mov r1, r5                                            |         r1 = r5;
    0x00006be2 mov r0, r7                                            |         r0 = r7;
    0x00006be4 blx 0x65b4                                            |         r0 = fcn_000065b4 ();
    0x00006be8 cmp r0, 0                                             |         
    0x00006bea beq 0x6bb2                                            |         
                                                                     |     }
                                                                     | label_2:
    0x00006bec mov r0, r5                                            |     r0 = r5;
    0x00006bee blx 0x5c3c                                            |     fcn_00005c3c ();
    0x00006bf0 invalid                                               |     
                                                                     | label_14:
    0x00006bf4 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006bf6 movs r2, 0                                            |     r2 = 0;
    0x00006bf8 movs r1, 7                                            |     r1 = 7;
    0x00006bfa blx 0x67f4                                            |     fcn_000067f4 ();
    0x00006bfe b 0x6b26                                              |     goto label_0;
                                                                     | label_13:
    0x00006c00 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006c02 movs r2, 0                                            |     r2 = 0;
    0x00006c04 movs r1, 3                                            |     r1 = 3;
    0x00006c06 blx 0x67f4                                            |     fcn_000067f4 ();
    0x00006c0a b 0x6b26                                              |     goto label_0;
                                                                     | label_21:
    0x00006c0c ldr.w r1, [r8, r6, lsl 3]                             |     offset_3 = r6 << 3;
                                                                     |     r1 = *((r8 + offset_3));
    0x00006c10 mov r0, r7                                            |     r0 = r7;
    0x00006c12 blx 0x65b4                                            |     r0 = fcn_000065b4 ();
    0x00006c16 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00006c18 beq 0x6bba                                            |         goto label_1;
                                                                     |     }
    0x00006c1a b 0x6bec                                              |     goto label_2;
                                                                     | label_12:
    0x00006c1c mov r2, r0                                            |     r2 = r0;
    0x00006c1e movs r1, 0xd                                          |     r1 = 0xd;
    0x00006c20 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006c22 blx 0x67f4                                            |     fcn_000067f4 ();
    0x00006c26 b 0x6b26                                              |     goto label_0;
                                                                     | label_18:
    0x00006c28 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006c2a mov r2, r4                                            |     r2 = r4;
    0x00006c2c movs r1, 0xf                                          |     r1 = 0xf;
    0x00006c2e mov r7, r4                                            |     r7 = r4;
    0x00006c30 movs r5, 0xc                                          |     r5 = 0xc;
    0x00006c32 blx 0x67f4                                            |     fcn_000067f4 ();
                                                                     | label_7:
    0x00006c36 blx 0x6884                                            |     fcn_00006884 ();
    0x00006c3a ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x00006c3c blx 0x693c                                            |     cert_prm_get_int ();
    0x00006c40 mov r0, r7                                            |     r0 = r7;
    0x00006c42 blx 0x693c                                            |     cert_prm_get_int ();
    0x00006c46 b 0x6b28                                              |     goto label_3;
                                                                     | label_22:
    0x00006c48 ldr r6, [sp, 0xc]                                     |     r6 = var_ch;
                                                                     | label_20:
    0x00006c4a cmp r6, 0                                             |     
                                                                     |     if (r6 <= 0) {
    0x00006c4c ble 0x6cd4                                            |         goto label_24;
                                                                     |     }
                                                                     | label_10:
    0x00006c4e ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x00006c50 mov.w sb, 0                                           |     sb = 0;
    0x00006c54 ldr.w r8, [pc, 0xf4]                                  |     
    0x00006c58 adds r5, r3, 4                                        |     r5 = r3 + 4;
    0x00006c5a mov sl, r3                                            |     sl = r3;
    0x00006c5c add r8, pc                                            |     r8 = 0xd9ac;
    0x00006c5e b 0x6c78                                              |     
                                                                     |     while (r0 == 0) {
    0x00006c60 ldr.w r3, [r5, sb, lsl 3]                             |         offset_4 = sb << 3;
                                                                     |         r3 = *((r5 + offset_4));
    0x00006c64 cmp r3, 0x80                                          |         
                                                                     |         if (r3 == 0x80) {
    0x00006c66 beq 0x6ca4                                            |             goto label_25;
                                                                     |         }
                                                                     | label_5:
    0x00006c68 str.w r4, [r7, fp, lsl 2]                             |         __asm ("str.w r4, [r7, fp, lsl 2]");
    0x00006c6c add.w fp, fp, 1                                       |         
                                                                     | label_4:
    0x00006c70 add.w sb, sb, 1                                       |         sb++;
    0x00006c74 cmp r6, sb                                            |         
                                                                     |         if (r6 == sb) {
    0x00006c76 beq 0x6cd4                                            |             goto label_24;
                                                                     |         }
    0x00006c78 ldr.w r2, [r5, sb, lsl 3]                             |         offset_5 = sb << 3;
                                                                     |         r2 = *((r5 + offset_5));
    0x00006c7c mov r0, r8                                            |         r0 = r8;
    0x00006c7e ldr.w r1, [sl, sb, lsl 3]                             |         offset_6 = sb << 3;
                                                                     |         r1 = *((sl + offset_6));
    0x00006c82 blx 0x5b50                                            |         r0 = g_strdup_printf ()
    0x00006c86 mov r4, r0                                            |         r4 = r0;
    0x00006c88 blx 0x6920                                            |         r0 = fcn_00006920 ();
    0x00006c8c cmp r0, 2                                             |         
                                                                     |         if (r0 != 2) {
    0x00006c8e bne 0x6cfa                                            |             goto label_26;
                                                                     |         }
    0x00006c90 mov r1, r4                                            |         r1 = r4;
    0x00006c92 mov r0, r7                                            |         r0 = r7;
    0x00006c94 blx 0x65b4                                            |         r0 = fcn_000065b4 ();
    0x00006c98 cmp r0, 0                                             |         
    0x00006c9a beq 0x6c60                                            |         
                                                                     |     }
                                                                     | label_6:
    0x00006c9c mov r0, r4                                            |     r0 = r4;
    0x00006c9e blx 0x5c3c                                            |     fcn_00005c3c ();
    0x00006ca2 b 0x6c70                                              |     goto label_4;
                                                                     | label_25:
    0x00006ca4 ldr.w r1, [sl, sb, lsl 3]                             |     offset_7 = sb << 3;
                                                                     |     r1 = *((sl + offset_7));
    0x00006ca8 mov r0, r7                                            |     r0 = r7;
    0x00006caa blx 0x65b4                                            |     r0 = fcn_000065b4 ();
    0x00006cae cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00006cb0 beq 0x6c68                                            |         goto label_5;
                                                                     |     }
    0x00006cb2 b 0x6c9c                                              |     goto label_6;
                                                                     | label_23:
    0x00006cb4 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006cb6 movs r2, 0                                            |     r2 = 0;
    0x00006cb8 movs r1, 0x16                                         |     r1 = 0x16;
    0x00006cba blx 0x6164                                            |     fcn_00006164 ();
    0x00006cbe mov r0, r5                                            |     r0 = r5;
    0x00006cc0 blx 0x5c3c                                            |     fcn_00005c3c ();
                                                                     | label_8:
    0x00006cc4 movs r5, 0xc                                          |     r5 = 0xc;
    0x00006cc6 b 0x6c36                                              |     goto label_7;
                                                                     | label_17:
    0x00006cc8 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006cca movs r2, 0                                            |     r2 = 0;
    0x00006ccc movs r1, 0xf                                          |     r1 = 0xf;
    0x00006cce blx 0x67f4                                            |     fcn_000067f4 ();
    0x00006cd2 b 0x6b26                                              |     goto label_0;
                                                                     | label_24:
    0x00006cd4 cmp.w fp, 0x100                                       |     
                                                                     |     if (fp > 0x100) {
    0x00006cd8 bgt 0x6d28                                            |         goto label_27;
                                                                     |     }
                                                                     | label_11:
    0x00006cda ldr r0, [sp, 8]                                       |     r0 = var_8h;
    0x00006cdc mov r1, r7                                            |     r1 = r7;
    0x00006cde blx 0x5c60                                            |     r0 = fcn_00005c60 ();
                                                                     |     if (r0 != 0) {
    0x00006ce2 cbnz r0, 0x6cee                                       |         goto label_28;
                                                                     |     }
    0x00006ce4 blx 0x5d38                                            |     r0 = fcn_00005d38 ();
    0x00006ce8 mov r5, r0                                            |     r5 = r0;
    0x00006cea cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00006cec beq 0x6c36                                            |         goto label_7;
                                                                     |     }
                                                                     | label_28:
    0x00006cee ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006cf0 movs r2, 0                                            |     r2 = 0;
    0x00006cf2 movs r1, 0xf                                          |     r1 = 0xf;
    0x00006cf4 blx 0x67f4                                            |     fcn_000067f4 ();
    0x00006cf8 b 0x6cc4                                              |     goto label_8;
                                                                     | label_26:
    0x00006cfa ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006cfc movs r2, 0                                            |     r2 = 0;
    0x00006cfe movs r1, 0x18                                         |     r1 = 0x18;
    0x00006d00 blx 0x6164                                            |     fcn_00006164 ();
    0x00006d04 mov r0, r4                                            |     r0 = r4;
    0x00006d06 blx 0x5c3c                                            |     fcn_00005c3c ();
    0x00006d0a b 0x6cc4                                              |     goto label_8;
                                                                     | label_19:
    0x00006d0c blx 0x5c3c                                            |     fcn_00005c3c ();
    0x00006d10 cmp.w sl, 0                                           |     
    0x00006d14 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x00006d16 it gt                                                 |     
                                                                     |     if (sl > 0) {
    0x00006d18 movgt fp, r4                                          |         goto label_29;
                                                                     |     }
                                                                     |     if (sl > 0) {
                                                                     | label_29:
    0x00006d1a bgt.w 0x6ba0                                          |         goto label_9;
                                                                     |     }
    0x00006d1e cmp r6, 0                                             |     
    0x00006d20 it gt                                                 |     
                                                                     |     if (r6 > 0) {
    0x00006d22 movgt fp, r4                                          |         goto label_30;
                                                                     |     }
                                                                     |     if (r6 > 0) {
                                                                     | label_30:
    0x00006d24 bgt 0x6c4e                                            |         goto label_10;
                                                                     |     }
    0x00006d26 b 0x6cda                                              |     goto label_11;
                                                                     | label_27:
    0x00006d28 ldr r0, [sp]                                          |     r0 = *(sp);
    0x00006d2a movs r2, 0                                            |     r2 = 0;
    0x00006d2c movs r1, 0x1d                                         |     r1 = 0x1d;
    0x00006d2e blx 0x6164                                            |     fcn_00006164 ();
    0x00006d32 b 0x6cc4                                              |     goto label_8;
                                                                     | label_16:
    0x00006d34 blx 0x5cb4                                            |     fcn_00005cb4 ();
    0x00006d38 svc 0xb4                                              |     __asm ("svc 0xb4");
    0x00006d3a movs r0, r0                                           |     
    0x00006d3c lsls r4, r2, 0x16                                     |     r4 = r2 << 0x16;
    0x00006d3e movs r0, r0                                           |     
    0x00006d40 sub sp, 0x1c8                                         |     
    0x00006d42 movs r0, r0                                           |     
    0x00006d44 svc 0x2c                                              |     __asm ("svc 0x2c");
    0x00006d46 movs r0, r0                                           |     
    0x00006d48 add sp, 0x30                                          |     
    0x00006d4a movs r0, r0                                           |     
    0x00006d4c add r7, sp, 0x170                                     |     r7 += var_170h;
    0x00006d4e movs r0, 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/libimpl_wsd_tds.so @ 0x8904 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.__tds__GetCertificateInformation ()          | void tds_GetCertificateInformation (int16_t arg_60h, int16_t arg_68h, int16_t arg_88h, int16_t arg_b0h, int16_t arg_d0h, int16_t arg_e0h, int16_t arg_e8h, int16_t arg_f8h, int16_t arg_100h, int16_t arg_140h, int16_t arg_148h, int16_t arg_170h, int16_t arg_178h, int16_t arg_188h, int16_t arg_200h, int16_t arg_210h, int16_t arg_218h, int16_t arg_238h, int16_t arg_290h, int16_t arg_2a8h, int16_t arg_2b0h, int16_t arg_2b8h, int16_t arg_2f8h, int16_t arg_300h, int16_t arg_320h, int16_t arg_348h, int16_t arg_368h, int16_t arg_370h, int16_t arg_3a8h, int16_t arg_3b0h, int16_t arg_3d0h, int16_t arg_3d8h, int16_t arg_3e8h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h_2;
                                                             |     int16_t var_14h_2;
                                                             |     int16_t var_18h;
                                                             |     int32_t var_18h_2;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_2ch;
                                                             |     int16_t var_38h;
                                                             |     int16_t var_40h;
                                                             |     int16_t var_50h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x00008904 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x00008908 sub sp, 0x34                                  |     
    0x0000890a str r2, [sp, 8]                               |     var_8h = r2;
    0x0000890c mov r4, r1                                    |     r4 = r1;
    0x0000890e mov r5, r0                                    |     r5 = r0;
    0x00008910 ldr.w r2, [pc, 0x870]                         |     
    0x00008914 ldr.w r3, [pc, 0x870]                         |     r3 = *(0x9188);
    0x00008916 subs r0, 0x70                                 |     r0 -= 0x70;
    0x00008918 ldr.w r1, [pc, 0x870]                         |     
    0x0000891c add r2, pc                                    |     r2 = 0x11aa4;
    0x0000891e ldr r3, [r2, r3]                              |     
    0x00008920 add r1, pc                                    |     r1 = 0x11ab0;
    0x00008922 ldr r3, [r3]                                  |     r3 = *(0x11aa4);
    0x00008924 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00008926 mov.w r3, 0                                   |     r3 = 0;
    0x00008928 lsls r0, r0, 0xc                              |     r0 <<= 0xc;
    0x0000892a blx 0x59d0                                    |     r0 = wssecurity_uh_allowed_access ();
    0x0000892e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008930 beq.w 0x8f92                                  |         goto label_27;
                                                             |     }
    0x00008934 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00008936 beq.w 0x8f0c                                  |         goto label_28;
                                                             |     }
    0x0000893a ldr r4, [r4]                                  |     r4 = *(r4);
    0x0000893c cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0000893e beq.w 0x8f0c                                  |         goto label_28;
                                                             |     }
    0x00008942 movs r1, 0                                    |     r1 = 0;
    0x00008944 mov r0, r4                                    |     r0 = r4;
    0x00008946 blx 0x6314                                    |     fcn_00006314 ();
    0x0000894a str r0, [sp, 4]                               |     var_4h = r0;
    0x0000894c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000894e beq.w 0x8f36                                  |         goto label_29;
                                                             |     }
    0x00008952 mov.w r1, -1                                  |     r1 = -1;
    0x00008956 blx 0x6464                                    |     fcn_00006464 ();
    0x0000895a str r0, [sp, 0xc]                             |     var_ch = r0;
    0x0000895c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000895e beq.w 0x8f40                                  |         goto label_30;
                                                             |     }
    0x00008962 movs r3, 0                                    |     r3 = 0;
    0x00008964 mov r2, r3                                    |     r2 = r3;
    0x00008966 mov r1, r3                                    |     r1 = r3;
    0x00008968 blx 0x6098                                    |     r0 = fcn_00006098 ();
    0x0000896c mov fp, r0                                    |     
    0x0000896e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008970 beq.w 0x8faa                                  |         goto label_31;
                                                             |     }
    0x00008974 movs r1, 0x44                                 |     r1 = 0x44;
    0x00008976 mov r0, r5                                    |     r0 = r5;
    0x00008978 blx 0x6578                                    |     fcn_00006578 ();
    0x0000897c mov r1, r4                                    |     r1 = r4;
    0x0000897e mov sl, r0                                    |     sl = r0;
    0x00008980 mov r0, r5                                    |     r0 = r5;
    0x00008982 blx 0x6818                                    |     fcn_00006818 ();
    0x00008986 str.w r0, [sl]                                |     __asm ("str.w r0, [sl]");
    0x0000898a mov r0, fp                                    |     r0 = fp;
    0x0000898c blx 0x5d68                                    |     fcn_00005d68 ();
    0x00008990 bl 0x875c                                     |     r0 = fcn_0000875c (r0);
    0x00008994 mov r4, r0                                    |     r4 = r0;
    0x00008996 mov r0, r5                                    |     r0 = r5;
    0x00008998 mov r1, r4                                    |     r1 = r4;
    0x0000899a blx 0x6818                                    |     r0 = fcn_00006818 ();
    0x0000899e mov r6, r0                                    |     r6 = r0;
    0x000089a0 mov r0, r4                                    |     r0 = r4;
    0x000089a2 blx 0x5c3c                                    |     fcn_00005c3c ();
    0x000089a6 str.w r6, [sl, 4]                             |     __asm ("str.w r6, [sl, 4]");
    0x000089aa mov r0, fp                                    |     r0 = fp;
    0x000089ac blx 0x5d20                                    |     fcn_00005d20 ();
    0x000089b0 bl 0x875c                                     |     r0 = fcn_0000875c (r0);
    0x000089b4 mov r4, r0                                    |     r4 = r0;
    0x000089b6 mov r0, r5                                    |     r0 = r5;
    0x000089b8 mov r1, r4                                    |     r1 = r4;
    0x000089ba blx 0x6818                                    |     r0 = fcn_00006818 ();
    0x000089be mov r6, r0                                    |     r6 = r0;
    0x000089c0 mov r0, r4                                    |     r0 = r4;
    0x000089c2 blx 0x5c3c                                    |     fcn_00005c3c ();
    0x000089c6 str.w r6, [sl, 8]                             |     __asm ("str.w r6, [sl, 8]");
    0x000089ca mov r0, fp                                    |     r0 = fp;
    0x000089cc blx 0x6200                                    |     r0 = fcn_00006200 ();
    0x000089d0 adds r1, r0, 1                                |     r1 = r0 + 1;
    0x000089d2 ldr.w r0, [pc, 0x7bc]                         |     
    0x000089d6 add r0, pc                                    |     r0 = 0x11b6c;
    0x000089d8 blx 0x5b50                                    |     r0 = g_strdup_printf ()
    0x000089dc mov r4, r0                                    |     r4 = r0;
    0x000089de mov r0, r5                                    |     r0 = r5;
    0x000089e0 mov r1, r4                                    |     r1 = r4;
    0x000089e2 blx 0x6818                                    |     r0 = fcn_00006818 ();
    0x000089e6 mov r6, r0                                    |     r6 = r0;
    0x000089e8 mov r0, r4                                    |     r0 = r4;
    0x000089ea blx 0x5c3c                                    |     fcn_00005c3c ();
    0x000089ee mov r0, fp                                    |     r0 = fp;
    0x000089f0 str.w r6, [sl, 0x18]                          |     __asm ("str.w r6, [sl, 0x18]");
    0x000089f4 blx 0x5f30                                    |     fcn_00005f30 ();
    0x000089f8 movs r1, 0                                    |     r1 = 0;
    0x000089fa blx 0x6914                                    |     r0 = fcn_00006914 ();
    0x000089fe mov sb, r0                                    |     sb = r0;
    0x00008a00 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008a02 beq.w 0x909c                                  |         goto label_32;
                                                             |     }
    0x00008a06 blx 0x5cfc                                    |     r0 = fcn_00005cfc ();
    0x00008a0a mov r4, r0                                    |     r4 = r0;
    0x00008a0c blx 0x61f4                                    |     r0 = fcn_000061f4 ();
    0x00008a10 mov r7, r0                                    |     r7 = r0;
    0x00008a12 mov r0, r5                                    |     r0 = r5;
    0x00008a14 lsrs r6, r7, 1                                |     r6 = r7 >> 1;
    0x00008a16 bic r7, r7, 1                                 |     r7 = BIT_MASK (r7, 1);
    0x00008a18 lsls r1, r0, 0x1c                             |     r1 = r0 << 0x1c;
    0x00008a1a add r7, r6                                    |     r7 += r6;
    0x00008a1c adds r1, r7, 1                                |     r1 = r7 + 1;
    0x00008a1e blx 0x597c                                    |     r0 = xsoap_malloc ();
    0x00008a22 mov r8, r0                                    |     r8 = r0;
    0x00008a24 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00008a26 beq.w 0x8f56                                  |         goto label_33;
                                                             |     }
    0x00008a2a mov r2, r0                                    |     r2 = r0;
    0x00008a2c movs r3, 0                                    |     r3 = 0;
    0x00008a2e add.w ip, r4, 1                               |     
    0x00008a32 movs r0, 0x20                                 |     r0 = 0x20;
                                                             |     do {
    0x00008a34 ldrb.w r1, [r4, r3, lsl 1]                    |         offset_0 = r3 << 1;
                                                             |         r1 = *((r4 + offset_0));
    0x00008a38 adds r2, 3                                    |         r2 += 3;
    0x00008a3a strb r1, [r2, -0x3]                           |         *((r2 - 0x3)) = r1;
    0x00008a3e ldrb.w r1, [ip, r3, lsl 1]                    |         offset_1 = r3 << 1;
                                                             |         r1 = *((ip + offset_1));
    0x00008a42 adds r3, 1                                    |         r3++;
    0x00008a44 cmp r6, r3                                    |         
    0x00008a46 strb r0, [r2, -0x1]                           |         *((r2 - 0x1)) = r0;
    0x00008a4a strb r1, [r2, -0x2]                           |         *((r2 - 0x2)) = r1;
    0x00008a4e bne 0x8a34                                    |         
                                                             |     } while (r6 != r3);
    0x00008a50 add r7, r8                                    |     r7 += r8;
    0x00008a52 movs r3, 0                                    |     r3 = 0;
    0x00008a54 strb r3, [r7, -0x1]                           |     *((r7 - 0x1)) = r3;
                                                             | label_0:
    0x00008a58 mov r0, sb                                    |     r0 = sb;
    0x00008a5a blx 0x5f9c                                    |     fcn_00005f9c ();
    0x00008a5c invalid                                       |     
    0x00008a5e ldr.w r1, [pc, 0x734]                         |     
    0x00008a62 movs r2, 0xe2                                 |     r2 = 0xe2;
    0x00008a64 mov r0, r4                                    |     r0 = r4;
    0x00008a66 add r1, pc                                    |     r1 = 0x11c00;
    0x00008a68 blx 0x5fb4                                    |     fcn_00005fb4 ();
    0x00008a6c mov r0, fp                                    |     r0 = fp;
    0x00008a6e str.w r8, [sl, 0x1c]                          |     __asm ("str.w r8, [sl, 0x1c]");
    0x00008a72 blx 0x5ec4                                    |     fcn_00005ec4 ();
    0x00008a74 bic.w r7, r8, sp, ror 31                      |     r7 = BIT_MASK (r8, sp);
    0x00008a78 ldc p6, c4, [r2, 4]                           |     __asm ("ldc p6, c4, [r2, 4]");
    0x00008a7c mov r0, r5                                    |     r0 = r5;
    0x00008a7e blx 0x6818                                    |     fcn_00006818 ();
    0x00008a80 cdp p8, 0xc, c15, c12, c10, 6                 |     __asm ("cdp p8, 0xc, c15, c12, c10, 6");
    0x00008a84 movs r0, r4                                   |     r0 = r4;
    0x00008a86 mov r0, fp                                    |     r0 = fp;
    0x00008a88 blx 0x6260                                    |     r0 = fcn_00006260 ();
    0x00008a8c mov r4, r0                                    |     r4 = r0;
    0x00008a8e movs r1, 4                                    |     r1 = 4;
    0x00008a90 mov r0, r5                                    |     r0 = r5;
    0x00008a92 blx 0x597c                                    |     xsoap_malloc ();
    0x00008a94 invalid                                       |     
                                                             |     if (r4 != 0) {
    0x00008a98 cbz r4, 0x8aa2                                |         
    0x00008a9a mov r0, r4                                    |         r0 = r4;
    0x00008a9c blx 0x62b4                                    |         r0 = fcn_000062b4 ();
    0x00008aa0 mov r4, r0                                    |         r4 = r0;
                                                             |     }
    0x00008aa2 ldr.w r8, [pc, 0x6f4]                         |     
    0x00008aa6 movs r1, 8                                    |     r1 = 8;
    0x00008aa8 str r4, [r6]                                  |     *(r6) = r4;
    0x00008aaa mov r0, r5                                    |     r0 = r5;
    0x00008aac str.w r6, [sl, 0x14]                          |     __asm ("str.w r6, [sl, 0x14]");
    0x00008ab0 add r8, pc                                    |     r8 = 0x11c4e;
    0x00008ab2 blx 0x6578                                    |     r0 = fcn_00006578 ();
    0x00008ab6 mov r7, r0                                    |     r7 = r0;
    0x00008ab8 mov r0, r8                                    |     r0 = r8;
    0x00008aba blx 0x5d5c                                    |     r0 = fcn_00005d5c ();
    0x00008abe mov r4, r0                                    |     r4 = r0;
    0x00008ac0 mov r0, fp                                    |     r0 = fp;
    0x00008ac2 blx 0x632c                                    |     r0 = fcn_0000632c ();
    0x00008ac6 adds r1, r0, 1                                |     r1 = r0 + 1;
    0x00008ac8 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r1 != r0) {
    0x00008aca beq.w 0x8c10                                  |         
    0x00008acc strh r1, [r4, 4]                              |         *((r4 + 4)) = r1;
    0x00008ace lsls r2, r0, 0x18                             |         r2 = r0 << 0x18;
                                                             |         if (r2 < r0) {
    0x00008ad0 bpl 0x8af0                                    |             
    0x00008ad2 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008ad4 mov r2, r8                                    |             r2 = r8;
                                                             |             if (r3 != 0) {
    0x00008ad6 cbz r3, 0x8ade                                |                 
    0x00008ad8 ldr.w r2, [pc, 0x6c0]                         |                 
    0x00008adc add r2, pc                                    |                 r2 = "tt:WashingProcedure|Off";
                                                             |             }
    0x00008ade ldr.w r3, [pc, 0x6c0]                         |             
    0x00008ae2 mov r0, r4                                    |             r0 = r4;
    0x00008ae4 ldr.w r1, [pc, 0x6bc]                         |             
    0x00008ae8 add r3, pc                                    |             r3 = 0x11c8e;
    0x00008aea add r1, pc                                    |             r1 = 0x11c92;
    0x00008aec blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008af0 lsls r3, r6, 0x19                             |         r3 = r6 << 0x19;
                                                             |         if (r3 < r6) {
    0x00008af2 bpl 0x8b14                                    |             
    0x00008af4 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008af6 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008af8 beq.w 0x90dc                                  |                 goto label_34;
                                                             |             }
    0x00008afc ldr.w r2, [pc, 0x6a8]                         |             
    0x00008b00 add r2, pc                                    |             r2 = 0x11cac;
                                                             | label_17:
    0x00008b02 ldr.w r3, [pc, 0x6a8]                         |             
    0x00008b06 mov r0, r4                                    |             r0 = r4;
    0x00008b08 ldr.w r1, [pc, 0x6a4]                         |             
    0x00008b0c add r3, pc                                    |             r3 = 0x11cbe;
    0x00008b0e add r1, pc                                    |             r1 = 0x11cc2;
    0x00008b10 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008b14 lsls r0, r6, 0x1a                             |         r0 = r6 << 0x1a;
                                                             |         if (r0 < r6) {
    0x00008b16 bpl 0x8b38                                    |             
    0x00008b18 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008b1a cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008b1c beq.w 0x90d6                                  |                 goto label_35;
                                                             |             }
    0x00008b20 ldr.w r2, [pc, 0x690]                         |             
    0x00008b24 add r2, pc                                    |             r2 = 0x11cdc;
                                                             | label_16:
    0x00008b26 ldr.w r3, [pc, 0x690]                         |             
    0x00008b2a mov r0, r4                                    |             r0 = r4;
    0x00008b2c ldr.w r1, [pc, 0x68c]                         |             
    0x00008b30 add r3, pc                                    |             r3 = 0x11cee;
    0x00008b32 add r1, pc                                    |             r1 = 0x11cf2;
    0x00008b34 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008b38 lsls r1, r6, 0x1b                             |         r1 = r6 << 0x1b;
                                                             |         if (r1 < r6) {
    0x00008b3a bpl 0x8b5c                                    |             
    0x00008b3c ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008b3e cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008b40 beq.w 0x90ac                                  |                 goto label_36;
                                                             |             }
    0x00008b44 ldr.w r2, [pc, 0x678]                         |             
    0x00008b48 add r2, pc                                    |             r2 = 0x11d0c;
                                                             | label_9:
    0x00008b4a ldr.w r3, [pc, 0x678]                         |             
    0x00008b4e mov r0, r4                                    |             r0 = r4;
    0x00008b50 ldr.w r1, [pc, 0x674]                         |             
    0x00008b54 add r3, pc                                    |             r3 = 0x11d1e;
    0x00008b56 add r1, pc                                    |             r1 = 0x11d22;
    0x00008b58 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008b5c lsls r2, r6, 0x1c                             |         r2 = r6 << 0x1c;
                                                             |         if (r2 < r6) {
    0x00008b5e bpl 0x8b80                                    |             
    0x00008b60 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008b62 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008b64 beq.w 0x90be                                  |                 goto label_37;
                                                             |             }
    0x00008b68 ldr.w r2, [pc, 0x660]                         |             
    0x00008b6c add r2, pc                                    |             r2 = "tds:CreateUsers";
                                                             | label_12:
    0x00008b6e ldr.w r3, [pc, 0x660]                         |             
    0x00008b72 mov r0, r4                                    |             r0 = r4;
    0x00008b74 ldr.w r1, [pc, 0x65c]                         |             
    0x00008b78 add r3, pc                                    |             r3 = 0x11d4e;
    0x00008b7a add r1, pc                                    |             r1 = 0x11d52;
    0x00008b7c blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008b80 lsls r3, r6, 0x1d                             |         r3 = r6 << 0x1d;
                                                             |         if (r3 < r6) {
    0x00008b82 bpl 0x8ba4                                    |             
    0x00008b84 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008b86 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008b88 beq.w 0x90d0                                  |                 goto label_38;
                                                             |             }
    0x00008b8c ldr.w r2, [pc, 0x648]                         |             
    0x00008b90 add r2, pc                                    |             r2 = 0x11d6c;
                                                             | label_15:
    0x00008b92 ldr.w r3, [pc, 0x648]                         |             
    0x00008b96 mov r0, r4                                    |             r0 = r4;
    0x00008b98 ldr.w r1, [pc, 0x644]                         |             
    0x00008b9c add r3, pc                                    |             r3 = 0x11d7e;
    0x00008b9e add r1, pc                                    |             r1 = 0x11d82;
    0x00008ba0 blx 0x5e04                                    |             fcn_00005e04 ();
    0x00008ba2 invalid                                       |             
                                                             |         }
    0x00008ba4 lsls r0, r6, 0x1e                             |         r0 = r6 << 0x1e;
                                                             |         if (r0 < r6) {
    0x00008ba6 bpl 0x8bc8                                    |             
    0x00008ba8 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008baa cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008bac beq.w 0x90ca                                  |                 goto label_39;
                                                             |             }
    0x00008bb0 ldr.w r2, [pc, 0x630]                         |             
    0x00008bb4 add r2, pc                                    |             r2 = 0x11d9c;
                                                             | label_14:
    0x00008bb6 ldr.w r3, [pc, 0x630]                         |             
    0x00008bba mov r0, r4                                    |             r0 = r4;
    0x00008bbc ldr.w r1, [pc, 0x62c]                         |             
    0x00008bc0 add r3, pc                                    |             r3 = 0x11dae;
    0x00008bc2 add r1, pc                                    |             r1 = 0x11db2;
    0x00008bc4 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008bc8 lsls r1, r6, 0x1f                             |         r1 = r6 << 0x1f;
                                                             |         if (r1 < r6) {
    0x00008bca bpl 0x8bec                                    |             
    0x00008bcc ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008bce cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008bd0 beq.w 0x90c4                                  |                 goto label_40;
                                                             |             }
    0x00008bd4 ldr.w r2, [pc, 0x618]                         |             
    0x00008bd8 add r2, pc                                    |             r2 = "%sFailed to delete %s";
                                                             | label_13:
    0x00008bda ldr.w r3, [pc, 0x618]                         |             
    0x00008bde mov r0, r4                                    |             r0 = r4;
    0x00008be0 ldr.w r1, [pc, 0x614]                         |             
    0x00008be4 add r3, pc                                    |             r3 = 0x11dde;
    0x00008be6 add r1, pc                                    |             r1 = 0x11de2;
    0x00008be8 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008bec lsls r2, r6, 0x10                             |         r2 = r6 << 0x10;
                                                             |         if (r2 >= r6) {
    0x00008bee bpl 0x8c10                                    |             goto label_41;
                                                             |         }
    0x00008bf0 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00008bf2 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00008bf4 beq.w 0x9100                                  |             goto label_42;
                                                             |         }
    0x00008bf8 ldr.w r2, [pc, 0x600]                         |         
    0x00008bfc add r2, pc                                    |         r2 = 0x11dfc;
                                                             | label_23:
    0x00008bfe ldr.w r3, [pc, 0x600]                         |         
    0x00008c02 mov r0, r4                                    |         r0 = r4;
    0x00008c04 ldr.w r1, [pc, 0x5fc]                         |         
    0x00008c08 add r3, pc                                    |         r3 = 0x11e0e;
    0x00008c0a add r1, pc                                    |         r1 = 0x11e12;
    0x00008c0c blx 0x5e04                                    |         fcn_00005e04 ();
                                                             |     }
                                                             | label_41:
    0x00008c10 ldr r1, [r4]                                  |     r1 = *(r4);
    0x00008c12 mov r0, r5                                    |     r0 = r5;
    0x00008c14 blx 0x6818                                    |     fcn_00006818 ();
    0x00008c16 cdp p1, 0, c2, c0, c1, 0                      |     __asm ("cdp p1, 0, c2, c0, c1, 0");
    0x00008c1a mov r6, r0                                    |     r6 = r0;
    0x00008c1c mov r0, r4                                    |     r0 = r4;
    0x00008c1e ldr.w r8, [pc, 0x5e8]                         |     
    0x00008c22 blx 0x5ab4                                    |     g_string_free ();
    0x00008c26 str r6, [r7]                                  |     *(r7) = r6;
    0x00008c28 movs r1, 8                                    |     r1 = 8;
    0x00008c2a ldrb r3, [r6]                                 |     r3 = *(r6);
    0x00008c2c add r8, pc                                    |     r8 = 0x11e3a;
    0x00008c2e mov r0, r5                                    |     r0 = r5;
    0x00008c30 subs r3, 0                                    |     
    0x00008c32 it ne                                         |     
                                                             |     if (r3 == 0) {
    0x00008c34 movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00008c36 str r3, [r7, 4]                               |     *((r7 + 4)) = r3;
    0x00008c38 str.w r7, [sl, 0xc]                           |     __asm ("str.w r7, [sl, 0xc]");
    0x00008c3c blx 0x6578                                    |     r0 = fcn_00006578 ();
    0x00008c40 mov r7, r0                                    |     r7 = r0;
    0x00008c42 mov r0, r8                                    |     r0 = r8;
    0x00008c44 blx 0x5d5c                                    |     r0 = fcn_00005d5c ();
    0x00008c48 mov r4, r0                                    |     r4 = r0;
    0x00008c4a mov r0, fp                                    |     r0 = fp;
    0x00008c4c blx 0x6050                                    |     r0 = fcn_00006050 ();
    0x00008c50 adds r3, r0, 1                                |     r3 = r0 + 1;
    0x00008c52 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r3 != r0) {
    0x00008c54 beq.w 0x8d76                                  |         
    0x00008c58 lsls r0, r6, 0x1f                             |         r0 = r6 << 0x1f;
                                                             |         if (r0 < r6) {
    0x00008c5a bpl 0x8c7a                                    |             
    0x00008c5c ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008c5e mov r2, r8                                    |             r2 = r8;
                                                             |             if (r3 != 0) {
    0x00008c60 cbz r3, 0x8c68                                |                 
    0x00008c62 ldr.w r2, [pc, 0x5a8]                         |                 
    0x00008c66 add r2, pc                                    |                 r2 = "/com/axis/IOControl/State";
                                                             |             }
    0x00008c68 ldr.w r3, [pc, 0x5a4]                         |             
    0x00008c6c mov r0, r4                                    |             r0 = r4;
    0x00008c6e ldr.w r1, [pc, 0x5a4]                         |             
    0x00008c70 asrs r4, r4, 0x16                             |             r4 >>= 0x16;
    0x00008c72 add r3, pc                                    |             r3 = 0x11e86;
    0x00008c74 add r1, pc                                    |             r1 = 0x11e8e;
    0x00008c76 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008c7a lsls r1, r6, 0x1e                             |         r1 = r6 << 0x1e;
                                                             |         if (r1 < r6) {
    0x00008c7c bpl 0x8c9e                                    |             
    0x00008c7e ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008c80 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008c82 beq.w 0x90e8                                  |                 goto label_43;
                                                             |             }
    0x00008c86 ldr.w r2, [pc, 0x590]                         |             
    0x00008c8a add r2, pc                                    |             r2 = "/onvif/services";
                                                             | label_19:
    0x00008c8c ldr.w r3, [pc, 0x58c]                         |             
    0x00008c90 mov r0, r4                                    |             r0 = r4;
    0x00008c92 ldr.w r1, [pc, 0x58c]                         |             
    0x00008c96 add r3, pc                                    |             r3 = 0x11eb6;
    0x00008c98 add r1, pc                                    |             r1 = 0x11ebe;
    0x00008c9a blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008c9e lsls r2, r6, 0x1d                             |         r2 = r6 << 0x1d;
                                                             |         if (r2 < r6) {
    0x00008ca0 bpl 0x8cc2                                    |             
    0x00008ca2 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008ca4 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008ca6 beq.w 0x90e2                                  |                 goto label_44;
                                                             |             }
    0x00008caa ldr.w r2, [pc, 0x578]                         |             
    0x00008cae add r2, pc                                    |             r2 = 0x11ed8;
                                                             | label_18:
    0x00008cb0 ldr.w r3, [pc, 0x574]                         |             
    0x00008cb4 mov r0, r4                                    |             r0 = r4;
    0x00008cb6 ldr.w r1, [pc, 0x574]                         |             
    0x00008cba add r3, pc                                    |             r3 = 0x11ee6;
    0x00008cbc add r1, pc                                    |             r1 = 0x11eee;
    0x00008cbe blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008cc2 lsls r3, r6, 0x1c                             |         r3 = r6 << 0x1c;
                                                             |         if (r3 < r6) {
    0x00008cc4 bpl 0x8ce6                                    |             
    0x00008cc6 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008cc8 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008cca beq.w 0x90f4                                  |                 goto label_45;
                                                             |             }
    0x00008cce ldr.w r2, [pc, 0x560]                         |             
    0x00008cd2 add r2, pc                                    |             r2 = 0x11f08;
                                                             | label_21:
    0x00008cd4 ldr.w r3, [pc, 0x55c]                         |             
    0x00008cd8 mov r0, r4                                    |             r0 = r4;
    0x00008cda ldr.w r1, [pc, 0x55c]                         |             
    0x00008cde add r3, pc                                    |             r3 = 0x11f16;
    0x00008ce0 add r1, pc                                    |             r1 = 0x11f1e;
    0x00008ce2 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008ce6 lsls r0, r6, 0x1b                             |         r0 = r6 << 0x1b;
                                                             |         if (r0 < r6) {
    0x00008ce8 bpl 0x8d0a                                    |             
    0x00008cea ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008cec cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008cee beq.w 0x90fa                                  |                 goto label_46;
                                                             |             }
    0x00008cf2 ldr.w r2, [pc, 0x548]                         |             
    0x00008cf6 add r2, pc                                    |             r2 = 0x11f38;
                                                             | label_22:
    0x00008cf8 ldr.w r3, [pc, 0x544]                         |             
    0x00008cfc mov r0, r4                                    |             r0 = r4;
    0x00008cfe ldr.w r1, [pc, 0x544]                         |             
    0x00008d02 add r3, pc                                    |             r3 = 0x11f46;
    0x00008d04 add r1, pc                                    |             r1 = 0x11f4e;
    0x00008d06 blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008d0a lsls r1, r6, 0x1a                             |         r1 = r6 << 0x1a;
                                                             |         if (r1 < r6) {
    0x00008d0c bpl 0x8d2e                                    |             
    0x00008d0e ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008d10 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008d12 beq.w 0x90b2                                  |                 goto label_47;
                                                             |             }
    0x00008d16 ldr.w r2, [pc, 0x530]                         |             
    0x00008d1a add r2, pc                                    |             r2 = 0x11f68;
                                                             | label_10:
    0x00008d1c ldr.w r3, [pc, 0x52c]                         |             
    0x00008d20 mov r0, r4                                    |             r0 = r4;
    0x00008d22 ldr.w r1, [pc, 0x52c]                         |             
    0x00008d26 add r3, pc                                    |             r3 = 0x11f76;
    0x00008d28 add r1, pc                                    |             r1 = 0x11f7e;
    0x00008d2a blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008d2e lsls r2, r6, 0x19                             |         r2 = r6 << 0x19;
                                                             |         if (r2 < r6) {
    0x00008d30 bpl 0x8d52                                    |             
    0x00008d32 ldr r3, [r4, 4]                               |             r3 = *((r4 + 4));
    0x00008d34 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00008d36 beq.w 0x90ee                                  |                 goto label_48;
                                                             |             }
    0x00008d3a ldr.w r2, [pc, 0x518]                         |             
    0x00008d3e add r2, pc                                    |             r2 = 0x11f98;
                                                             | label_20:
    0x00008d40 ldr.w r3, [pc, 0x514]                         |             
    0x00008d44 mov r0, r4                                    |             r0 = r4;
    0x00008d46 ldr.w r1, [pc, 0x514]                         |             
    0x00008d4a add r3, pc                                    |             r3 = 0x11fa6;
    0x00008d4c add r1, pc                                    |             r1 = 0x11fae;
    0x00008d4e blx 0x5e04                                    |             fcn_00005e04 ();
                                                             |         }
    0x00008d52 lsls r3, r6, 0x18                             |         r3 = r6 << 0x18;
                                                             |         if (r3 >= r6) {
    0x00008d54 bpl 0x8d76                                    |             goto label_49;
                                                             |         }
    0x00008d56 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00008d58 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00008d5a beq.w 0x90b8                                  |             goto label_50;
                                                             |         }
    0x00008d5e ldr.w r2, [pc, 0x500]                         |         
    0x00008d62 add r2, pc                                    |         r2 = "serverAuth";
                                                             | label_11:
    0x00008d64 ldr.w r3, [pc, 0x4fc]                         |         
    0x00008d68 mov r0, r4                                    |         r0 = r4;
    0x00008d6a ldr.w r1, [pc, 0x4fc]                         |         
    0x00008d6e add r3, pc                                    |         r3 = 0x11fd6;
    0x00008d70 add r1, pc                                    |         r1 = 0x11fde;
    0x00008d72 blx 0x5e04                                    |         fcn_00005e04 ();
                                                             |     }
                                                             | label_49:
    0x00008d76 ldr r1, [r4]                                  |     r1 = *(r4);
    0x00008d78 mov r0, r5                                    |     r0 = r5;
    0x00008d7a blx 0x6818                                    |     fcn_00006818 ();
    0x00008d7e movs r1, 1                                    |     r1 = 1;
    0x00008d80 mov r6, r0                                    |     r6 = r0;
    0x00008d82 mov r0, r4                                    |     r0 = r4;
    0x00008d84 blx 0x5ab4                                    |     g_string_free ();
    0x00008d86 mrc p0, 4, r6, c6, c14, 1                     |     __asm ("mrc p0, 4, r6, c6, c14, 1");
    0x00008d8a movs r1, 0x30                                 |     r1 = 0x30;
    0x00008d8c ldrb r3, [r6]                                 |     r3 = *(r6);
    0x00008d8e mov r0, r5                                    |     r0 = r5;
    0x00008d90 subs r3, 0                                    |     
    0x00008d92 it ne                                         |     
                                                             |     if (r3 == 0) {
    0x00008d94 movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00008d96 str r3, [r7, 4]                               |     *((r7 + 4)) = r3;
    0x00008d98 str.w r7, [sl, 0x10]                          |     __asm ("str.w r7, [sl, 0x10]");
    0x00008d9c blx 0x6578                                    |     r0 = fcn_00006578 ();
    0x00008da0 mov r4, r0                                    |     r4 = r0;
    0x00008da2 mov r0, fp                                    |     r0 = fp;
    0x00008da4 blx 0x67ac                                    |     fcn_000067ac ();
    0x00008da8 bl 0x8880                                     |     fcn_00008880 ();
    0x00008dac strd r0, r1, [r4]                             |     __asm ("strd r0, r1, [r4]");
    0x00008db0 mov r0, fp                                    |     r0 = fp;
    0x00008db2 blx 0x60b0                                    |     fcn_000060b0 ();
    0x00008db6 bl 0x8880                                     |     fcn_00008880 ();
    0x00008dba strd r0, r1, [r4, 8]                          |     __asm ("strd r0, r1, [r4, 8]");
    0x00008dbe movs r1, 0xc                                  |     r1 = 0xc;
    0x00008dc0 str.w r4, [sl, 0x24]                          |     __asm ("str.w r4, [sl, 0x24]");
    0x00008dc4 mov r0, r5                                    |     r0 = r5;
    0x00008dc6 blx 0x6578                                    |     fcn_00006578 ();
    0x00008dca movs r1, 0x14                                 |     r1 = 0x14;
    0x00008dcc str r0, [sp, 0x14]                            |     var_14h_2 = r0;
    0x00008dce mov r0, r5                                    |     r0 = r5;
    0x00008dd0 blx 0x6578                                    |     fcn_00006578 ();
    0x00008dd4 str r0, [sp]                                  |     *(sp) = r0;
    0x00008dd6 ldr.w r0, [pc, 0x494]                         |     
    0x00008dda add r0, pc                                    |     r0 = 0x1204c;
    0x00008ddc blx 0x5d5c                                    |     r0 = fcn_00005d5c ();
    0x00008de0 mov r4, r0                                    |     r4 = r0;
    0x00008de2 mov r0, fp                                    |     r0 = fp;
    0x00008de4 blx 0x6260                                    |     fcn_00006260 ();
    0x00008de6 bics.w r6, ip, r6, lsl 16                     |     __asm ("bics.w r6, ip, r6, lsl 16");
    0x00008dea blx 0x5cf0                                    |     r0 = fcn_00005cf0 ();
    0x00008dee cmp.w r0, 0x198                               |     
                                                             |     if (r0 == 0x198) {
    0x00008df2 beq.w 0x8fb8                                  |         goto label_51;
                                                             |     }
    0x00008df6 cmp r0, 6                                     |     
                                                             |     if (r0 == 6) {
    0x00008df8 beq.w 0x9106                                  |         goto label_52;
                                                             |     }
    0x00008dfc cmp r0, 0x74                                  |     
                                                             |     if (r0 == 0x74) {
    0x00008dfe beq.w 0x9122                                  |         goto label_53;
                                                             |     }
    0x00008e02 add r3, sp, 0x28                              |     r3 += var_28h;
    0x00008e04 str r3, [sp, 0x10]                            |     var_10h_2 = r3;
                                                             | label_5:
    0x00008e06 ldr r1, [r4]                                  |     r1 = *(r4);
    0x00008e08 mov r0, r5                                    |     r0 = r5;
    0x00008e0a blx 0x6818                                    |     fcn_00006818 ();
    0x00008e0e movs r1, 1                                    |     r1 = 1;
    0x00008e10 mov r6, r0                                    |     r6 = r0;
    0x00008e12 mov r0, r4                                    |     r0 = r4;
    0x00008e14 blx 0x5ab4                                    |     g_string_free ();
    0x00008e16 vmla.f64 d25, d14, d0                         |     __asm ("vmla.f64 d25, d14, d0");
    0x00008e1a ldr.w r0, [pc, 0x454]                         |     
    0x00008e1e str r6, [r3]                                  |     *(r3) = r6;
    0x00008e20 add r0, pc                                    |     r0 = 0x12096;
    0x00008e22 blx 0x5d5c                                    |     fcn_00005d5c ();
    0x00008e26 mov r2, fp                                    |     r2 = fp;
    0x00008e28 mov r7, r0                                    |     r7 = r0;
    0x00008e2a movs r1, 0                                    |     r1 = 0;
    0x00008e2c ldr r0, [sp, 0x10]                            |     r0 = var_10h_2;
    0x00008e2e blx 0x6614                                    |     fcn_00006614 ();
    0x00008e32 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00008e34 ldr r6, [r3]                                  |     r6 = *(r3);
    0x00008e36 ldr r3, [r3, 8]                               |     r3 = *((r3 + 8));
    0x00008e38 cmp r6, 0                                     |     
                                                             |     if (r6 <= 0) {
    0x00008e3a ble 0x8e7e                                    |         goto label_54;
                                                             |     }
    0x00008e3c ldr.w r2, [pc, 0x434]                         |     
    0x00008e40 add r6, r3                                    |     r6 += r3;
    0x00008e42 ldr.w r1, [pc, 0x434]                         |     
    0x00008e46 subs r6, 1                                    |     r6--;
    0x00008e48 ldr.w sb, [pc, 0x430]                         |     
    0x00008e4c subs r4, r3, 1                                |     r4 = r3 - 1;
    0x00008e4e add r2, pc                                    |     r2 = 0x120c6;
    0x00008e50 strd sl, r5, [sp, 0x18]                       |     __asm ("strd sl, r5, [var_18h]");
    0x00008e54 add r1, pc                                    |     r1 = 0x120d2;
    0x00008e56 rsb.w r8, r3, 1                               |     r8 = 1 - r3;
    0x00008e58 lsrs r1, r0, 0x20                             |     r1 = r0 >> 0x20;
    0x00008e5a add sb, pc                                    |     sb = 0x120da;
    0x00008e5c mov r5, r2                                    |     r5 = r2;
    0x00008e5e mov sl, r1                                    |     sl = r1;
                                                             |     do {
    0x00008e60 cmn.w r8, r4                                  |         
    0x00008e64 ldrb r3, [r4, 1]!                             |         r3 = *((r4 += 1));
    0x00008e68 ite ne                                        |         
                                                             |         if (r8 == r4) {
    0x00008e6a movne r2, sl                                  |             r2 = sl;
                                                             |         }
                                                             |         if (r8 != r4) {
    0x00008e6c moveq r2, r5                                  |             r2 = r5;
                                                             |         }
    0x00008e6e mov r1, sb                                    |         r1 = sb;
    0x00008e70 mov r0, r7                                    |         r0 = r7;
    0x00008e72 blx 0x5e04                                    |         fcn_00005e04 ();
    0x00008e76 cmp r6, r4                                    |         
    0x00008e78 bne 0x8e60                                    |         
                                                             |     } while (r6 != r4);
    0x00008e7a ldrd sl, r5, [sp, 0x18]                       |     __asm ("ldrd sl, r5, [var_18h]");
                                                             | label_54:
    0x00008e7e ldr r1, [r7]                                  |     r1 = *(r7);
    0x00008e80 mov r0, r5                                    |     r0 = r5;
    0x00008e82 blx 0x6818                                    |     fcn_00006818 ();
    0x00008e86 movs r1, 1                                    |     r1 = 1;
    0x00008e88 mov r4, r0                                    |     r4 = r0;
    0x00008e8a mov r0, r7                                    |     r0 = r7;
    0x00008e8c blx 0x5ab4                                    |     g_string_free ();
    0x00008e90 ldr r6, [sp]                                  |     r6 = *(sp);
    0x00008e92 mov r0, r5                                    |     r0 = r5;
    0x00008e94 ldr r1, [sp, 4]                               |     r1 = var_4h;
    0x00008e96 str r4, [r6, 4]                               |     *((r6 + 4)) = r4;
    0x00008e98 blx 0x6818                                    |     fcn_00006818 ();
    0x00008e9c str r0, [r6, 8]                               |     *((r6 + 8)) = r0;
    0x00008e9e mov r0, fp                                    |     r0 = fp;
    0x00008ea0 blx 0x6260                                    |     fcn_00006260 ();
    0x00008ea4 blx 0x5cf0                                    |     r0 = fcn_00005cf0 ();
    0x00008ea8 cmp.w r0, 0x198                               |     
                                                             |     if (r0 == 0x198) {
    0x00008eac beq.w 0x914a                                  |         goto label_55;
                                                             |     }
    0x00008eb0 cmp r0, 6                                     |     
                                                             |     if (r0 == 6) {
    0x00008eb2 beq.w 0x9172                                  |         goto label_56;
                                                             |     }
    0x00008eb6 cmp r0, 0x74                                  |     
                                                             |     if (r0 == 0x74) {
    0x00008eb8 beq 0x8f9e                                    |         goto label_57;
                                                             |     }
    0x00008eba ldr r1, [pc, 0x3c4]                           |     
    0x00008ebc mov r0, r5                                    |     r0 = r5;
    0x00008ebe add r1, pc                                    |     r1 = 0x12144;
    0x00008ec0 blx 0x6818                                    |     fcn_00006818 ();
                                                             | label_3:
    0x00008ec4 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00008ec6 str r0, [r3, 0xc]                             |     *((r3 + 0xc)) = r0;
    0x00008ec8 mov r0, fp                                    |     r0 = fp;
    0x00008eca blx 0x6260                                    |     r0 = fcn_00006260 ();
    0x00008ece mov r4, r0                                    |     r4 = r0;
    0x00008ed0 blx 0x5cf0                                    |     r0 = fcn_00005cf0 ();
    0x00008ed4 cmp r0, 6                                     |     
                                                             |     if (r0 == 6) {
    0x00008ed6 beq 0x8f5a                                    |         goto label_58;
                                                             |     }
    0x00008ed8 ldr r1, [pc, 0x3a8]                           |     
    0x00008eda mov r0, r5                                    |     r0 = r5;
    0x00008edc add r1, pc                                    |     r1 = "/com/axis/BasicDeviceInfo1";
    0x00008ede blx 0x6818                                    |     r0 = fcn_00006818 ();
    0x00008ee2 mov r4, r0                                    |     r4 = r0;
                                                             | label_1:
    0x00008ee4 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00008ee6 ldr r2, [sp, 0x14]                            |     r2 = var_14h_2;
    0x00008ee8 str r4, [r3, 0x10]                            |     *((r3 + 0x10)) = r4;
    0x00008eea movs r4, 0                                    |     r4 = 0;
    0x00008eec str r3, [r2]                                  |     *(r2) = r3;
    0x00008eee ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00008ef0 str.w r2, [sl, 0x28]                          |     __asm ("str.w r2, [sl, 0x28]");
    0x00008ef4 str.w sl, [r3]                                |     __asm ("str.w sl, [r3]");
    0x00008ef6 adr r0, 0                                     |     r0 = 0;
                                                             |     do {
                                                             | label_4:
    0x00008ef8 ldr r0, [sp, 4]                               |         r0 = var_4h;
    0x00008efa blx 0x5c3c                                    |         fcn_00005c3c ();
    0x00008efe ldr r0, [sp, 0xc]                             |         r0 = var_ch;
    0x00008f00 blx 0x6020                                    |         fcn_00006020 ();
    0x00008f04 mov r0, fp                                    |         r0 = fp;
    0x00008f06 blx 0x66e0                                    |         fcn_000066e0 ();
    0x00008f0a b 0x8f18                                      |         goto label_59;
                                                             | label_28:
    0x00008f0c movs r2, 0                                    |         r2 = 0;
    0x00008f0e movs r1, 7                                    |         r1 = 7;
    0x00008f10 mov r0, r5                                    |         r0 = r5;
    0x00008f12 blx 0x67f4                                    |         fcn_000067f4 ();
                                                             | label_2:
    0x00008f16 movs r4, 0xc                                  |         r4 = 0xc;
                                                             | label_59:
    0x00008f18 ldr r2, [pc, 0x36c]                           |         
    0x00008f1a ldr r3, [pc, 0x26c]                           |         r3 = *(0x918a);
    0x00008f1c add r2, pc                                    |         r2 = 0x121a8;
    0x00008f1e ldr r3, [r2, r3]                              |         r3 = *(0x121a8);
    0x00008f20 ldr r2, [r3]                                  |         r2 = *(0x121a8);
    0x00008f22 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00008f24 eors r2, r3                                   |         r2 ^= r3;
    0x00008f26 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00008f2a bne.w 0x917e                                  |             goto label_60;
                                                             |         }
    0x00008f2e mov r0, r4                                    |         r0 = r4;
    0x00008f30 add sp, 0x34                                  |         
    0x00008f32 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_29:
    0x00008f36 blx 0x6890                                    |         r0 = fcn_00006890 ();
    0x00008f3a cmp r0, 0xd                                   |         
                                                             |         if (r0 == 0xd) {
    0x00008f3c beq.w 0x913e                                  |             goto label_61;
                                                             |         }
                                                             | label_30:
    0x00008f40 movs r2, 0                                    |         r2 = 0;
    0x00008f42 movs r1, 0xf                                  |         r1 = 0xf;
    0x00008f44 mov r0, r5                                    |         r0 = r5;
    0x00008f46 blx 0x67f4                                    |         fcn_000067f4 ();
                                                             | label_25:
    0x00008f4a mov.w fp, 0                                   |         
    0x00008f4e movs r4, 0xc                                  |         r4 = 0xc;
    0x00008f50 str.w fp, [sp, 0xc]                           |         __asm ("str.w fp, [var_ch]");
    0x00008f54 b 0x8ef8                                      |         
                                                             |     } while (1);
                                                             | label_33:
    0x00008f56 strb r6, [r0]                                 |     *(r0) = r6;
    0x00008f58 b 0x8a58                                      |     goto label_0;
                                                             | label_58:
    0x00008f5a mov r0, r4                                    |     r0 = r4;
    0x00008f5c blx 0x641c                                    |     fcn_0000641c ();
    0x00008f60 ldr r3, [sp, 0x10]                            |     r3 = var_10h_2;
    0x00008f62 add r2, sp, 0x24                              |     r2 += var_24h;
    0x00008f64 add r1, sp, 0x20                              |     r1 += var_20h;
    0x00008f66 blx 0x5c54                                    |     fcn_00005c54 ();
    0x00008f6a ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x00008f6c blx 0x59dc                                    |     r0 = BN_bn2dec ();
    0x00008f70 mov r6, r0                                    |     r6 = r0;
    0x00008f72 mov r0, r5                                    |     r0 = r5;
    0x00008f74 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00008f76 beq.w 0x9166                                  |         goto label_62;
                                                             |     }
    0x00008f7a mov r1, r6                                    |     r1 = r6;
    0x00008f7c blx 0x6818                                    |     fcn_00006818 ();
    0x00008f80 ldr r1, [pc, 0x308]                           |     
    0x00008f82 mov r4, r0                                    |     r4 = r0;
    0x00008f84 movw r2, 0x2f9                                |     r2 = 0x2f9;
    0x00008f88 mov r0, r6                                    |     r0 = r6;
    0x00008f8a add r1, pc                                    |     r1 = 0x1221a;
    0x00008f8c blx 0x5fb4                                    |     fcn_00005fb4 ();
    0x00008f90 b 0x8ee4                                      |     goto label_1;
                                                             | label_27:
    0x00008f92 mov r2, r0                                    |     r2 = r0;
    0x00008f94 movs r1, 0xd                                  |     r1 = 0xd;
    0x00008f96 mov r0, r5                                    |     r0 = r5;
    0x00008f98 blx 0x67f4                                    |     fcn_000067f4 ();
    0x00008f9c b 0x8f16                                      |     goto label_2;
                                                             | label_57:
    0x00008f9e ldr r1, [pc, 0x2f0]                           |     
    0x00008fa0 mov r0, r5                                    |     r0 = r5;
    0x00008fa2 add r1, pc                                    |     r1 = 0x12238;
    0x00008fa4 blx 0x6818                                    |     fcn_00006818 ();
    0x00008fa8 b 0x8ec4                                      |     goto label_3;
                                                             | label_31:
    0x00008faa mov r2, r0                                    |     r2 = r0;
    0x00008fac movs r1, 0xf                                  |     r1 = 0xf;
    0x00008fae mov r0, r5                                    |     r0 = r5;
    0x00008fb0 movs r4, 0xc                                  |     r4 = 0xc;
    0x00008fb2 blx 0x67f4                                    |     fcn_000067f4 ();
    0x00008fb6 b 0x8ef8                                      |     goto label_4;
                                                             | label_51:
    0x00008fb8 mov r0, r6                                    |     r0 = r6;
    0x00008fba blx 0x5a48                                    |     r0 = EVP_PKEY_get0_EC_KEY ();
    0x00008fbe mov r6, r0                                    |     r6 = r0;
    0x00008fc0 blx 0x68a8                                    |     r0 = fcn_000068a8 ();
    0x00008fc4 mov r1, r0                                    |     r1 = r0;
    0x00008fc6 mov r0, r6                                    |     r0 = r6;
    0x00008fc8 mov r6, r1                                    |     r6 = r1;
    0x00008fca blx 0x6308                                    |     fcn_00006308 ();
    0x00008fce movs r3, 0                                    |     r3 = 0;
    0x00008fd0 mov r1, r6                                    |     r1 = r6;
    0x00008fd2 movs r2, 4                                    |     r2 = 4;
    0x00008fd4 blx 0x5bb0                                    |     r0 = EC_POINT_point2hex ();
    0x00008fd8 mov sb, r0                                    |     sb = r0;
    0x00008fda add r3, sp, 0x28                              |     r3 += var_28h;
    0x00008fdc str r3, [sp, 0x10]                            |     var_10h_2 = r3;
                                                             | label_24:
    0x00008fde cmp.w sb, 0                                   |     
                                                             |     if (sb == 0) {
    0x00008fe2 beq.w 0x8e06                                  |         goto label_5;
                                                             |     }
    0x00008fe6 ldrb.w r2, [sb]                               |     r2 = *(sb);
    0x00008fea cmp r2, 0x37                                  |     
                                                             |     if (r2 > 0x37) {
    0x00008fec bhi.w 0x9156                                  |         goto label_63;
                                                             |     }
                                                             | label_26:
    0x00008ff0 mov r6, sb                                    |     r6 = sb;
    0x00008ff2 movs r7, 0                                    |     r7 = 0;
    0x00008ff4 mov.w r8, 0x20                                |     r8 = 0x20;
                                                             |     if (r2 != 0) {
    0x00008ff8 cbnz r2, 0x9016                               |         goto label_8;
                                                             |     }
    0x00008ffa b 0x906c                                      |     goto label_64;
                                                             |     do {
    0x00008ffc ldr r1, [r4]                                  |         r1 = *(r4);
    0x00008ffe str r0, [r4, 4]                               |         *((r4 + 4)) = r0;
    0x00009000 strb r2, [r1, r3]                             |         *((r1 + r3)) = r2;
    0x00009002 ldrd r2, r3, [r4]                             |         __asm ("ldrd r2, r3, [r4]");
    0x00009006 strb r7, [r2, r3]                             |         *((r2 + r3)) = r7;
    0x00009008 ldrb r2, [r6, 1]                              |         r2 = *((r6 + 1));
                                                             |         if (r2 != 0) {
    0x0000900a cbnz r2, 0x9030                               |             goto label_65;
                                                             |         }
                                                             | label_6:
    0x0000900c ldrb r3, [r6, 2]                              |         r3 = *((r6 + 2));
                                                             |         if (r3 != 0) {
    0x0000900e cbnz r3, 0x904c                               |             goto label_66;
                                                             |         }
                                                             | label_7:
    0x00009010 ldrb r2, [r6, 2]!                             |         r2 = *((r6 += 2));
                                                             |         if (r2 == 0) {
    0x00009014 cbz r2, 0x906c                                |             goto label_64;
                                                             |         }
                                                             | label_8:
    0x00009016 ldrd r3, r1, [r4, 4]                          |         __asm ("ldrd r3, r1, [r4, 4]");
    0x0000901a adds r0, r3, 1                                |         r0 = r3 + 1;
    0x0000901c cmp r0, r1                                    |         
    0x0000901e blo 0x8ffc                                    |         
                                                             |     } while (r0 <= r1);
    0x00009020 mov.w r1, -1                                  |     r1 = -1;
    0x00009024 mov r0, r4                                    |     r0 = r4;
    0x00009026 blx 0x653c                                    |     fcn_0000653c ();
    0x0000902a ldrb r2, [r6, 1]                              |     r2 = *((r6 + 1));
    0x0000902c cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0000902e beq 0x900c                                    |         goto label_6;
                                                             |     }
                                                             | label_65:
    0x00009030 ldrd r3, r1, [r4, 4]                          |     __asm ("ldrd r3, r1, [r4, 4]");
    0x00009034 adds r0, r3, 1                                |     r0 = r3 + 1;
    0x00009036 cmp r0, r1                                    |     
                                                             |     if (r0 >= r1) {
    0x00009038 bhs 0x9090                                    |         goto label_67;
                                                             |     }
    0x0000903a ldr r1, [r4]                                  |     r1 = *(r4);
    0x0000903c str r0, [r4, 4]                               |     *((r4 + 4)) = r0;
    0x0000903e strb r2, [r1, r3]                             |     *((r1 + r3)) = r2;
    0x00009040 ldrd r2, r3, [r4]                             |     __asm ("ldrd r2, r3, [r4]");
    0x00009044 strb r7, [r2, r3]                             |     *((r2 + r3)) = r7;
    0x00009046 ldrb r3, [r6, 2]                              |     r3 = *((r6 + 2));
    0x00009048 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000904a beq 0x9010                                    |         goto label_7;
                                                             |     }
                                                             | label_66:
    0x0000904c ldrd r3, r1, [r4, 4]                          |     __asm ("ldrd r3, r1, [r4, 4]");
    0x00009050 adds r2, r3, 1                                |     r2 = r3 + 1;
    0x00009052 cmp r2, r1                                    |     
                                                             |     if (r2 >= r1) {
    0x00009054 bhs 0x9082                                    |         goto label_68;
                                                             |     }
    0x00009056 str r2, [r4, 4]                               |     *((r4 + 4)) = r2;
    0x00009058 ldr r2, [r4]                                  |     r2 = *(r4);
    0x0000905a strb.w r8, [r2, r3]                           |     *((r2 + r3)) = r8;
    0x0000905e ldrd r2, r3, [r4]                             |     __asm ("ldrd r2, r3, [r4]");
    0x00009062 strb r7, [r2, r3]                             |     *((r2 + r3)) = r7;
    0x00009064 ldrb r2, [r6, 2]!                             |     r2 = *((r6 += 2));
    0x00009068 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0000906a bne 0x9016                                    |         goto label_8;
                                                             |     }
                                                             | label_64:
    0x0000906c mov r0, r4                                    |     r0 = r4;
    0x0000906e blx 0x5e34                                    |     fcn_00005e34 ();
    0x00009072 ldr r1, [pc, 0x220]                           |     
    0x00009074 mov r0, sb                                    |     r0 = sb;
    0x00009076 mov.w r2, 0x284                               |     r2 = 0x284;
    0x0000907a add r1, pc                                    |     r1 = 0x12314;
    0x0000907c blx 0x5fb4                                    |     fcn_00005fb4 ();
    0x00009080 b 0x8e06                                      |     goto label_5;
                                                             | label_68:
    0x00009082 movs r2, 0x20                                 |     r2 = 0x20;
    0x00009084 mov.w r1, -1                                  |     r1 = -1;
    0x00009088 mov r0, r4                                    |     r0 = r4;
    0x0000908a blx 0x653c                                    |     fcn_0000653c ();
    0x0000908e b 0x9010                                      |     goto label_7;
                                                             | label_67:
    0x00009090 mov.w r1, -1                                  |     r1 = -1;
    0x00009094 mov r0, r4                                    |     r0 = r4;
    0x00009096 blx 0x653c                                    |     fcn_0000653c ();
    0x0000909a b 0x900c                                      |     goto label_6;
                                                             | label_32:
    0x0000909c ldr r1, [pc, 0x1f8]                           |     
    0x0000909e mov r0, r5                                    |     r0 = r5;
    0x000090a0 mov r4, sb                                    |     r4 = sb;
    0x000090a2 add r1, pc                                    |     r1 = 0x1233e;
    0x000090a4 blx 0x6818                                    |     r0 = fcn_00006818 ();
    0x000090a8 mov r8, r0                                    |     r8 = r0;
    0x000090aa b 0x8a58                                      |     goto label_0;
                                                             | label_36:
    0x000090ac ldr r2, [pc, 0x1ec]                           |     
    0x000090ae add r2, pc                                    |     r2 = 0x1234e;
    0x000090b0 b 0x8b4a                                      |     goto label_9;
                                                             | label_47:
    0x000090b2 ldr r2, [pc, 0x1ec]                           |     
    0x000090b4 add r2, pc                                    |     r2 = 0x1235a;
    0x000090b6 b 0x8d1c                                      |     goto label_10;
                                                             | label_50:
    0x000090b8 ldr r2, [pc, 0x1e8]                           |     
    0x000090ba add r2, pc                                    |     r2 = 0x12362;
    0x000090bc b 0x8d64                                      |     goto label_11;
                                                             | label_37:
    0x000090be ldr r2, [pc, 0x1e8]                           |     
    0x000090c0 add r2, pc                                    |     r2 = 0x1236e;
    0x000090c2 b 0x8b6e                                      |     goto label_12;
                                                             | label_40:
    0x000090c4 ldr r2, [pc, 0x1e4]                           |     
    0x000090c6 add r2, pc                                    |     r2 = 0x12376;
    0x000090c8 b 0x8bda                                      |     goto label_13;
                                                             | label_39:
    0x000090ca ldr r2, [pc, 0x1e4]                           |     
    0x000090cc add r2, pc                                    |     r2 = 0x12382;
    0x000090ce b 0x8bb6                                      |     goto label_14;
                                                             | label_38:
    0x000090d0 ldr r2, [pc, 0x1e0]                           |     
    0x000090d2 add r2, pc                                    |     r2 = 0x1238a;
    0x000090d4 b 0x8b92                                      |     goto label_15;
                                                             | label_35:
    0x000090d6 ldr r2, [pc, 0x1e0]                           |     
    0x000090d8 add r2, pc                                    |     r2 = 0x12396;
    0x000090da b 0x8b26                                      |     goto label_16;
                                                             | label_34:
    0x000090dc ldr r2, [pc, 0x1dc]                           |     
    0x000090de add r2, pc                                    |     r2 = 0x1239e;
    0x000090e0 b 0x8b02                                      |     goto label_17;
                                                             | label_44:
    0x000090e2 ldr r2, [pc, 0x1dc]                           |     
    0x000090e4 add r2, pc                                    |     r2 = 0x123aa;
    0x000090e6 b 0x8cb0                                      |     goto label_18;
                                                             | label_43:
    0x000090e8 ldr r2, [pc, 0x1d8]                           |     
    0x000090ea add r2, pc                                    |     r2 = 0x123b2;
    0x000090ec b 0x8c8c                                      |     goto label_19;
                                                             | label_48:
    0x000090ee ldr r2, [pc, 0x1d8]                           |     
    0x000090f0 add r2, pc                                    |     r2 = 0x123be;
    0x000090f2 b 0x8d40                                      |     goto label_20;
                                                             | label_45:
    0x000090f4 ldr r2, [pc, 0x1d4]                           |     
    0x000090f6 add r2, pc                                    |     r2 = 0x123c6;
    0x000090f8 b 0x8cd4                                      |     goto label_21;
                                                             | label_46:
    0x000090fa ldr r2, [pc, 0x1d4]                           |     
    0x000090fc add r2, pc                                    |     r2 = 0x123d2;
    0x000090fe b 0x8cf8                                      |     goto label_22;
                                                             | label_42:
    0x00009100 ldr r2, [pc, 0x1d0]                           |     
    0x00009102 add r2, pc                                    |     r2 = 0x123da;
    0x00009104 b 0x8bfe                                      |     goto label_23;
                                                             | label_52:
    0x00009106 mov r0, r6                                    |     r0 = r6;
    0x00009108 blx 0x641c                                    |     fcn_0000641c ();
    0x0000910a invalid                                       |     
    0x0000910e add r2, sp, 0x24                              |     r2 += var_24h;
    0x00009110 add r1, sp, 0x20                              |     r1 += var_20h;
    0x00009112 str r3, [sp, 0x10]                            |     var_10h_2 = r3;
    0x00009114 blx 0x5c54                                    |     fcn_00005c54 ();
    0x00009116 ldc p8, c9, [lr, 0x20]                        |     __asm ("ldc p8, c9, [lr, 0x20]");
    0x0000911a blx 0x5cfc                                    |     r0 = fcn_00005cfc ();
    0x0000911e mov sb, r0                                    |     sb = r0;
    0x00009120 b 0x8fde                                      |     goto label_24;
                                                             | label_53:
    0x00009122 mov r0, r6                                    |     r0 = r6;
    0x00009124 blx 0x5b98                                    |     EVP_PKEY_get0_DSA ();
    0x00009128 add r3, sp, 0x28                              |     r3 += var_28h;
    0x0000912a add r1, sp, 0x24                              |     r1 += var_24h;
    0x0000912c mov r2, r3                                    |     r2 = r3;
    0x0000912e str r3, [sp, 0x10]                            |     var_10h_2 = r3;
    0x00009130 blx 0x5f54                                    |     fcn_00005f54 ();
    0x00009134 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x00009136 blx 0x5cfc                                    |     r0 = fcn_00005cfc ();
    0x0000913a mov sb, r0                                    |     sb = r0;
    0x0000913c b 0x8fde                                      |     goto label_24;
                                                             | label_61:
    0x0000913e ldr r2, [sp, 4]                               |     r2 = var_4h;
    0x00009140 movs r1, 0x33                                 |     r1 = 0x33;
    0x00009142 mov r0, r5                                    |     r0 = r5;
    0x00009144 blx 0x6164                                    |     fcn_00006164 ();
    0x00009148 b 0x8f4a                                      |     goto label_25;
                                                             | label_55:
    0x0000914a ldr r1, [pc, 0x18c]                           |     
    0x0000914c mov r0, r5                                    |     r0 = r5;
    0x0000914e add r1, pc                                    |     r1 = 0x1242c;
    0x00009150 blx 0x6818                                    |     fcn_00006818 ();
    0x00009154 b 0x8ec4                                      |     goto label_3;
                                                             | label_63:
    0x00009156 ldr r1, [pc, 0x184]                           |     
    0x00009158 mov r0, r4                                    |     r0 = r4;
    0x0000915a add r1, pc                                    |     r1 = 0x1243c;
    0x0000915c blx 0x6068                                    |     fcn_00006068 ();
    0x00009160 ldrb.w r2, [sb]                               |     r2 = *(sb);
    0x00009164 b 0x8ff0                                      |     goto label_26;
                                                             | label_62:
    0x00009166 ldr r1, [pc, 0x178]                           |     
    0x00009168 add r1, pc                                    |     r1 = 0x1244e;
    0x0000916a blx 0x6818                                    |     r0 = fcn_00006818 ();
    0x0000916e mov r4, r0                                    |     r4 = r0;
    0x00009170 b 0x8ee4                                      |     goto label_1;
                                                             | label_56:
    0x00009172 ldr r1, [pc, 0x170]                           |     
    0x00009174 mov r0, r5                                    |     r0 = r5;
    0x00009176 add r1, pc                                    |     r1 = "tds:GetEndpointReference";
    0x00009178 blx 0x6818                                    |     fcn_00006818 ();
    0x0000917c b 0x8ec4                                      |     goto label_3;
                                                             | label_60:
    0x0000917e blx 0x5cb4                                    |     fcn_00005cb4 ();
    0x00009182 nop                                           |     
    0x00009184 stm r1!, {r2, r3, r4, r5}                     |     *(r1!) = r2;
                                                             |     *((r1! + 4)) = r3;
                                                             |     *((r1! + 8)) = r4;
                                                             |     *((r1! + 12)) = r5;
    0x00009186 movs r0, r0                                   |     
    0x00009188 lsls r4, r2, 0x16                             |     r4 = r2 << 0x16;
    0x0000918a movs r0, r0                                   |     
    0x0000918c str r5, [sp, 0x3d0]                           |     *(arg_3d0h) = r5;
    0x0000918e movs r0, r0                                   |     
    0x00009190 str r5, [sp, 0x178]                           |     *(arg_178h) = r5;
    0x00009192 movs r0, r0                                   |     
    0x00009194 str r4, [sp, 0x238]                           |     *(arg_238h) = r4;
    0x00009196 movs r0, r0                                   |     
    0x00009198 str r1, [sp, 0x210]                           |     *(arg_210h) = r1;
    0x0000919a movs r0, r0                                   |     
    0x0000919c str r4, [sp, 0xd0]                            |     *(arg_d0h) = r4;
    0x0000919e movs r0, r0                                   |     
    0x000091a0 str r4, [sp, 0x140]                           |     *(arg_140h) = r4;
    0x000091a2 movs r0, r0                                   |     
    0x000091a4 adr r2, 0x388                                 |     r2 = 0x388;
    0x000091a6 movs r0, r0                                   |     
    0x000091a8 str r4, [sp, 0x40]                            |     var_40h = r4;
    0x000091aa movs r0, r0                                   |     
    0x000091ac str r4, [sp, 0x100]                           |     *(arg_100h) = r4;
    0x000091ae movs r0, r0                                   |     
    0x000091b0 adr r2, 0x2f8                                 |     r2 = 0x2f8;
    0x000091b2 movs r0, r0                                   |     
    0x000091b4 str r3, [sp, 0x3b0]                           |     *(arg_3b0h) = r3;
    0x000091b6 movs r0, r0                                   |     
    0x000091b8 str r4, [sp, 0xb0]                            |     *(arg_b0h) = r4;
    0x000091ba movs r0, r0                                   |     
    0x000091bc adr r2, 0x268                                 |     r2 = 0x268;
    0x000091be movs r0, r0                                   |     
    0x000091c0 str r3, [sp, 0x320]                           |     *(arg_320h) = r3;
    0x000091c2 movs r0, r0                                   |     
    0x000091c4 str r4, [sp, 0x60]                            |     *(arg_60h) = r4;
    0x000091c6 movs r0, r0                                   |     
    0x000091c8 adr r2, 0x1d8                                 |     r2 = 0x1d8;
    0x000091ca movs r0, r0                                   |     
    0x000091cc str r3, [sp, 0x290]                           |     *(arg_290h) = r3;
    0x000091ce movs r0, r0                                   |     
    0x000091d0 str r4, [sp, 0x20]                            |     var_20h = r4;
    0x000091d2 movs r0, r0                                   |     
    0x000091d4 adr r2, 0x148                                 |     r2 = 0x148;
    0x000091d6 movs r0, r0                                   |     
    0x000091d8 str r3, [sp, 0x200]                           |     *(arg_200h) = r3;
    0x000091da movs r0, r0                                   |     
    0x000091dc str r3, [sp, 0x3d0]                           |     *(arg_3d0h) = r3;
    0x000091de movs r0, r0                                   |     
    0x000091e0 adr r2, 0xb8                                  |     r2 = 0xb8;
    0x000091e2 movs r0, r0                                   |     
    0x000091e4 str r3, [sp, 0x170]                           |     *(arg_170h) = r3;
    0x000091e6 movs r0, r0                                   |     
    0x000091e8 str r3, [sp, 0x370]                           |     *(arg_370h) = r3;
    0x000091ea movs r0, r0                                   |     
    0x000091ec adr r2, 0x28                                  |     r2 = 0x28;
    0x000091ee movs r0, r0                                   |     
    0x000091f0 str r3, [sp, 0xe0]                            |     *(arg_e0h) = r3;
    0x000091f2 movs r0, r0                                   |     
    0x000091f4 str r3, [sp, 0x300]                           |     *(arg_300h) = r3;
    0x000091f6 movs r0, r0                                   |     
    0x000091f8 adr r1, 0x398                                 |     r1 = 0x398;
    0x000091fa movs r0, r0                                   |     
    0x000091fc str r3, [sp, 0x50]                            |     var_50h = r3;
    0x000091fe movs r0, r0                                   |     
    0x00009200 str r3, [sp, 0x2b0]                           |     *(arg_2b0h) = r3;
    0x00009202 movs r0, r0                                   |     
    0x00009204 adr r1, 0x308                                 |     r1 = fcn.00000004;
    0x00009206 movs r0, r0                                   |     
    0x00009208 str r0, [sp, 0x20]                            |     var_20h = r0;
    0x0000920a movs r0, r0                                   |     
    0x0000920c str r2, [sp, 0x2a8]                           |     *(arg_2a8h) = r2;
    0x0000920e movs r0, r0                                   |     
    0x00009210 str r3, [sp, 0x148]                           |     *(arg_148h) = r3;
    0x00009212 movs r0, r0                                   |     
    0x00009214 adr r1, 0x160                                 |     r1 = 0x160;
    0x00009216 movs r0, r0                                   |     
    0x00009218 str r2, [sp, 0x218]                           |     *(arg_218h) = r2;
    0x0000921a movs r0, r0                                   |     
    0x0000921c str r3, [sp, 0xe8]                            |     *(arg_e8h) = r3;
    0x0000921e movs r0, r0                                   |     
    0x00009220 adr r1, 0xd0                                  |     r1 = 0xd0;
    0x00009222 movs r0, r0                                   |     
    0x00009224 str r2, [sp, 0x188]                           |     *(arg_188h) = r2;
    0x00009226 movs r0, r0                                   |     
    0x00009228 str r3, [sp, 0x88]                            |     *(arg_88h) = r3;
    0x0000922a movs r0, r0                                   |     
    0x0000922c adr r1, 0x40                                  |     r1 = 0x40;
    0x0000922e movs r0, r0                                   |     
    0x00009230 str r2, [sp, 0xf8]                            |     *(arg_f8h) = r2;
    0x00009232 movs r0, r0                                   |     
    0x00009234 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00009236 movs r0, r0                                   |     
    0x00009238 adr r0, 0x3b0                                 |     r0 = 0x3b0;
    0x0000923a movs r0, r0                                   |     
    0x0000923c str r2, [sp, 0x68]                            |     *(arg_68h) = r2;
    0x0000923e movs r0, r0                                   |     
    0x00009240 str r2, [sp, 0x3d8]                           |     *(arg_3d8h) = r2;
    0x00009242 movs r0, r0                                   |     
    0x00009244 adr r0, 0x320                                 |     r0 = 0x320;
    0x00009246 movs r0, r0                                   |     
    0x00009248 str r1, [sp, 0x3d8]                           |     *(arg_3d8h) = r1;
    0x0000924a movs r0, r0                                   |     
    0x0000924c str r2, [sp, 0x3a8]                           |     *(arg_3a8h) = r2;
    0x0000924e movs r0, r0                                   |     
    0x00009250 adr r0, 0x290                                 |     r0 = 0x290;
    0x00009252 movs r0, r0                                   |     
    0x00009254 str r1, [sp, 0x348]                           |     *(arg_348h) = r1;
    0x00009256 movs r0, r0                                   |     
    0x00009258 str r2, [sp, 0x348]                           |     *(arg_348h) = r2;
    0x0000925a movs r0, r0                                   |     
    0x0000925c adr r0, 0x200                                 |     r0 = 0x200;
    0x0000925e movs r0, r0                                   |     
    0x00009260 str r1, [sp, 0x2b8]                           |     *(arg_2b8h) = r1;
    0x00009262 movs r0, r0                                   |     
    0x00009264 str r2, [sp, 0x2f8]                           |     *(arg_2f8h) = r2;
    0x00009266 movs r0, r0                                   |     
    0x00009268 adr r0, 0x170                                 |     r0 = 0x170;
    0x0000926a movs r0, r0                                   |     
    0x0000926c ldrh r2, [r3, 0x32]                           |     r2 = *((r3 + 0x32));
    0x0000926e movs r0, r0                                   |     
    0x00009270 ldrh r4, [r2, 0x30]                           |     r4 = *((r2 + 0x30));
    0x00009272 movs r0, r0                                   |     
    0x00009274 ldrh r6, [r4, 0x2e]                           |     r6 = *((r4 + 0x2e));
    0x00009276 movs r0, r0                                   |     
    0x00009278 ldrh r0, [r3, 0x32]                           |     r0 = *((r3 + 0x32));
    0x0000927a movs r0, r0                                   |     
    0x0000927c str r1, [sp, 0x3e8]                           |     *(arg_3e8h) = r1;
    0x0000927e movs r0, r0                                   |     
    0x00009280 ldrh r6, [r6, 0x2a]                           |     r6 = *((r6 + 0x2a));
    0x00009282 movs r0, r0                                   |     
    0x00009284 ldrh r0, [r3, 0x2a]                           |     r0 = *((r3 + 0x2a));
    0x00009286 movs r0, r0                                   |     
                                                             |     if (r4 == 0) {
    0x00009288 cbnz r4, 0x92da                               |         
    0x0000928a movs r0, r0                                   |         
    0x0000928c ldrh r2, [r5, 0x3a]                           |         r2 = *((r5 + 0x3a));
    0x0000928e movs r0, r0                                   |         
    0x00009290 str r0, [sp, 0x368]                           |         *(arg_368h) = r0;
    0x00009292 movs r0, r0                                   |         
    0x00009294 ldrh r2, [r7, 0x32]                           |         r2 = *((r7 + 0x32));
    0x00009296 movs r0, r0                                   |         
    0x00009298 ldrh r2, [r2, 0x1c]                           |         r2 = *((r2 + 0x1c));
    0x0000929a movs r0, r0                                   |         
    0x0000929c ldrh r6, [r0, 0x1c]                           |         r6 = *((r0 + 0x1c));
    0x0000929e movs r0, r0                                   |         
    0x000092a0 ldrh r0, [r0, 0x1c]                           |         r0 = *((r0 + 0x1c));
    0x000092a2 movs r0, r0                                   |         
    0x000092a4 ldrh r2, [r7, 0x1a]                           |         r2 = *((r7 + 0x1a));
    0x000092a6 movs r0, r0                                   |         
    0x000092a8 ldrh r4, [r6, 0x1a]                           |         r4 = *((r6 + 0x1a));
    0x000092aa movs r0, r0                                   |         
    0x000092ac ldrh r6, [r5, 0x1a]                           |         r6 = *((r5 + 0x1a));
    0x000092ae movs r0, r0                                   |         
    0x000092b0 ldrh r0, [r5, 0x1a]                           |         r0 = *((r5 + 0x1a));
    0x000092b2 movs r0, r0                                   |         
    0x000092b4 ldrh r2, [r4, 0x1a]                           |         r2 = *((r4 + 0x1a));
    0x000092b6 movs r0, r0                                   |         
    0x000092b8 ldrh r4, [r3, 0x1a]                           |         r4 = *((r3 + 0x1a));
    0x000092ba movs r0, r0                                   |         
    0x000092bc ldrh r6, [r2, 0x1a]                           |         r6 = *((r2 + 0x1a));
    0x000092be movs r0, r0                                   |         
    0x000092c0 ldrh r0, [r2, 0x1a]                           |         r0 = *((r2 + 0x1a));
    0x000092c2 movs r0, r0                                   |         
    0x000092c4 ldrh r2, [r1, 0x1a]                           |         r2 = *((r1 + 0x1a));
    0x000092c6 movs r0, r0                                   |         
    0x000092c8 ldrh r4, [r0, 0x1a]                           |         r4 = *((r0 + 0x1a));
    0x000092ca movs r0, r0                                   |         
    0x000092cc ldrh r6, [r7, 0x18]                           |         r6 = *((r7 + 0x18));
    0x000092ce movs r0, r0                                   |         
    0x000092d0 ldrh r0, [r7, 0x18]                           |         r0 = *((r7 + 0x18));
    0x000092d2 movs r0, r0                                   |         
    0x000092d4 ldrh r2, [r6, 0x18]                           |         r2 = *((r6 + 0x18));
    0x000092d6 movs r0, r0                                   |         
    0x000092d8 ldrh r6, [r1, 0x38]                           |         r6 = *((r1 + 0x38));
                                                             |     }
    0x000092da movs r0, r0                                   |     
    0x000092dc ldrh r6, [r6, 0x36]                           |     r6 = *((r6 + 0x36));
    0x000092de movs r0, r0                                   |     
    0x000092e0 ldrh r4, [r1, 0x16]                           |     r4 = *((r1 + 0x16));
    0x000092e2 movs r0, r0                                   |     
    0x000092e4 ldrh r6, [r6, 0x36]                           |     r6 = *((r6 + 0x36));
    0x000092e6 movs r0, 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/libimpl_wsd_tds.so @ 0xd104 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.__tds__RemoveIPAddressFilter ()                      | void tds_RemoveIPAddressFilter (int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_0h_2;
                                                                     |     int32_t var_0h;
                                                                     |     int16_t var_8h;
                                                                     |     int32_t var_8h_2;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0000d104 ldr r2, [pc, 0x34c]                                   |     
    0x0000d106 ldr r3, [pc, 0x350]                                   |     r3 = *(0xd45a);
    0x0000d108 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000d10c mov r4, r1                                            |     r4 = r1;
    0x0000d10e add r2, pc                                            |     r2 = 0x1a566;
    0x0000d110 ldr r1, [pc, 0x348]                                   |     
    0x0000d112 sub sp, 0x1c                                          |     
    0x0000d114 movs r5, 0                                            |     r5 = 0;
    0x0000d116 ldr r3, [r2, r3]                                      |     
    0x0000d118 mov r8, r0                                            |     r8 = r0;
    0x0000d11a add r1, pc                                            |     r1 = 0x1a57a;
    0x0000d11c ldr r3, [r3]                                          |     r3 = *(0x1a566);
    0x0000d11e str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0000d120 mov.w r3, 0                                           |     r3 = 0;
    0x0000d124 str r5, [sp, 0x10]                                    |     var_10h = r5;
    0x0000d126 blx 0x59d0                                            |     r0 = wssecurity_uh_allowed_access ();
    0x0000d12a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d12c beq.w 0xd398                                          |         goto label_12;
                                                                     |     }
    0x0000d130 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000d132 beq.w 0xd38c                                          |         goto label_13;
                                                                     |     }
    0x0000d136 ldr r2, [r4]                                          |     r2 = *(r4);
    0x0000d138 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000d13a beq.w 0xd38c                                          |         goto label_13;
                                                                     |     }
    0x0000d13e ldr.w fp, [r2, 4]                                     |     fp = *((r2 + 4));
    0x0000d142 ldr r3, [r2, 0xc]                                     |     r3 = *((r2 + 0xc));
    0x0000d144 cmp.w fp, 0                                           |     
    0x0000d148 it le                                                 |     
                                                                     |     if (fp <= 0) {
    0x0000d14a cmple r3, 0                                           |         __asm ("cmple r3, 0");
                                                                     |     }
                                                                     |     if (fp <= 0) {
    0x0000d14c ble.w 0xd358                                          |         goto label_14;
                                                                     |     }
    0x0000d150 ldr.w sl, [r2, 8]                                     |     sl = *((r2 + 8));
    0x0000d154 cmp.w fp, 0                                           |     
    0x0000d158 ldr.w sb, [r2, 0x10]                                  |     sb = *((r2 + 0x10));
    0x0000d15c ite le                                                |     
                                                                     |     if (fp > 0) {
    0x0000d15e movle r2, 0                                           |         r2 = 0;
                                                                     |     }
                                                                     |     if (fp <= 0) {
    0x0000d160 movgt r2, 1                                           |         r2 = 1;
                                                                     |     }
    0x0000d162 cmp.w sl, 0                                           |     
    0x0000d166 it ne                                                 |     
                                                                     |     if (sl == 0) {
    0x0000d168 movne r2, 0                                           |         r2 = 0;
                                                                     |     }
    0x0000d16a cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0000d16c bne.w 0xd374                                          |         goto label_15;
                                                                     |     }
    0x0000d170 cmp r3, 0                                             |     
    0x0000d172 ite le                                                |     
                                                                     |     if (r3 > 0) {
    0x0000d174 movle r5, 0                                           |         r5 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 0) {
    0x0000d176 movgt r5, 1                                           |         r5 = 1;
                                                                     |     }
    0x0000d178 cmp.w sb, 0                                           |     
    0x0000d17c it ne                                                 |     
                                                                     |     if (sb == 0) {
    0x0000d17e movne r5, 0                                           |         r5 = 0;
                                                                     |     }
    0x0000d180 cmp r5, 0                                             |     
                                                                     |     if (r5 != 0) {
    0x0000d182 bne.w 0xd374                                          |         goto label_15;
                                                                     |     }
    0x0000d186 str r3, [sp]                                          |     *(sp) = r3;
    0x0000d188 blx 0x64dc                                            |     fcn_000064dc ();
    0x0000d18c ldr r3, [sp]                                          |     r3 = *(sp);
    0x0000d18e mov r4, r0                                            |     r4 = r0;
    0x0000d190 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000d192 bne.w 0xd3a4                                          |         goto label_16;
                                                                     |     }
    0x0000d196 add r0, sp, 0x10                                      |     r0 += var_10h;
    0x0000d198 str r3, [sp]                                          |     *(sp) = r3;
    0x0000d19a blx 0x60c8                                            |     fcn_000060c8 ();
    0x0000d19e ldr r3, [sp]                                          |     r3 = *(sp);
    0x0000d1a0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000d1a2 bne.w 0xd33a                                          |         goto label_17;
                                                                     |     }
    0x0000d1a6 strd r0, r3, [sp]                                     |     __asm ("strd r0, r3, [sp]");
    0x0000d1aa ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0000d1ac blx 0x680c                                            |     r0 = fcn_0000680c ();
    0x0000d1b0 mov ip, r0                                            |     
    0x0000d1b2 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d1b4 beq.w 0xd3ba                                          |         goto label_18;
                                                                     |     }
    0x0000d1b8 cmp.w fp, 0                                           |     
    0x0000d1bc ldrd r2, r3, [sp]                                     |     __asm ("ldrd r2, r3, [sp]");
                                                                     |     if (fp <= 0) {
    0x0000d1c0 ble 0xd258                                            |         goto label_19;
                                                                     |     }
    0x0000d1c2 ldr r4, [pc, 0x29c]                                   |     
    0x0000d1c4 mov r6, sl                                            |     r6 = sl;
    0x0000d1c6 movs r7, 0                                            |     r7 = 0;
    0x0000d1c8 strd r2, sb, [sp]                                     |     __asm ("strd r2, sb, [sp]");
    0x0000d1cc strd r3, r0, [sp, 8]                                  |     __asm ("strd r3, r0, [var_8h]");
    0x0000d1d0 add r4, pc                                            |     r4 = 0x1a636;
                                                                     | label_1:
    0x0000d1d2 ldr r2, [r6, 4]                                       |     r2 = *((r6 + 4));
    0x0000d1d4 mov r0, r4                                            |     r0 = r4;
    0x0000d1d6 ldr.w r1, [sl, r7, lsl 3]                             |     offset_0 = r7 << 3;
                                                                     |     r1 = *((sl + offset_0));
    0x0000d1da blx 0x5b50                                            |     r0 = g_strdup_printf ()
    0x0000d1de mov r5, r0                                            |     r5 = r0;
    0x0000d1e0 blx 0x6920                                            |     r0 = fcn_00006920 ();
    0x0000d1e4 cmp r0, 1                                             |     
                                                                     |     if (r0 != 1) {
    0x0000d1e6 bne.w 0xd3d2                                          |         goto label_20;
                                                                     |     }
    0x0000d1ea ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0000d1ec ldr r0, [r3]                                          |     r0 = *(r3);
    0x0000d1ee mov sb, r0                                            |     sb = r0;
                                                                     |     if (r0 == 0) {
    0x0000d1f0 cbz r0, 0xd236                                        |         goto label_5;
                                                                     |     }
    0x0000d1f2 mov.w sb, 0                                           |     sb = 0;
    0x0000d1f6 b 0xd202                                              |     
                                                                     |     while (r2 != 0x20) {
    0x0000d1f8 add.w sb, sb, 4                                       |         sb += 4;
    0x0000d1fc ldr.w r0, [r3, sb]                                    |         r0 = *((r3 + sb));
                                                                     |         if (r0 == 0) {
    0x0000d200 cbz r0, 0xd236                                        |             goto label_5;
                                                                     |         }
                                                                     | label_0:
    0x0000d202 mov r1, r5                                            |         r1 = r5;
    0x0000d204 blx 0x6398                                            |         r0 = fcn_00006398 ();
    0x0000d208 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000d20a beq.w 0xd382                                          |             goto label_21;
                                                                     |         }
    0x0000d20e ldr r2, [r6, 4]                                       |         r2 = *((r6 + 4));
    0x0000d210 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000d212 cmp r2, 0x20                                          |         
    0x0000d214 bne 0xd1f8                                            |         
                                                                     |     }
    0x0000d216 ldr.w r0, [r3, sb]                                    |     r0 = *((r3 + sb));
    0x0000d21a ldr.w r1, [sl, r7, lsl 3]                             |     offset_1 = r7 << 3;
                                                                     |     r1 = *((sl + offset_1));
    0x0000d21e blx 0x6398                                            |     r0 = fcn_00006398 ();
    0x0000d222 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d224 beq.w 0xd382                                          |         goto label_21;
                                                                     |     }
    0x0000d228 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0000d22a add.w sb, sb, 4                                       |     sb += 4;
    0x0000d22e ldr.w r0, [r3, sb]                                    |     r0 = *((r3 + sb));
    0x0000d232 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000d234 bne 0xd202                                            |         goto label_0;
                                                                     |     }
                                                                     | label_5:
    0x0000d236 mov r0, r5                                            |     r0 = r5;
    0x0000d238 blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d23c ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000d23e ldr.w r0, [r2, sb]                                    |     r0 = *((r2 + sb));
    0x0000d242 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d244 beq.w 0xd3e4                                          |         goto label_22;
                                                                     |     }
    0x0000d248 adds r7, 1                                            |     r7++;
    0x0000d24a adds r6, 8                                            |     r6 += 8;
    0x0000d24c cmp fp, r7                                            |     
                                                                     |     if (fp != r7) {
    0x0000d24e bne 0xd1d2                                            |         goto label_1;
                                                                     |     }
    0x0000d250 ldrd r2, sb, [sp]                                     |     __asm ("ldrd r2, sb, [sp]");
    0x0000d254 ldrd r3, ip, [sp, 8]                                  |     __asm ("ldrd r3, ip, [var_8h]");
                                                                     | label_19:
    0x0000d258 cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x0000d25a ble 0xd2f4                                            |         goto label_23;
                                                                     |     }
    0x0000d25c ldr r7, [pc, 0x204]                                   |     
    0x0000d25e mov r5, sb                                            |     r5 = sb;
    0x0000d260 movs r6, 0                                            |     r6 = 0;
    0x0000d262 mov sl, r3                                            |     sl = r3;
    0x0000d264 strd r2, fp, [sp]                                     |     __asm ("strd r2, fp, [sp]");
    0x0000d268 add r7, pc                                            |     r7 = 0x1a6d0;
    0x0000d26a str.w ip, [sp, 8]                                     |     __asm ("str.w ip, [var_8h]");
                                                                     | label_3:
    0x0000d26e ldr r2, [r5, 4]                                       |     r2 = *((r5 + 4));
    0x0000d270 mov r0, r7                                            |     r0 = r7;
    0x0000d272 ldr.w r1, [sb, r6, lsl 3]                             |     offset_2 = r6 << 3;
                                                                     |     r1 = *((sb + offset_2));
    0x0000d276 blx 0x5b50                                            |     r0 = g_strdup_printf ()
    0x0000d27a mov r4, r0                                            |     r4 = r0;
    0x0000d27c blx 0x6920                                            |     r0 = fcn_00006920 ();
    0x0000d280 cmp r0, 2                                             |     
                                                                     |     if (r0 != 2) {
    0x0000d282 bne.w 0xd420                                          |         goto label_24;
                                                                     |     }
    0x0000d286 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0000d288 ldr r0, [r3]                                          |     r0 = *(r3);
    0x0000d28a mov fp, r0                                            |     
                                                                     |     if (r0 == 0) {
    0x0000d28c cbz r0, 0xd2d0                                        |         goto label_7;
                                                                     |     }
    0x0000d28e mov.w fp, 0                                           |     
    0x0000d292 b 0xd29e                                              |     
                                                                     |     while (r2 != 0x80) {
    0x0000d294 add.w fp, fp, 4                                       |         
    0x0000d298 ldr.w r0, [r3, fp]                                    |         r0 = *((r3 + fp));
                                                                     |         if (r0 == 0) {
    0x0000d29c cbz r0, 0xd2d0                                        |             goto label_7;
                                                                     |         }
                                                                     | label_2:
    0x0000d29e mov r1, r4                                            |         r1 = r4;
    0x0000d2a0 blx 0x6398                                            |         r0 = fcn_00006398 ();
    0x0000d2a4 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000d2a6 beq.w 0xd3b0                                          |             goto label_25;
                                                                     |         }
    0x0000d2aa ldr r2, [r5, 4]                                       |         r2 = *((r5 + 4));
    0x0000d2ac ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000d2ae cmp r2, 0x80                                          |         
    0x0000d2b0 bne 0xd294                                            |         
                                                                     |     }
    0x0000d2b2 ldr.w r0, [r3, fp]                                    |     r0 = *((r3 + fp));
    0x0000d2b6 ldr.w r1, [sb, r6, lsl 3]                             |     offset_3 = r6 << 3;
                                                                     |     r1 = *((sb + offset_3));
    0x0000d2ba blx 0x6398                                            |     r0 = fcn_00006398 ();
    0x0000d2be cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d2c0 beq 0xd3b0                                            |         goto label_25;
                                                                     |     }
    0x0000d2c2 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0000d2c4 add.w fp, fp, 4                                       |     
    0x0000d2c8 ldr.w r0, [r3, fp]                                    |     r0 = *((r3 + fp));
    0x0000d2cc cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000d2ce bne 0xd29e                                            |         goto label_2;
                                                                     |     }
                                                                     | label_7:
    0x0000d2d0 mov r0, r4                                            |     r0 = r4;
    0x0000d2d2 blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d2d6 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000d2d8 ldr.w r0, [r2, fp]                                    |     r0 = *((r2 + fp));
    0x0000d2dc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d2de beq.w 0xd432                                          |         goto label_26;
                                                                     |     }
    0x0000d2e2 adds r6, 1                                            |     r6++;
    0x0000d2e4 adds r5, 8                                            |     r5 += 8;
    0x0000d2e6 cmp sl, r6                                            |     
                                                                     |     if (sl != r6) {
    0x0000d2e8 bne 0xd26e                                            |         goto label_3;
                                                                     |     }
    0x0000d2ea ldrd r2, fp, [sp]                                     |     __asm ("ldrd r2, fp, [sp]");
    0x0000d2ee mov r3, sl                                            |     r3 = sl;
    0x0000d2f0 ldr.w ip, [sp, 8]                                     |     ip = var_8h;
                                                                     | label_23:
    0x0000d2f4 add r3, fp                                            |     r3 += fp;
    0x0000d2f6 str r2, [sp]                                          |     *(sp) = r2;
    0x0000d2f8 rsb.w r3, r3, 1                                       |     r3 = 1 - r3;
    0x0000d2fc add r3, ip                                            |     r3 += ip;
    0x0000d2fe lsls r0, r3, 2                                        |     r0 = r3 << 2;
    0x0000d300 blx 0x5b38                                            |     r0 = g_malloc0 ();
    0x0000d304 mov r4, r0                                            |     r4 = r0;
    0x0000d306 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0000d308 ldr r2, [sp]                                          |     r2 = *(sp);
    0x0000d30a ldr r5, [r0]                                          |     r5 = *(r0);
    0x0000d30c cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0000d30e beq.w 0xd43e                                          |         goto label_27;
                                                                     |     }
    0x0000d312 mov r3, r0                                            |     r3 = r0;
    0x0000d314 movs r6, 4                                            |     r6 = 4;
    0x0000d316 mov r0, r5                                            |     r0 = r5;
    0x0000d318 mov r5, r2                                            |     r5 = r2;
    0x0000d31a mov r2, r3                                            |     r2 = r3;
    0x0000d31c b 0xd32c                                              |     
                                                                     |     while (r3 != 0) {
    0x0000d31e str.w r0, [r4, r5, lsl 2]                             |         __asm ("str.w r0, [r4, r5, lsl 2]");
    0x0000d322 adds r5, 1                                            |         r5++;
                                                                     | label_4:
    0x0000d324 ldr r0, [r2, r6]                                      |         r0 = *((r2 + r6));
    0x0000d326 adds r6, 4                                            |         r6 += 4;
    0x0000d328 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000d32a beq 0xd3f0                                            |             goto label_28;
                                                                     |         }
    0x0000d32c ldrb r3, [r0]                                         |         r3 = *(r0);
    0x0000d32e cmp r3, 0                                             |         
    0x0000d330 bne 0xd31e                                            |         
                                                                     |     }
    0x0000d332 blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d336 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000d338 b 0xd324                                              |     goto label_4;
                                                                     | label_17:
    0x0000d33a mov r2, r4                                            |     r2 = r4;
    0x0000d33c movs r1, 0xf                                          |     r1 = 0xf;
    0x0000d33e mov r0, r8                                            |     r0 = r8;
    0x0000d340 blx 0x67f4                                            |     fcn_000067f4 ();
                                                                     | label_9:
    0x0000d344 movs r4, 0                                            |     r4 = 0;
    0x0000d346 movs r5, 0xc                                          |     r5 = 0xc;
                                                                     | label_8:
    0x0000d348 blx 0x6884                                            |     fcn_00006884 ();
    0x0000d34c ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0000d34e blx 0x693c                                            |     cert_prm_get_int ();
    0x0000d352 mov r0, r4                                            |     r0 = r4;
    0x0000d354 blx 0x693c                                            |     cert_prm_get_int ();
                                                                     |     do {
                                                                     | label_14:
    0x0000d358 ldr r2, [pc, 0x10c]                                   |         
    0x0000d35a ldr r3, [pc, 0xfc]                                    |         r3 = *(0xd45a);
    0x0000d35c add r2, pc                                            |         r2 = 0x1a7c8;
    0x0000d35e ldr r3, [r2, r3]                                      |         r3 = *(0x1a7c8);
    0x0000d360 ldr r2, [r3]                                          |         r2 = *(0x1a7c8);
    0x0000d362 ldr r3, [sp, 0x14]                                    |         r3 = var_14h;
    0x0000d364 eors r2, r3                                           |         r2 ^= r3;
    0x0000d366 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000d36a bne 0xd44e                                            |             goto label_29;
                                                                     |         }
    0x0000d36c mov r0, r5                                            |         r0 = r5;
    0x0000d36e add sp, 0x1c                                          |         
    0x0000d370 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_15:
    0x0000d374 movs r2, 0                                            |         r2 = 0;
    0x0000d376 movs r1, 7                                            |         r1 = 7;
    0x0000d378 mov r0, r8                                            |         r0 = r8;
    0x0000d37a blx 0x67f4                                            |         fcn_000067f4 ();
                                                                     | label_6:
    0x0000d37e movs r5, 0xc                                          |         r5 = 0xc;
    0x0000d380 b 0xd358                                              |         
                                                                     |     } while (1);
                                                                     | label_21:
    0x0000d382 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000d384 ldr.w r2, [r2, sb]                                    |     r2 = *((r2 + sb));
    0x0000d388 strb r0, [r2]                                         |     *(r2) = r0;
    0x0000d38a b 0xd236                                              |     goto label_5;
                                                                     | label_13:
    0x0000d38c movs r2, 0                                            |     r2 = 0;
    0x0000d38e movs r1, 3                                            |     r1 = 3;
    0x0000d390 mov r0, r8                                            |     r0 = r8;
    0x0000d392 blx 0x67f4                                            |     fcn_000067f4 ();
    0x0000d396 b 0xd37e                                              |     goto label_6;
                                                                     | label_12:
    0x0000d398 mov r2, r0                                            |     r2 = r0;
    0x0000d39a movs r1, 0xd                                          |     r1 = 0xd;
    0x0000d39c mov r0, r8                                            |     r0 = r8;
    0x0000d39e blx 0x67f4                                            |     fcn_000067f4 ();
    0x0000d3a2 b 0xd37e                                              |     goto label_6;
                                                                     | label_16:
    0x0000d3a4 mov r2, r5                                            |     r2 = r5;
    0x0000d3a6 movs r1, 0xf                                          |     r1 = 0xf;
    0x0000d3a8 mov r0, r8                                            |     r0 = r8;
    0x0000d3aa blx 0x67f4                                            |     fcn_000067f4 ();
    0x0000d3ae b 0xd37e                                              |     goto label_6;
                                                                     | label_25:
    0x0000d3b0 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000d3b2 ldr.w r2, [r2, fp]                                    |     r2 = *((r2 + fp));
    0x0000d3b6 strb r0, [r2]                                         |     *(r2) = r0;
    0x0000d3b8 b 0xd2d0                                              |     goto label_7;
                                                                     | label_18:
    0x0000d3ba cmp.w fp, 0                                           |     
    0x0000d3be mov r2, r0                                            |     r2 = r0;
    0x0000d3c0 ite le                                                |     
                                                                     |     if (fp > 0) {
    0x0000d3c2 movle r1, 0x19                                        |         r1 = 0x19;
                                                                     |     }
                                                                     |     if (fp <= 0) {
    0x0000d3c4 movgt r1, 0x17                                        |         r1 = 0x17;
                                                                     |     }
    0x0000d3c6 mov r0, r8                                            |     r0 = r8;
    0x0000d3c8 mov r4, ip                                            |     r4 = ip;
    0x0000d3ca movs r5, 0xc                                          |     r5 = 0xc;
    0x0000d3cc blx 0x6164                                            |     fcn_00006164 ();
    0x0000d3d0 b 0xd348                                              |     goto label_8;
                                                                     | label_20:
    0x0000d3d2 mov r0, r8                                            |     r0 = r8;
    0x0000d3d4 movs r2, 0                                            |     r2 = 0;
    0x0000d3d6 movs r1, 0x16                                         |     r1 = 0x16;
    0x0000d3d8 blx 0x6164                                            |     fcn_00006164 ();
    0x0000d3dc mov r0, r5                                            |     r0 = r5;
    0x0000d3de blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d3e2 b 0xd344                                              |     goto label_9;
                                                                     | label_22:
    0x0000d3e4 mov r2, r0                                            |     r2 = r0;
    0x0000d3e6 movs r1, 0x17                                         |     r1 = 0x17;
    0x0000d3e8 mov r0, r8                                            |     r0 = r8;
    0x0000d3ea blx 0x6164                                            |     fcn_00006164 ();
    0x0000d3ee b 0xd344                                              |     goto label_9;
                                                                     | label_28:
    0x0000d3f0 mov r3, r2                                            |     r3 = r2;
    0x0000d3f2 mov r2, r5                                            |     r2 = r5;
    0x0000d3f4 mov r5, r0                                            |     r5 = r0;
    0x0000d3f6 mov r0, r3                                            |     r0 = r3;
    0x0000d3f8 str r2, [sp]                                          |     *(sp) = r2;
    0x0000d3fa blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d3fe ldr r2, [sp]                                          |     r2 = *(sp);
    0x0000d400 str r5, [sp, 0x10]                                    |     var_10h = r5;
                                                                     |     if (r2 == 0) {
    0x0000d402 cbz r2, 0xd444                                        |         goto label_30;
                                                                     |     }
                                                                     | label_10:
    0x0000d404 mov r1, r4                                            |     r1 = r4;
    0x0000d406 movs r0, 2                                            |     r0 = 2;
    0x0000d408 blx 0x5c60                                            |     r0 = fcn_00005c60 ();
    0x0000d40c mov r5, r0                                            |     r5 = r0;
    0x0000d40e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d410 beq 0xd348                                            |         goto label_8;
                                                                     |     }
                                                                     | label_11:
    0x0000d412 movs r2, 0                                            |     r2 = 0;
    0x0000d414 movs r1, 0xf                                          |     r1 = 0xf;
    0x0000d416 mov r0, r8                                            |     r0 = r8;
    0x0000d418 movs r5, 0xc                                          |     r5 = 0xc;
    0x0000d41a blx 0x67f4                                            |     fcn_000067f4 ();
    0x0000d41e b 0xd348                                              |     goto label_8;
                                                                     | label_24:
    0x0000d420 mov r0, r8                                            |     r0 = r8;
    0x0000d422 movs r2, 0                                            |     r2 = 0;
    0x0000d424 movs r1, 0x18                                         |     r1 = 0x18;
    0x0000d426 blx 0x6164                                            |     fcn_00006164 ();
    0x0000d42a mov r0, r4                                            |     r0 = r4;
    0x0000d42c blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d430 b 0xd344                                              |     goto label_9;
                                                                     | label_26:
    0x0000d432 mov r2, r0                                            |     r2 = r0;
    0x0000d434 movs r1, 0x19                                         |     r1 = 0x19;
    0x0000d436 mov r0, r8                                            |     r0 = r8;
    0x0000d438 blx 0x6164                                            |     fcn_00006164 ();
    0x0000d43c b 0xd344                                              |     goto label_9;
                                                                     | label_27:
    0x0000d43e blx 0x5c3c                                            |     fcn_00005c3c ();
    0x0000d442 str r5, [sp, 0x10]                                    |     var_10h = r5;
                                                                     | label_30:
    0x0000d444 blx 0x629c                                            |     r0 = fcn_0000629c ();
    0x0000d448 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000d44a beq 0xd404                                            |         goto label_10;
                                                                     |     }
    0x0000d44c b 0xd412                                              |     goto label_11;
                                                                     | label_29:
    0x0000d44e blx 0x5cb4                                            |     fcn_00005cb4 ();
    0x0000d452 nop                                                   |     
    0x0000d454 ldrb r2, [r1, 5]                                      |     r2 = *((r1 + 5));
    0x0000d456 movs r0, r0                                           |     
    0x0000d458 lsls r4, r2, 0x16                                     |     r4 = r2 << 0x16;
    0x0000d45a movs r0, r0                                           |     
    0x0000d45c ldrh r6, [r7, r2]                                     |     r6 = *((r7 + r2));
    0x0000d45e movs r0, r0                                           |     
    0x0000d460 ldr r1, [pc, 0x3a0]                                   |     r1 = *(0xd804);
    0x0000d462 movs r0, r0                                           |     
    0x0000d464 ldr r1, [pc, 0x140]                                   |     r1 = *(0xd5a8);
    0x0000d466 movs r0, r0                                           |     
    0x0000d468 strb r4, [r7, 0x1b]                                   |     *((r7 + 0x1b)) = r4;
    0x0000d46a movs r0, 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/libimpl_wsd_tds.so @ 0xf30c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.__tds__SetDynamicDNS ()                          | void tds_SetDynamicDNS (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     char * * endptr;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000f30c blmi 0xfe2a1d38                                   |     __asm ("blmi aav.0x00005742");
    0x0000f310 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0000f314 mov r4, r1                                        |     r4 = r1;
    0x0000f316 add r2, pc                                        |     r2 += pc;
    0x0000f318 ldr r1, [pc, 0x220]                               |     
    0x0000f31a sub sp, 0x10                                      |     
    0x0000f31c mov r6, r0                                        |     r6 = r0;
    0x0000f31e ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0000f320 add r1, pc                                        |     r1 = 0x1e860;
    0x0000f322 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0000f324 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000f326 mov.w r3, 0                                       |     r3 = 0;
    0x0000f32a blx 0x59d0                                        |     r0 = wssecurity_uh_allowed_access ();
    0x0000f32e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f330 beq.w 0xf504                                      |         goto label_11;
                                                                 |     }
    0x0000f334 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0000f336 beq.w 0xf510                                      |         goto label_12;
                                                                 |     }
    0x0000f33a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0000f33c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000f33e beq 0xf3c2                                        |         goto label_13;
                                                                 |     }
    0x0000f340 ldr r1, [pc, 0x1fc]                               |     
    0x0000f342 ldr r0, [pc, 0x200]                               |     
    0x0000f344 add r1, pc                                        |     r1 = 0x1e888;
    0x0000f346 add r0, pc                                        |     r0 = 0x1e890;
    0x0000f348 blx 0x6110                                        |     r0 = fcn_00006110 ();
    0x0000f34c mov r5, r0                                        |     r5 = r0;
                                                                 | label_2:
    0x0000f34e ldr.w sb, [r4, 4]                                 |     sb = *((r4 + 4));
    0x0000f352 cmp r5, 0                                         |     
    0x0000f354 itete eq                                          |     
                                                                 |     if (r5 != 0) {
    0x0000f356 moveq r7, r5                                      |         r7 = r5;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x0000f358 movne r7, 1                                       |         r7 = 1;
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x0000f35a moveq r8, r5                                      |         r8 = r5;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x0000f35c movne r8, 2                                       |         r8 = 2;
                                                                 |     }
    0x0000f360 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x0000f364 beq 0xf414                                        |         goto label_14;
                                                                 |     }
    0x0000f366 mov r0, sb                                        |     r0 = sb;
    0x0000f368 blx 0x61f4                                        |     r0 = fcn_000061f4 ();
    0x0000f36c cmp r0, 0xff                                      |     
                                                                 |     if (r0 > 0xff) {
    0x0000f36e bhi 0xf406                                        |         goto label_7;
                                                                 |     }
    0x0000f370 add.w sl, sb, r0                                  |     sl = sb + r0;
    0x0000f374 ldrb r2, [sl, -0x1]                               |     r2 = *((sl - 0x1));
    0x0000f378 cmp r2, 0x2d                                      |     
                                                                 |     if (r2 == 0x2d) {
    0x0000f37a beq 0xf406                                        |         goto label_7;
                                                                 |     }
    0x0000f37c ldrb.w r3, [sb]                                   |     r3 = *(sb);
    0x0000f380 subs r3, 0x2d                                     |     r3 -= 0x2d;
    0x0000f382 cmp r2, 0x2e                                      |     
    0x0000f384 it ne                                             |     
                                                                 |     if (r2 != 0x2e) {
    0x0000f386 cmpne r3, 1                                       |         __asm ("cmpne r3, 1");
                                                                 |     }
                                                                 |     if (r2 < 0x2e) {
    0x0000f388 bls 0xf406                                        |         goto label_7;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x0000f38a cbz r0, 0xf3d2                                    |         goto label_15;
                                                                 |     }
    0x0000f38c blx 0x5c14                                        |     fcn_00005c14 ();
    0x0000f390 mov r2, sb                                        |     r2 = sb;
    0x0000f392 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0000f394 b 0xf3aa                                          |     
                                                                 |     while (r1 >= r1) {
    0x0000f396 cmp r3, 0x2d                                      |         
                                                                 |         if (r3 == 0x2d) {
    0x0000f398 beq.w 0xf4de                                      |             goto label_16;
                                                                 |         }
    0x0000f39c cmp r3, 0x2e                                      |         
                                                                 |         if (r3 != 0x2e) {
    0x0000f39e bne 0xf406                                        |             goto label_7;
                                                                 |         }
                                                                 | label_1:
    0x0000f3a0 ldrb r3, [r2]                                     |         r3 = *(r2);
    0x0000f3a2 cmp r3, 0x2d                                      |         
                                                                 |         if (r3 == 0x2d) {
    0x0000f3a4 beq 0xf406                                        |             goto label_7;
                                                                 |         }
                                                                 | label_0:
    0x0000f3a6 cmp sl, r2                                        |         
                                                                 |         if (sl == r2) {
    0x0000f3a8 beq 0xf3d2                                        |             goto label_15;
                                                                 |         }
    0x0000f3aa ldrb r3, [r2], 1                                  |         r3 = *(r2);
                                                                 |         r2++;
    0x0000f3ae ldrh.w r1, [r0, r3, lsl 1]                        |         offset_0 = r3 << 1;
                                                                 |         r1 = *((r0 + offset_0));
    0x0000f3b2 lsls r1, r1, 0x1c                                 |         r1 <<= 0x1c;
    0x0000f3b4 bpl 0xf396                                        |         
                                                                 |     }
    0x0000f3b6 cmp r3, 0x2d                                      |     
                                                                 |     if (r3 == 0x2d) {
    0x0000f3b8 beq.w 0xf4de                                      |         goto label_16;
                                                                 |     }
    0x0000f3bc cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0000f3be bne 0xf3a6                                        |         goto label_0;
                                                                 |     }
    0x0000f3c0 b 0xf3a0                                          |     goto label_1;
                                                                 | label_13:
    0x0000f3c2 ldr r1, [pc, 0x184]                               |     
    0x0000f3c4 ldr r0, [pc, 0x184]                               |     
    0x0000f3c6 add r1, pc                                        |     r1 = 0x1e914;
    0x0000f3c8 add r0, pc                                        |     r0 = 0x1e918;
    0x0000f3ca blx 0x6110                                        |     r0 = fcn_00006110 ();
    0x0000f3ce mov r5, r0                                        |     r5 = r0;
    0x0000f3d0 b 0xf34e                                          |     goto label_2;
                                                                 | label_15:
    0x0000f3d2 ldr r1, [pc, 0x17c]                               |     
    0x0000f3d4 mov r0, sb                                        |     r0 = sb;
    0x0000f3d6 movs r2, 0                                        |     r2 = 0;
    0x0000f3d8 add r1, pc                                        |     r1 = 0x1e92e;
    0x0000f3da blx 0x5f78                                        |     r0 = fcn_00005f78 ();
    0x0000f3de mov sb, r0                                        |     sb = r0;
    0x0000f3e0 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0000f3e2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f3e4 beq.w 0xf51c                                      |         goto label_17;
                                                                 |     }
    0x0000f3e8 mov sl, sb                                        |     sl = sb;
    0x0000f3ea b 0xf3f6                                          |     
                                                                 |     while (r0 < 0x3e) {
    0x0000f3ec ldr r0, [sl, 4]!                                  |         r0 = *((sl += 4));
    0x0000f3f0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000f3f2 beq.w 0xf51c                                      |             goto label_17;
                                                                 |         }
    0x0000f3f6 blx 0x61f4                                        |         fcn_000061f4 ();
    0x0000f3fa subs r0, 1                                        |         r0--;
    0x0000f3fc cmp r0, 0x3e                                      |         
    0x0000f3fe bls 0xf3ec                                        |         
                                                                 |     }
    0x0000f400 mov r0, sb                                        |     r0 = sb;
    0x0000f402 blx 0x693c                                        |     cert_prm_get_int ();
                                                                 | label_7:
    0x0000f406 adds r7, 1                                        |     r7++;
    0x0000f408 mov.w r8, 2                                       |     r8 = 2;
                                                                 |     if (r5 != 0) {
                                                                 | label_10:
    0x0000f40c cbz r5, 0xf414                                    |         
    0x0000f40e adds r7, 1                                        |         r7++;
    0x0000f410 mov.w r8, 2                                       |         r8 = 2;
                                                                 |     }
                                                                 | label_14:
    0x0000f414 ldr.w sb, [r4]                                    |     sb = *(r4);
    0x0000f418 cmp.w sb, 2                                       |     
                                                                 |     if (sb == 2) {
    0x0000f41c beq 0xf4e8                                        |         goto label_18;
                                                                 |     }
                                                                 | label_8:
    0x0000f41e ldr r5, [r4, 8]                                   |     r5 = *((r4 + 8));
    0x0000f420 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000f422 beq 0xf4c4                                        |         goto label_19;
                                                                 |     }
                                                                 | label_9:
    0x0000f424 mov.w sl, 0                                       |     sl = 0;
    0x0000f428 str.w sl, [sp, 4]                                 |     __asm ("str.w sl, [var_4h]");
    0x0000f42c blx 0x5dc8                                        |     fcn_00005dc8 ();
    0x0000f430 add r1, sp, 8                                     |     r1 += endptr;
    0x0000f432 mov sb, r0                                        |     sb = r0;
    0x0000f434 str.w sl, [r0]                                    |     __asm ("str.w sl, [r0]");
    0x0000f438 mov r0, r5                                        |     r0 = r5;
    0x0000f43a blx 0x5a90                                        |     strtod (r0, r1);
    0x0000f43e ldr.w r3, [sb]                                    |     r3 = *(sb);
                                                                 |     if (r3 != 0) {
    0x0000f442 cbnz r3, 0xf490                                   |         goto label_20;
                                                                 |     }
    0x0000f444 ldr r2, [sp, 8]                                   |     r2 = endptr;
    0x0000f446 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0000f448 ldrb r1, [r2]                                     |     r1 = *(r2);
                                                                 |     if (r1 != 0) {
    0x0000f44a cbnz r1, 0xf492                                   |         goto label_21;
                                                                 |     }
    0x0000f44c cmp r5, r2                                        |     
                                                                 |     if (r5 == r2) {
    0x0000f44e beq 0xf492                                        |         goto label_21;
                                                                 |     }
    0x0000f450 vcmpe.f64 d0, 0                                   |     __asm ("vcmpe.f64 d0, 0");
    0x0000f454 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r5 < r2) {
    0x0000f458 bmi 0xf492                                        |         goto label_21;
                                                                 |     }
    0x0000f45a ldr r0, [pc, 0xf8]                                |     
    0x0000f45c mov r1, r3                                        |     r1 = r3;
    0x0000f45e add r0, pc                                        |     r0 = 0x1e9b8;
    0x0000f460 blx 0x6110                                        |     r0 = fcn_00006110 ();
                                                                 |     if (r0 == 0) {
    0x0000f464 cbz r0, 0xf4c4                                    |         goto label_19;
                                                                 |     }
                                                                 |     do {
                                                                 | label_3:
    0x0000f466 blx 0x59b8                                        |         wsd_util_sync_parameters ();
                                                                 | label_5:
    0x0000f46a movs r2, 0                                        |         r2 = 0;
    0x0000f46c movs r1, 0xa                                      |         r1 = 0xa;
    0x0000f46e mov r0, r6                                        |         r0 = r6;
    0x0000f470 blx 0x67f4                                        |         fcn_000067f4 ();
                                                                 | label_6:
    0x0000f474 movs r0, 0xc                                      |         r0 = 0xc;
                                                                 | label_4:
    0x0000f476 ldr r2, [pc, 0xe0]                                |         
    0x0000f478 ldr r3, [pc, 0xbc]                                |         r3 = *(0xf538);
    0x0000f47a add r2, pc                                        |         r2 = 0x1e9d8;
    0x0000f47c ldr r3, [r2, r3]                                  |         r3 = *(0x1e9d8);
    0x0000f47e ldr r2, [r3]                                      |         r2 = *(0x1e9d8);
    0x0000f480 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000f482 eors r2, r3                                       |         r2 ^= r3;
    0x0000f484 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0000f488 bne 0xf530                                        |             goto label_22;
                                                                 |         }
    0x0000f48a add sp, 0x10                                      |         
    0x0000f48c pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_20:
    0x0000f490 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
                                                                 | label_21:
    0x0000f492 add r1, sp, 4                                     |         r1 += var_4h;
    0x0000f494 mov r0, r3                                        |         r0 = r3;
    0x0000f496 blx 0x5a9c                                        |         r0 = wsd_parse_xsd_duration ();
    0x0000f49a cmp r0, 0                                         |         
    0x0000f49c bne 0xf466                                        |         
                                                                 |     } while (r0 != 0);
    0x0000f49e ldr r1, [sp, 4]                                   |     r1 = var_4h;
    0x0000f4a0 cmp r1, 0                                         |     
                                                                 |     if (r1 < 0) {
    0x0000f4a2 blt 0xf466                                        |         goto label_3;
                                                                 |     }
    0x0000f4a4 ldr r0, [pc, 0xb4]                                |     
    0x0000f4a6 add r0, pc                                        |     r0 = 0x1ea06;
    0x0000f4a8 blx 0x5b50                                        |     r0 = g_strdup_printf ()
    0x0000f4ac mov r4, r0                                        |     r4 = r0;
    0x0000f4ae mov r1, r0                                        |     r1 = r0;
    0x0000f4b0 ldr r0, [pc, 0xac]                                |     
    0x0000f4b2 add r0, pc                                        |     r0 = 0x1ea16;
    0x0000f4b4 blx 0x6110                                        |     r0 = fcn_00006110 ();
    0x0000f4b8 mov r5, r0                                        |     r5 = r0;
    0x0000f4ba mov r0, r4                                        |     r0 = r4;
    0x0000f4bc blx 0x5c3c                                        |     fcn_00005c3c ();
    0x0000f4c0 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0000f4c2 bne 0xf466                                        |         goto label_3;
                                                                 |     }
                                                                 | label_19:
    0x0000f4c4 blx 0x59b8                                        |     r0 = wsd_util_sync_parameters ();
    0x0000f4c8 orrs.w r0, r0, r8                                 |     r0 |= r8;
                                                                 |     if (r0 == r0) {
    0x0000f4cc beq 0xf476                                        |         goto label_4;
                                                                 |     }
    0x0000f4ce cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0000f4d0 bne 0xf46a                                        |         goto label_5;
                                                                 |     }
    0x0000f4d2 mov r2, r7                                        |     r2 = r7;
    0x0000f4d4 movs r1, 0xf                                      |     r1 = 0xf;
    0x0000f4d6 mov r0, r6                                        |     r0 = r6;
    0x0000f4d8 blx 0x67f4                                        |     fcn_000067f4 ();
    0x0000f4dc b 0xf474                                          |     goto label_6;
                                                                 | label_16:
    0x0000f4de ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0000f4e0 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0000f4e2 bne.w 0xf3a6                                      |         goto label_0;
                                                                 |     }
    0x0000f4e6 b 0xf406                                          |     goto label_7;
                                                                 | label_18:
    0x0000f4e8 ldr r1, [pc, 0x78]                                |     
    0x0000f4ea ldr r0, [pc, 0x7c]                                |     
    0x0000f4ec add r1, pc                                        |     r1 = 0x1ea54;
    0x0000f4ee add r0, pc                                        |     r0 = 0x1ea5c;
    0x0000f4f0 blx 0x6110                                        |     r0 = fcn_00006110 ();
    0x0000f4f4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f4f6 beq 0xf41e                                        |         goto label_8;
                                                                 |     }
    0x0000f4f8 ldr r5, [r4, 8]                                   |     r5 = *((r4 + 8));
    0x0000f4fa adds r7, 1                                        |     r7++;
    0x0000f4fc mov r8, sb                                        |     r8 = sb;
    0x0000f4fe cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0000f500 bne 0xf424                                        |         goto label_9;
                                                                 |     }
    0x0000f502 b 0xf466                                          |     goto label_3;
                                                                 | label_11:
    0x0000f504 mov r2, r0                                        |     r2 = r0;
    0x0000f506 movs r1, 0xd                                      |     r1 = 0xd;
    0x0000f508 mov r0, r6                                        |     r0 = r6;
    0x0000f50a blx 0x67f4                                        |     fcn_000067f4 ();
    0x0000f50e b 0xf474                                          |     goto label_6;
                                                                 | label_12:
    0x0000f510 mov r2, r4                                        |     r2 = r4;
    0x0000f512 movs r1, 3                                        |     r1 = 3;
    0x0000f514 mov r0, r6                                        |     r0 = r6;
    0x0000f516 blx 0x67f4                                        |     fcn_000067f4 ();
    0x0000f51a b 0xf474                                          |     goto label_6;
                                                                 | label_17:
    0x0000f51c mov r0, sb                                        |     r0 = sb;
    0x0000f51e blx 0x693c                                        |     cert_prm_get_int ();
    0x0000f522 ldr r0, [pc, 0x48]                                |     
    0x0000f524 ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0000f526 add r0, pc                                        |     r0 = 0x1ea98;
    0x0000f528 blx 0x6110                                        |     r0 = fcn_00006110 ();
    0x0000f52c mov r5, r0                                        |     r5 = r0;
    0x0000f52e b 0xf40c                                          |     goto label_10;
                                                                 | label_22:
    0x0000f530 blx 0x5cb4                                        |     fcn_00005cb4 ();
    0x0000f534 ldrsb r2, [r0, r5]                                |     r2 = *((r0 + r5));
    0x0000f536 movs r0, r0                                       |     
    0x0000f538 lsls r4, r2, 0x16                                 |     r4 = r2 << 0x16;
    0x0000f53a movs r0, r0                                       |     
    0x0000f53c subs r6, 0x34                                     |     r6 -= 0x34;
    0x0000f53e movs r0, r0                                       |     
    0x0000f540 cmp r5, 0x88                                      |     
    0x0000f542 movs r0, r0                                       |     
    0x0000f544 adds r0, 0xba                                     |     r0 += 0xba;
    0x0000f546 movs r0, r0                                       |     
    0x0000f548 cmp r5, 2                                         |     
    0x0000f54a movs r0, r0                                       |     
    0x0000f54c adds r0, 0x38                                     |     r0 += 0x38;
    0x0000f54e movs r0, r0                                       |     
    0x0000f550 subs r5, 0x90                                     |     r5 -= 0x90;
    0x0000f552 movs r0, r0                                       |     
    0x0000f554 cmp r7, 0xe2                                      |     
    0x0000f556 movs r0, r0                                       |     
    0x0000f558 strb r6, [r3, r7]                                 |     *((r3 + r7)) = r6;
    0x0000f55a movs r0, r0                                       |     
    0x0000f55c adds r2, 0x4a                                     |     r2 += 0x4a;
    0x0000f55e movs r0, r0                                       |     
    0x0000f560 cmp r7, 0x8e                                      |     
    0x0000f562 movs r0, r0                                       |     
    0x0000f564 movs r7, 0x48                                     |     r7 = 0x48;
    0x0000f566 movs r0, r0                                       |     
    0x0000f568 cmp r7, 0x32                                      |     
    0x0000f56a movs r0, r0                                       |     
    0x0000f56c cmp r6, 0xfa                                      |     
    0x0000f56e movs r0, 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/libimpl_wsd_tds.so @ 0xf618 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.__tds__SetIPAddressFilter ()                     | void tds_SetIPAddressFilter (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000f618 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0000f61c mov r4, r1                                        |     r4 = r1;
    0x0000f61e ldr r1, [pc, 0x228]                               |     
    0x0000f620 sub sp, 0x14                                      |     
    0x0000f622 str r0, [sp]                                      |     *(sp) = r0;
    0x0000f624 add r1, pc                                        |     r1 = 0x1ee72;
    0x0000f626 blx 0x59d0                                        |     r0 = wssecurity_uh_allowed_access ();
    0x0000f62a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f62c beq.w 0xf7b4                                      |         goto label_11;
                                                                 |     }
    0x0000f630 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0000f632 beq.w 0xf7a8                                      |         goto label_12;
                                                                 |     }
    0x0000f636 ldr r0, [r4]                                      |     r0 = *(r4);
    0x0000f638 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f63a beq.w 0xf7a8                                      |         goto label_12;
                                                                 |     }
    0x0000f63e ldr r3, [r0]                                      |     r3 = *(r0);
                                                                 |     if (r3 != 0) {
    0x0000f640 cbz r3, 0xf646                                    |         
    0x0000f642 cmp r3, 1                                         |         
                                                                 |         if (r3 != 1) {
    0x0000f644 bne 0xf732                                        |             goto label_13;
                                                                 |         }
                                                                 |     }
    0x0000f646 ldr r2, [r0, 0x10]                                |     r2 = *((r0 + 0x10));
    0x0000f648 ldr.w sb, [r0, 8]                                 |     sb = *((r0 + 8));
    0x0000f64c str r2, [sp, 4]                                   |     var_4h = r2;
    0x0000f64e cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x0000f652 beq.w 0xf766                                      |         goto label_14;
                                                                 |     }
    0x0000f656 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x0000f658 ldr.w r8, [r0, 4]                                 |     r8 = *((r0 + 4));
    0x0000f65c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000f65e beq.w 0xf7cc                                      |         goto label_15;
                                                                 |     }
                                                                 | label_2:
    0x0000f662 ldr r2, [r0, 0xc]                                 |     r2 = *((r0 + 0xc));
    0x0000f664 add.w r0, r8, r2                                  |     r0 = r8 + r2;
    0x0000f668 str r2, [sp, 8]                                   |     var_8h = r2;
                                                                 | label_4:
    0x0000f66a cmp.w r0, 0x100                                   |     
                                                                 |     if (r0 > 0x100) {
    0x0000f66e bgt.w 0xf7c0                                      |         goto label_16;
                                                                 |     }
    0x0000f672 adds r0, 1                                        |     r0++;
    0x0000f674 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000f676 lsls r0, r0, 2                                    |     r0 <<= 2;
    0x0000f678 blx 0x5b38                                        |     g_malloc0 ();
    0x0000f67c cmp.w r8, 0                                       |     
    0x0000f680 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0000f682 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r8 <= 0) {
    0x0000f684 ble.w 0xf812                                      |         goto label_17;
                                                                 |     }
    0x0000f688 ldr.w fp, [pc, 0x1c0]                             |     
    0x0000f68c movs r4, 0                                        |     r4 = 0;
    0x0000f68e mov r6, r4                                        |     r6 = r4;
    0x0000f690 add.w sl, sb, 4                                   |     sl = sb + 4;
    0x0000f694 add fp, pc                                        |     fp = 0x1eee4;
    0x0000f696 b 0xf6a6                                          |     
                                                                 |     while (r0 == 0) {
    0x0000f698 adds r4, 1                                        |         r4++;
    0x0000f69a str.w r5, [r7, r6, lsl 2]                         |         __asm ("str.w r5, [r7, r6, lsl 2]");
    0x0000f69e cmp r4, r8                                        |         
    0x0000f6a0 add.w r6, r6, 1                                   |         r6++;
                                                                 |         if (r4 == r8) {
    0x0000f6a4 beq 0xf6d8                                        |             goto label_18;
                                                                 |         }
                                                                 | label_0:
    0x0000f6a6 ldr.w r2, [sl, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         r2 = *((sl + offset_0));
    0x0000f6aa mov r0, fp                                        |         r0 = fp;
    0x0000f6ac ldr.w r1, [sb, r4, lsl 3]                         |         offset_1 = r4 << 3;
                                                                 |         r1 = *((sb + offset_1));
    0x0000f6b0 blx 0x5b50                                        |         r0 = g_strdup_printf ()
    0x0000f6b4 mov r5, r0                                        |         r5 = r0;
    0x0000f6b6 blx 0x6920                                        |         r0 = fcn_00006920 ();
    0x0000f6ba mov r2, r0                                        |         r2 = r0;
    0x0000f6bc mov r1, r5                                        |         r1 = r5;
    0x0000f6be cmp r2, 1                                         |         
    0x0000f6c0 mov r0, r7                                        |         r0 = r7;
                                                                 |         if (r2 != 1) {
    0x0000f6c2 bne 0xf746                                        |             goto label_19;
                                                                 |         }
    0x0000f6c4 blx 0x65b4                                        |         r0 = fcn_000065b4 ();
    0x0000f6c8 cmp r0, 0                                         |         
    0x0000f6ca beq 0xf698                                        |         
                                                                 |     }
    0x0000f6cc mov r0, r5                                        |     r0 = r5;
    0x0000f6ce adds r4, 1                                        |     r4++;
    0x0000f6d0 blx 0x5c3c                                        |     fcn_00005c3c ();
    0x0000f6d4 cmp r4, r8                                        |     
                                                                 |     if (r4 != r8) {
    0x0000f6d6 bne 0xf6a6                                        |         goto label_0;
                                                                 |     }
                                                                 | label_18:
    0x0000f6d8 ldrd r2, r3, [sp, 8]                              |     __asm ("ldrd r2, r3, [var_8h]");
    0x0000f6dc cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0000f6de ble.w 0xf7e8                                      |         goto label_20;
                                                                 |     }
                                                                 | label_8:
    0x0000f6e2 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x0000f6e4 movs r5, 0                                        |     r5 = 0;
    0x0000f6e6 ldr.w fp, [pc, 0x168]                             |     
    0x0000f6ea ldr.w sb, [sp, 8]                                 |     sb = var_8h;
    0x0000f6ee add.w sl, r2, 4                                   |     sl = r2 + 4;
    0x0000f6f2 mov r8, r2                                        |     r8 = r2;
    0x0000f6f4 add fp, pc                                        |     fp = 0x1ef4a;
    0x0000f6f6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000f6f8 b 0xf706                                          |     
                                                                 |     while (r0 == 0) {
    0x0000f6fa str.w r4, [r7, r6, lsl 2]                         |         __asm ("str.w r4, [r7, r6, lsl 2]");
    0x0000f6fe adds r6, 1                                        |         r6++;
                                                                 | label_1:
    0x0000f700 adds r5, 1                                        |         r5++;
    0x0000f702 cmp sb, r5                                        |         
                                                                 |         if (sb <= r5) {
    0x0000f704 ble 0xf7e6                                        |             goto label_21;
                                                                 |         }
    0x0000f706 ldr.w r1, [r8, r5, lsl 3]                         |         offset_2 = r5 << 3;
                                                                 |         r1 = *((r8 + offset_2));
    0x0000f70a mov r0, fp                                        |         r0 = fp;
    0x0000f70c ldr.w r2, [sl, r5, lsl 3]                         |         offset_3 = r5 << 3;
                                                                 |         r2 = *((sl + offset_3));
    0x0000f710 blx 0x5b50                                        |         r0 = g_strdup_printf ()
    0x0000f714 mov r4, r0                                        |         r4 = r0;
    0x0000f716 blx 0x6920                                        |         r0 = fcn_00006920 ();
    0x0000f71a cmp r0, 2                                         |         
    0x0000f71c mov r1, r4                                        |         r1 = r4;
                                                                 |         if (r0 != 2) {
    0x0000f71e bne 0xf7d4                                        |             goto label_22;
                                                                 |         }
    0x0000f720 mov r0, r7                                        |         r0 = r7;
    0x0000f722 blx 0x65b4                                        |         r0 = fcn_000065b4 ();
    0x0000f726 cmp r0, 0                                         |         
    0x0000f728 beq 0xf6fa                                        |         
                                                                 |     }
    0x0000f72a mov r0, r4                                        |     r0 = r4;
    0x0000f72c blx 0x5c3c                                        |     fcn_00005c3c ();
    0x0000f730 b 0xf700                                          |     goto label_1;
                                                                 | label_13:
    0x0000f732 ldr r0, [sp]                                      |     r0 = *(sp);
    0x0000f734 movs r2, 0                                        |     r2 = 0;
    0x0000f736 movs r1, 0xa                                      |     r1 = 0xa;
    0x0000f738 blx 0x67f4                                        |     fcn_000067f4 ();
                                                                 | label_3:
    0x0000f73c movs r4, 0xc                                      |     r4 = 0xc;
    0x0000f73e mov r0, r4                                        |     r0 = r4;
    0x0000f740 add sp, 0x14                                      |     
    0x0000f742 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_19:
    0x0000f746 ldr r0, [sp]                                      |     r0 = *(sp);
    0x0000f748 movs r2, 0                                        |     r2 = 0;
    0x0000f74a movs r1, 0x16                                     |     r1 = 0x16;
    0x0000f74c blx 0x6164                                        |     fcn_00006164 ();
    0x0000f750 mov r0, r5                                        |     r0 = r5;
    0x0000f752 blx 0x5c3c                                        |     fcn_00005c3c ();
                                                                 | label_5:
    0x0000f756 movs r4, 0xc                                      |     r4 = 0xc;
                                                                 | label_7:
    0x0000f758 mov r0, r7                                        |     r0 = r7;
    0x0000f75a blx 0x693c                                        |     cert_prm_get_int ();
    0x0000f75e mov r0, r4                                        |     r0 = r4;
    0x0000f760 add sp, 0x14                                      |     
    0x0000f762 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_14:
    0x0000f766 mov r8, sb                                        |     r8 = sb;
    0x0000f768 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0000f76a bne.w 0xf662                                      |         goto label_2;
                                                                 |     }
    0x0000f76e movs r0, 4                                        |     r0 = 4;
    0x0000f770 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000f772 blx 0x5b38                                        |     r0 = g_malloc0 ();
    0x0000f776 mov r7, r0                                        |     r7 = r0;
    0x0000f778 blx 0x64dc                                        |     fcn_000064dc ();
    0x0000f77c ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0000f77e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000f780 bne 0xf82a                                        |         goto label_23;
                                                                 |     }
                                                                 |     do {
                                                                 | label_9:
    0x0000f782 str r3, [sp, 4]                                   |         var_4h = r3;
    0x0000f784 blx 0x629c                                        |         fcn_0000629c ();
    0x0000f788 ldr r3, [sp, 4]                                   |         r3 = var_4h;
                                                                 |         if (r0 == 0) {
    0x0000f78a cbnz r0, 0xf79a                                   |             
    0x0000f78c mov r1, r7                                        |             r1 = r7;
    0x0000f78e mov r0, r3                                        |             r0 = r3;
    0x0000f790 blx 0x5c60                                        |             r0 = fcn_00005c60 ();
    0x0000f794 mov r4, r0                                        |             r4 = r0;
    0x0000f796 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0000f798 beq 0xf80c                                        |                 goto label_10;
                                                                 |             }
                                                                 |         }
                                                                 | label_6:
    0x0000f79a ldr r0, [sp]                                      |         r0 = *(sp);
    0x0000f79c movs r2, 0                                        |         r2 = 0;
    0x0000f79e movs r1, 0xf                                      |         r1 = 0xf;
    0x0000f7a0 movs r4, 0xc                                      |         r4 = 0xc;
    0x0000f7a2 blx 0x67f4                                        |         fcn_000067f4 ();
    0x0000f7a6 b 0xf80c                                          |         goto label_10;
                                                                 | label_12:
    0x0000f7a8 ldr r0, [sp]                                      |         r0 = *(sp);
    0x0000f7aa movs r2, 0                                        |         r2 = 0;
    0x0000f7ac movs r1, 3                                        |         r1 = 3;
    0x0000f7ae blx 0x67f4                                        |         fcn_000067f4 ();
    0x0000f7b2 b 0xf73c                                          |         goto label_3;
                                                                 | label_11:
    0x0000f7b4 mov r2, r0                                        |         r2 = r0;
    0x0000f7b6 movs r1, 0xd                                      |         r1 = 0xd;
    0x0000f7b8 ldr r0, [sp]                                      |         r0 = *(sp);
    0x0000f7ba blx 0x67f4                                        |         fcn_000067f4 ();
    0x0000f7be b 0xf73c                                          |         goto label_3;
                                                                 | label_16:
    0x0000f7c0 ldr r0, [sp]                                      |         r0 = *(sp);
    0x0000f7c2 movs r2, 0                                        |         r2 = 0;
    0x0000f7c4 movs r1, 0x1d                                     |         r1 = 0x1d;
    0x0000f7c6 blx 0x6164                                        |         fcn_00006164 ();
    0x0000f7ca b 0xf73c                                          |         goto label_3;
                                                                 | label_15:
    0x0000f7cc ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x0000f7ce mov r0, r8                                        |         r0 = r8;
    0x0000f7d0 str r2, [sp, 8]                                   |         var_8h = r2;
    0x0000f7d2 b 0xf66a                                          |         goto label_4;
                                                                 | label_22:
    0x0000f7d4 ldr r0, [sp]                                      |         r0 = *(sp);
    0x0000f7d6 movs r2, 0                                        |         r2 = 0;
    0x0000f7d8 movs r1, 0x18                                     |         r1 = 0x18;
    0x0000f7da blx 0x6164                                        |         fcn_00006164 ();
    0x0000f7de mov r0, r4                                        |         r0 = r4;
    0x0000f7e0 blx 0x5c3c                                        |         fcn_00005c3c ();
    0x0000f7e4 b 0xf756                                          |         goto label_5;
                                                                 | label_21:
    0x0000f7e6 ldr r3, [sp, 4]                                   |         r3 = var_4h;
                                                                 | label_20:
    0x0000f7e8 str r3, [sp, 4]                                   |         var_4h = r3;
    0x0000f7ea blx 0x64dc                                        |         fcn_000064dc ();
    0x0000f7ee ldr r3, [sp, 4]                                   |         r3 = var_4h;
                                                                 |         if (r0 != 0) {
    0x0000f7f0 cbnz r0, 0xf82a                                   |             goto label_23;
                                                                 |         }
    0x0000f7f2 cmp r6, 0                                         |         
    0x0000f7f4 beq 0xf782                                        |         
                                                                 |     } while (r6 == 0);
    0x0000f7f6 mov r1, r7                                        |     r1 = r7;
    0x0000f7f8 mov r0, r3                                        |     r0 = r3;
    0x0000f7fa blx 0x5c60                                        |     r0 = fcn_00005c60 ();
    0x0000f7fe mov r5, r0                                        |     r5 = r0;
    0x0000f800 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000f802 bne 0xf79a                                        |         goto label_6;
                                                                 |     }
    0x0000f804 blx 0x5d38                                        |     r0 = fcn_00005d38 ();
    0x0000f808 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 != 0) {
    0x0000f80a cbnz r0, 0xf838                                   |         goto label_24;
                                                                 |     }
                                                                 | label_10:
    0x0000f80c blx 0x6884                                        |     fcn_00006884 ();
    0x0000f810 b 0xf758                                          |     goto label_7;
                                                                 | label_17:
    0x0000f812 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x0000f814 cmp r2, 0                                         |     
    0x0000f816 it gt                                             |     
                                                                 |     if (r2 > 0) {
    0x0000f818 movgt r6, 0                                       |         r6 = 0;
                                                                 |         goto label_25;
                                                                 |     }
                                                                 |     if (r2 > 0) {
                                                                 | label_25:
    0x0000f81a bgt.w 0xf6e2                                      |         goto label_8;
                                                                 |     }
    0x0000f81e str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000f820 blx 0x64dc                                        |     fcn_000064dc ();
    0x0000f824 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0000f826 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f828 beq 0xf782                                        |         goto label_9;
                                                                 |     }
                                                                 | label_23:
    0x0000f82a ldr r0, [sp]                                      |     r0 = *(sp);
    0x0000f82c movs r2, 0                                        |     r2 = 0;
    0x0000f82e movs r1, 0xf                                      |     r1 = 0xf;
    0x0000f830 movs r4, 0xc                                      |     r4 = 0xc;
    0x0000f832 blx 0x67f4                                        |     fcn_000067f4 ();
    0x0000f836 b 0xf758                                          |     goto label_7;
                                                                 | label_24:
    0x0000f838 ldr r0, [sp]                                      |     r0 = *(sp);
    0x0000f83a mov r2, r5                                        |     r2 = r5;
    0x0000f83c movs r1, 0xf                                      |     r1 = 0xf;
    0x0000f83e movs r4, 0xc                                      |     r4 = 0xc;
    0x0000f840 blx 0x67f4                                        |     fcn_000067f4 ();
    0x0000f844 b 0xf80c                                          |     goto label_10;
                                                                 | }

[*] Function printf used 10 times libimpl_wsd_tds.so