[*] Binary protection state of libsoap_wsd.so

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


[*] Function sprintf tear down of libsoap_wsd.so

    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2207f8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_axissd__ServiceProviderStatusCode ()        | void soap_out_axissd_ServiceProviderStatusCode (int16_t arg_18h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x002207f8 ssub8mi fp, sp, r8                                    |     __asm ("ssub8mi fp, sp, r8");
    0x002207fc ldr r7, [sp, 0x18]                                    |     r7 = *(arg_18h);
    0x002207fe mov r4, r0                                            |     r4 = r0;
    0x00220800 mov r6, r1                                            |     r6 = r1;
    0x00220802 movw r3, 0x115                                        |     r3 = 0x115;
    0x00220806 mov r1, r2                                            |     r1 = r2;
    0x00220808 mov r2, r5                                            |     r2 = r5;
    0x0022080a blx 0x1e6828                                          |     fcn_001e6828 ();
    0x0022080e mov r3, r7                                            |     r3 = r7;
    0x00220810 mov r2, r0                                            |     r2 = r0;
    0x00220812 mov r1, r6                                            |     r1 = r6;
    0x00220814 mov r0, r4                                            |     r0 = r4;
    0x00220816 blx 0x1d9404                                          |     fcn_001d9404 ();
    0x00220818 ldcl p1, c11, [r6, 0x80]!                             |     __asm ("ldcl p1, c11, [r6, 0x80]!");
                                                                     |     do {
    0x0022081c add.w r4, r4, 0x16000                                 |         r4 += 0x16000;
    0x00220820 ldr.w r0, [r4, 0x184]                                 |         r0 = *((r4 + 0x184));
    0x00220824 pop {r3, r4, r5, r6, r7, pc}                          |         
    0x00220826 ldr r1, [r5]                                          |         r1 = *(r5);
    0x00220828 mov r0, r4                                            |         r0 = r4;
    0x0022082a blx 0x1b9620                                          |         r0 = fcn_001b9620 ();
    0x0022082e mov r1, r0                                            |         r1 = r0;
    0x00220830 mov r0, r4                                            |         r0 = r4;
    0x00220832 blx 0x1d1470                                          |         r0 = fcn_001d1470 ();
    0x00220836 cmp r0, 0                                             |         
    0x00220838 bne 0x22081c                                          |         
                                                                     |     } while (r0 != 0);
    0x0022083a mov r1, r6                                            |     r1 = r6;
    0x0022083c mov r0, r4                                            |     r0 = r4;
    0x0022083e pop.w {r3, r4, r5, r6, r7, lr}                        |     
    0x00220842 b.w 0x1cd900                                          |     return void (*0x1cd900)() ();
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2bc658 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_axissd__ServiceProvider ()                  | void soap_out_axissd_ServiceProvider (int16_t arg_30h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x002bc658 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x002bc65c mov r8, r1                                            |     r8 = r1;
    0x002bc65e ldr r7, [pc, 0x1b8]                                   |     
    0x002bc660 sub sp, 0xc                                           |     
    0x002bc662 mov r5, r3                                            |     r5 = r3;
    0x002bc664 mov r6, r2                                            |     r6 = r2;
    0x002bc666 ldr r1, [pc, 0x1b4]                                   |     
    0x002bc668 adds r3, 0x24                                         |     r3 += 0x24;
    0x002bc66a add r7, pc                                            |     r7 = 0x578e88;
    0x002bc66c mov.w r2, -1                                          |     r2 = -1;
    0x002bc670 str r7, [sp]                                          |     *(sp) = r7;
    0x002bc672 mov r4, r0                                            |     r4 = r0;
    0x002bc674 add r1, pc                                            |     r1 = 0x578e96;
    0x002bc676 ldr.w sb, [sp, 0x30]                                  |     sb = *(arg_30h);
    0x002bc67a blx 0x1dc3cc                                          |     r0 = fcn_001dc3cc ();
    0x002bc67e cbz r0, 0x2bc68e                                      |     
                                                                     |     while (r0 != 0) {
                                                                     | label_0:
    0x002bc680 add.w r4, r4, 0x16000                                 |         r4 += 0x16000;
    0x002bc684 ldr.w r0, [r4, 0x184]                                 |         r0 = *((r4 + 0x184));
    0x002bc688 add sp, 0xc                                           |         
    0x002bc68a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
    0x002bc68e mov r1, r6                                            |         r1 = r6;
    0x002bc690 movw r3, 0xa6f                                        |         r3 = 0xa6f;
    0x002bc694 mov r2, r5                                            |         r2 = r5;
    0x002bc696 mov r0, r4                                            |         r0 = r4;
    0x002bc698 blx 0x1e6828                                          |         fcn_001e6828 ();
    0x002bc69c mov r3, sb                                            |         r3 = sb;
    0x002bc69e mov r2, r0                                            |         r2 = r0;
    0x002bc6a0 mov r1, r8                                            |         r1 = r8;
    0x002bc6a2 mov r0, r4                                            |         r0 = r4;
    0x002bc6a4 blx 0x1d9404                                          |         r0 = fcn_001d9404 ();
    0x002bc6a8 mov r6, r0                                            |         r6 = r0;
    0x002bc6aa cmp r0, 0                                             |         
    0x002bc6ac bne 0x2bc680                                          |         
                                                                     |     }
    0x002bc6ae ldr r3, [r5]                                          |     r3 = *(r5);
    0x002bc6b0 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x002bc6b2 beq.w 0x2bc7f2                                        |         goto label_7;
                                                                     |     }
    0x002bc6b6 ldr r1, [pc, 0x168]                                   |     
    0x002bc6b8 mov r3, r5                                            |     r3 = r5;
    0x002bc6ba mov.w r2, -1                                          |     r2 = -1;
    0x002bc6be mov r0, r4                                            |     r0 = r4;
    0x002bc6c0 str r7, [sp]                                          |     *(sp) = r7;
    0x002bc6c2 add r1, pc                                            |     r1 = 0x578ee8;
    0x002bc6c4 blx 0x1cda28                                          |     r0 = fcn_001cda28 ();
    0x002bc6c8 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002bc6ca bne 0x2bc680                                          |         goto label_0;
                                                                     |     }
                                                                     | label_5:
    0x002bc6cc ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x002bc6ce cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x002bc6d0 beq.w 0x2bc7e0                                        |         goto label_8;
                                                                     |     }
    0x002bc6d4 ldr r3, [pc, 0x14c]                                   |     
    0x002bc6d6 mov.w r2, -1                                          |     r2 = -1;
    0x002bc6da ldr r1, [pc, 0x14c]                                   |     
    0x002bc6dc mov r0, r4                                            |     r0 = r4;
    0x002bc6de add r3, pc                                            |     r3 = 0x578f06;
    0x002bc6e0 str r3, [sp]                                          |     *(sp) = r3;
    0x002bc6e2 add r1, pc                                            |     r1 = 0x578f10;
    0x002bc6e4 adds r3, r5, 4                                        |     r3 = r5 + 4;
    0x002bc6e6 blx 0x1cda28                                          |     r0 = fcn_001cda28 ();
    0x002bc6ea cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002bc6ec bne 0x2bc680                                          |         goto label_0;
                                                                     |     }
                                                                     | label_4:
    0x002bc6ee ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
    0x002bc6f0 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x002bc6f2 beq.w 0x2bc804                                        |         goto label_9;
                                                                     |     }
    0x002bc6f6 ldr r3, [pc, 0x134]                                   |     
    0x002bc6f8 mov.w r2, -1                                          |     r2 = -1;
    0x002bc6fc ldr r1, [pc, 0x130]                                   |     
    0x002bc6fe mov r0, r4                                            |     r0 = r4;
    0x002bc700 add r3, pc                                            |     r3 = 0x578f32;
    0x002bc702 str r3, [sp]                                          |     *(sp) = r3;
    0x002bc704 add r1, pc                                            |     r1 = 0x578f38;
    0x002bc706 add.w r3, r5, 8                                       |     r3 = r5 + 8;
    0x002bc70a blx 0x1cda28                                          |     r0 = fcn_001cda28 ();
    0x002bc70e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002bc710 bne 0x2bc680                                          |         goto label_0;
                                                                     |     }
                                                                     | label_6:
    0x002bc712 ldr r3, [r5, 0x10]                                    |     r3 = *((r5 + 0x10));
                                                                     |     if (r3 == 0) {
    0x002bc714 cbz r3, 0x2bc752                                      |         goto label_10;
                                                                     |     }
    0x002bc716 ldr r2, [r5, 0xc]                                     |     r2 = *((r5 + 0xc));
    0x002bc718 cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002bc71a ble 0x2bc752                                          |         goto label_10;
                                                                     |     }
    0x002bc71c ldr.w fp, [pc, 0x114]                                 |     
    0x002bc720 movs r7, 0                                            |     r7 = 0;
    0x002bc722 ldr.w sl, [pc, 0x114]                                 |     sl = *(0x002bc838);
    0x002bc724 adr r1, 0x50                                          |     r1 = 0x50;
    0x002bc726 mov sb, r7                                            |     sb = r7;
    0x002bc728 add fp, pc                                            |     fp = 0x578f60;
    0x002bc72a add sl, pc                                            |     sl += pc;
    0x002bc72c b 0x2bc730                                            |     goto label_11;
                                                                     | label_1:
    0x002bc72e ldr r3, [r5, 0x10]                                    |     r3 = *((r5 + 0x10));
                                                                     | label_11:
    0x002bc730 add r3, sb                                            |     r3 += sb;
    0x002bc732 mov.w r2, -1                                          |     r2 = -1;
    0x002bc736 mov r1, fp                                            |     r1 = fp;
    0x002bc738 mov r0, r4                                            |     r0 = r4;
    0x002bc73a str.w sl, [sp]                                        |     __asm ("str.w sl, [sp]");
    0x002bc73e adds r7, 1                                            |     r7++;
    0x002bc740 add.w sb, sb, 0x2c                                    |     sb += 0x2c;
    0x002bc744 blx 0x1cf7c4                                          |     r0 = fcn_001cf7c4 ();
    0x002bc748 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002bc74a bne 0x2bc680                                          |         goto label_0;
                                                                     |     }
    0x002bc74c ldr r3, [r5, 0xc]                                     |     r3 = *((r5 + 0xc));
    0x002bc74e cmp r7, r3                                            |     
                                                                     |     if (r7 < r3) {
    0x002bc750 blt 0x2bc72e                                          |         goto label_1;
                                                                     |     }
                                                                     | label_10:
    0x002bc752 ldr r3, [r5, 0x18]                                    |     r3 = *((r5 + 0x18));
                                                                     |     if (r3 == 0) {
    0x002bc754 cbz r3, 0x2bc794                                      |         goto label_12;
                                                                     |     }
    0x002bc756 ldr r2, [r5, 0x14]                                    |     r2 = *((r5 + 0x14));
    0x002bc758 cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002bc75a ble 0x2bc794                                          |         goto label_12;
                                                                     |     }
    0x002bc75c ldr.w fp, [pc, 0xdc]                                  |     
    0x002bc760 movs r7, 0                                            |     r7 = 0;
    0x002bc762 ldr.w sl, [pc, 0xdc]                                  |     sl = *(0x002bc840);
    0x002bc766 mov sb, r7                                            |     sb = r7;
    0x002bc768 add fp, pc                                            |     fp = 0x578fa8;
    0x002bc76a add sl, pc                                            |     sl += pc;
    0x002bc76c b 0x2bc770                                            |     goto label_13;
                                                                     | label_2:
    0x002bc76e ldr r3, [r5, 0x18]                                    |     r3 = *((r5 + 0x18));
                                                                     | label_13:
    0x002bc770 add r3, sb                                            |     r3 += sb;
    0x002bc772 mov.w r2, -1                                          |     r2 = -1;
    0x002bc776 mov r1, fp                                            |     r1 = fp;
    0x002bc778 mov r0, r4                                            |     r0 = r4;
    0x002bc77a str.w sl, [sp]                                        |     __asm ("str.w sl, [sp]");
    0x002bc77e adds r7, 1                                            |     r7++;
    0x002bc780 add.w sb, sb, 0x30                                    |     sb += 0x30;
    0x002bc784 blx 0x1c636c                                          |     r0 = fcn_001c636c ();
    0x002bc788 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002bc78a bne.w 0x2bc680                                        |         goto label_0;
                                                                     |     }
    0x002bc78e ldr r3, [r5, 0x14]                                    |     r3 = *((r5 + 0x14));
    0x002bc790 cmp r7, r3                                            |     
                                                                     |     if (r7 < r3) {
    0x002bc792 blt 0x2bc76e                                          |         goto label_2;
                                                                     |     }
                                                                     | label_12:
    0x002bc794 ldr r3, [r5, 0x20]                                    |     r3 = *((r5 + 0x20));
                                                                     |     if (r3 == 0) {
    0x002bc796 cbz r3, 0x2bc7d2                                      |         goto label_14;
                                                                     |     }
    0x002bc798 ldr r2, [r5, 0x1c]                                    |     r2 = *((r5 + 0x1c));
    0x002bc79a cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002bc79c ble 0x2bc7d2                                          |         goto label_14;
                                                                     |     }
    0x002bc79e ldr.w sl, [pc, 0xa4]                                  |     
    0x002bc7a2 movs r7, 0                                            |     r7 = 0;
    0x002bc7a4 ldr.w sb, [pc, 0xa0]                                  |     sb = *(0x002bc848);
    0x002bc7a8 add sl, pc                                            |     sl = 0x578ff2;
    0x002bc7aa add sb, pc                                            |     sb += pc;
    0x002bc7ac b 0x2bc7b0                                            |     goto label_15;
                                                                     | label_3:
    0x002bc7ae ldr r3, [r5, 0x20]                                    |     r3 = *((r5 + 0x20));
                                                                     | label_15:
    0x002bc7b0 add r3, r7                                            |     r3 += r7;
    0x002bc7b2 mov.w r2, -1                                          |     r2 = -1;
    0x002bc7b6 mov r1, sl                                            |     r1 = sl;
    0x002bc7b8 mov r0, r4                                            |     r0 = r4;
    0x002bc7ba str.w sb, [sp]                                        |     __asm ("str.w sb, [sp]");
    0x002bc7be adds r6, 1                                            |     r6++;
    0x002bc7c0 adds r7, 0x34                                         |     r7 += 0x34;
    0x002bc7c2 blx 0x1d801c                                          |     r0 = fcn_001d801c ();
    0x002bc7c6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002bc7c8 bne.w 0x2bc680                                        |         goto label_0;
                                                                     |     }
    0x002bc7cc ldr r3, [r5, 0x1c]                                    |     r3 = *((r5 + 0x1c));
    0x002bc7ce cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x002bc7d0 blt 0x2bc7ae                                          |         goto label_3;
                                                                     |     }
                                                                     | label_14:
    0x002bc7d2 mov r1, r8                                            |     r1 = r8;
    0x002bc7d4 mov r0, r4                                            |     r0 = r4;
    0x002bc7d6 add sp, 0xc                                           |     
    0x002bc7d8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |     
    0x002bc7dc b.w 0x1cd900                                          |     void (*0x1cd900)() ();
                                                                     | label_8:
    0x002bc7e0 ldr r1, [pc, 0x68]                                    |     
    0x002bc7e2 mov r0, r4                                            |     r0 = r4;
    0x002bc7e4 add r1, pc                                            |     r1 = 0x579034;
    0x002bc7e6 blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x002bc7ea cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x002bc7ec beq.w 0x2bc6ee                                        |         goto label_4;
                                                                     |     }
    0x002bc7f0 b 0x2bc680                                            |     goto label_0;
                                                                     | label_7:
    0x002bc7f2 ldr r1, [pc, 0x5c]                                    |     
    0x002bc7f4 mov r0, r4                                            |     r0 = r4;
    0x002bc7f6 add r1, pc                                            |     r1 = 0x57904c;
    0x002bc7f8 blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x002bc7fc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x002bc7fe beq.w 0x2bc6cc                                        |         goto label_5;
                                                                     |     }
    0x002bc802 b 0x2bc680                                            |     goto label_0;
                                                                     | label_9:
    0x002bc804 ldr r1, [pc, 0x4c]                                    |     
    0x002bc806 mov r0, r4                                            |     r0 = r4;
    0x002bc808 add r1, pc                                            |     r1 = 0x579060;
    0x002bc80a blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x002bc80e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x002bc810 beq.w 0x2bc712                                        |         goto label_6;
                                                                     |     }
    0x002bc814 b 0x2bc680                                            |     goto label_0;
                                                                     | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2317bc */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_out_pacsaxis__AuthorizationProfileExtension ()      | void soap_out_pacsaxis_AuthorizationProfileExtension (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                         |     int16_t var_0h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     r2 = arg3;
                                                                         |     r3 = arg4;
    0x002317bc push.w {r4, r5, r6, r7, r8, sb, sl, lr}                   |     
    0x002317c0 mov sb, r1                                                |     sb = r1;
    0x002317c2 ldr.w r8, [pc, 0x94]                                      |     
    0x002317c6 sub sp, 8                                                 |     
    0x002317c8 mov r4, r3                                                |     r4 = r3;
    0x002317ca mov r5, r2                                                |     r5 = r2;
    0x002317cc ldr r1, [pc, 0x8c]                                        |     
    0x002317ce adds r3, 8                                                |     r3 += 8;
    0x002317d0 add r8, pc                                                |     r8 = 0x46302e;
    0x002317d2 mov.w r2, -1                                              |     r2 = -1;
    0x002317d6 str.w r8, [sp]                                            |     __asm ("str.w r8, [sp]");
    0x002317da mov r6, r0                                                |     r6 = r0;
    0x002317dc add r1, pc                                                |     r1 = 0x46303c;
    0x002317de ldr r7, [sp, 0x28]                                        |     r7 = *(arg_28h);
    0x002317e0 blx 0x1dc3cc                                              |     r0 = fcn_001dc3cc ();
    0x002317e4 cbz r0, 0x2317f4                                          |     
                                                                         |     while (r0 != 0) {
                                                                         | label_0:
    0x002317e6 add.w r6, r6, 0x16000                                     |         r6 += 0x16000;
    0x002317ea ldr.w r0, [r6, 0x184]                                     |         r0 = *((r6 + 0x184));
    0x002317ee add sp, 8                                                 |         
    0x002317f0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                    |         
    0x002317f4 mov r1, r5                                                |         r1 = r5;
    0x002317f6 movw r3, 0x989                                            |         r3 = 0x989;
    0x002317fa mov r2, r4                                                |         r2 = r4;
    0x002317fc mov r0, r6                                                |         r0 = r6;
    0x002317fe blx 0x1e6828                                              |         fcn_001e6828 ();
    0x00231802 mov r3, r7                                                |         r3 = r7;
    0x00231804 mov r2, r0                                                |         r2 = r0;
    0x00231806 mov r1, sb                                                |         r1 = sb;
    0x00231808 mov r0, r6                                                |         r0 = r6;
    0x0023180a blx 0x1d9404                                              |         r0 = fcn_001d9404 ();
    0x0023180e mov r5, r0                                                |         r5 = r0;
    0x00231810 cmp r0, 0                                                 |         
    0x00231812 bne 0x2317e6                                              |         
                                                                         |     }
    0x00231814 ldr r3, [r4, 4]                                           |     r3 = *((r4 + 4));
                                                                         |     if (r3 == 0) {
    0x00231816 cbz r3, 0x23184a                                          |         goto label_2;
                                                                         |     }
    0x00231818 ldr r2, [r4]                                              |     r2 = *(r4);
    0x0023181a cmp r2, 0                                                 |     
                                                                         |     if (r2 <= 0) {
    0x0023181c ble 0x23184a                                              |         goto label_2;
                                                                         |     }
    0x0023181e ldr.w sl, [pc, 0x40]                                      |     
    0x00231822 mov r7, r0                                                |     r7 = r0;
    0x00231824 add sl, pc                                                |     sl = 0x46308a;
    0x00231826 b 0x23182a                                                |     goto label_3;
                                                                         | label_1:
    0x00231828 ldr r3, [r4, 4]                                           |     r3 = *((r4 + 4));
                                                                         | label_3:
    0x0023182a add r3, r7                                                |     r3 += r7;
    0x0023182c mov.w r2, -1                                              |     r2 = -1;
    0x00231830 mov r1, sl                                                |     r1 = sl;
    0x00231832 mov r0, r6                                                |     r0 = r6;
    0x00231834 str.w r8, [sp]                                            |     __asm ("str.w r8, [sp]");
    0x00231838 adds r5, 1                                                |     r5++;
    0x0023183a adds r7, 0x34                                             |     r7 += 0x34;
    0x0023183c blx 0x1d801c                                              |     r0 = fcn_001d801c ();
    0x00231840 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x00231842 bne 0x2317e6                                              |         goto label_0;
                                                                         |     }
    0x00231844 ldr r3, [r4]                                              |     r3 = *(r4);
    0x00231846 cmp r5, r3                                                |     
                                                                         |     if (r5 < r3) {
    0x00231848 blt 0x231828                                              |         goto label_1;
                                                                         |     }
                                                                         | label_2:
    0x0023184a mov r1, sb                                                |     r1 = sb;
    0x0023184c mov r0, r6                                                |     r0 = r6;
    0x0023184e add sp, 8                                                 |     
    0x00231850 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                    |     
    0x00231854 b.w 0x1cd900                                              |     return void (*0x1cd900)() ();
                                                                         | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x26ad24 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_out_pacsaxis__AuthorizationProfileInfo ()           | void soap_out_pacsaxis_AuthorizationProfileInfo (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                         |     int16_t var_0h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     r2 = arg3;
                                                                         |     r3 = arg4;
    0x0026ad24 push.w {r4, r5, r6, r7, r8, sb, sl, lr}                   |     
    0x0026ad28 mov r6, r2                                                |     r6 = r2;
    0x0026ad2a ldr r2, [r3]                                              |     r2 = *(r3);
    0x0026ad2c sub sp, 8                                                 |     
    0x0026ad2e mov r5, r3                                                |     r5 = r3;
    0x0026ad30 mov r4, r0                                                |     r4 = r0;
    0x0026ad32 ldr.w sb, [sp, 0x28]                                      |     sb = *(arg_28h);
    0x0026ad36 mov r7, r1                                                |     r7 = r1;
                                                                         |     if (r2 != 0) {
    0x0026ad38 cbz r2, 0x26ad44                                          |         
    0x0026ad3a ldr r1, [pc, 0x104]                                       |         
    0x0026ad3c movs r3, 1                                                |         r3 = 1;
    0x0026ad3e add r1, pc                                                |         r1 = 0x4d5b84;
    0x0026ad40 blx 0x1dd7bc                                              |         fcn_001dd7bc ();
                                                                         |     }
    0x0026ad44 ldr.w r8, [pc, 0xfc]                                      |     
    0x0026ad48 add.w r3, r5, 0x14                                        |     r3 = r5 + 0x14;
    0x0026ad4c ldr r1, [pc, 0xf8]                                        |     
    0x0026ad4e mov.w r2, -1                                              |     r2 = -1;
    0x0026ad52 mov r0, r4                                                |     r0 = r4;
    0x0026ad54 add r8, pc                                                |     r8 = 0x4d5b9c;
    0x0026ad56 add r1, pc                                                |     r1 = 0x4d5ba2;
    0x0026ad58 str.w r8, [sp]                                            |     __asm ("str.w r8, [sp]");
    0x0026ad5c blx 0x1dc3cc                                              |     r0 = fcn_001dc3cc ();
    0x0026ad60 cbz r0, 0x26ad70                                          |     
                                                                         |     while (r0 != 0) {
                                                                         | label_0:
    0x0026ad62 add.w r4, r4, 0x16000                                     |         r4 += 0x16000;
    0x0026ad66 ldr.w r0, [r4, 0x184]                                     |         r0 = *((r4 + 0x184));
    0x0026ad6a add sp, 8                                                 |         
    0x0026ad6c pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                    |         
    0x0026ad70 mov r1, r6                                                |         r1 = r6;
    0x0026ad72 movw r3, 0xb62                                            |         r3 = 0xb62;
    0x0026ad76 mov r2, r5                                                |         r2 = r5;
    0x0026ad78 mov r0, r4                                                |         r0 = r4;
    0x0026ad7a blx 0x1e6828                                              |         fcn_001e6828 ();
    0x0026ad7e mov r3, sb                                                |         r3 = sb;
    0x0026ad80 mov r2, r0                                                |         r2 = r0;
    0x0026ad82 mov r1, r7                                                |         r1 = r7;
    0x0026ad84 mov r0, r4                                                |         r0 = r4;
    0x0026ad86 blx 0x1d9404                                              |         r0 = fcn_001d9404 ();
    0x0026ad8a mov r6, r0                                                |         r6 = r0;
    0x0026ad8c cmp r0, 0                                                 |         
    0x0026ad8e bne 0x26ad62                                              |         
                                                                         |     }
    0x0026ad90 ldr r3, [r5, 4]                                           |     r3 = *((r5 + 4));
    0x0026ad92 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x0026ad94 beq 0x26ae2e                                              |         goto label_4;
                                                                         |     }
    0x0026ad96 ldr r1, [pc, 0xb4]                                        |     
    0x0026ad98 adds r3, r5, 4                                            |     r3 = r5 + 4;
    0x0026ad9a mov.w r2, -1                                              |     r2 = -1;
    0x0026ad9e mov r0, r4                                                |     r0 = r4;
    0x0026ada0 str.w r8, [sp]                                            |     __asm ("str.w r8, [sp]");
    0x0026ada4 add r1, pc                                                |     r1 = 0x4d5bf6;
    0x0026ada6 blx 0x1c3a60                                              |     r0 = fcn_001c3a60 ();
    0x0026adaa cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x0026adac bne 0x26ad62                                              |         goto label_0;
                                                                         |     }
                                                                         | label_3:
    0x0026adae ldr r3, [r5, 8]                                           |     r3 = *((r5 + 8));
    0x0026adb0 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x0026adb2 beq 0x26ae1e                                              |         goto label_5;
                                                                         |     }
    0x0026adb4 ldr r3, [pc, 0x98]                                        |     
    0x0026adb6 mov.w r2, -1                                              |     r2 = -1;
    0x0026adba ldr r1, [pc, 0x98]                                        |     
    0x0026adbc mov r0, r4                                                |     r0 = r4;
    0x0026adbe add r3, pc                                                |     r3 = 0x4d5c12;
    0x0026adc0 str r3, [sp]                                              |     *(sp) = r3;
    0x0026adc2 add r1, pc                                                |     r1 = 0x4d5c1c;
    0x0026adc4 add.w r3, r5, 8                                           |     r3 = r5 + 8;
    0x0026adc8 blx 0x1bf818                                              |     r0 = fcn_001bf818 ();
    0x0026adcc cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x0026adce bne 0x26ad62                                              |         goto label_0;
                                                                         |     }
                                                                         | label_2:
    0x0026add0 ldr r3, [r5, 0x10]                                        |     r3 = *((r5 + 0x10));
                                                                         |     if (r3 == 0) {
    0x0026add2 cbz r3, 0x26ae10                                          |         goto label_6;
                                                                         |     }
    0x0026add4 ldr r2, [r5, 0xc]                                         |     r2 = *((r5 + 0xc));
    0x0026add6 cmp r2, 0                                                 |     
                                                                         |     if (r2 <= 0) {
    0x0026add8 ble 0x26ae10                                              |         goto label_6;
                                                                         |     }
    0x0026adda ldr.w sl, [pc, 0x7c]                                      |     sl = *(0x0026ae58);
    0x0026adde mov.w r8, 0                                               |     r8 = 0;
    0x0026ade2 ldr.w sb, [pc, 0x78]                                      |     
    0x0026ade6 add sl, pc                                                |     sl += pc;
    0x0026ade8 add sb, pc                                                |     sb = 0x4d5c4a;
    0x0026adea b 0x26adee                                                |     goto label_7;
                                                                         | label_1:
    0x0026adec ldr r3, [r5, 0x10]                                        |     r3 = *((r5 + 0x10));
                                                                         | label_7:
    0x0026adee add r3, r8                                                |     r3 += r8;
    0x0026adf0 mov.w r2, -1                                              |     r2 = -1;
    0x0026adf4 mov r1, sl                                                |     r1 = sl;
    0x0026adf6 mov r0, r4                                                |     r0 = r4;
    0x0026adf8 str.w sb, [sp]                                            |     __asm ("str.w sb, [sp]");
    0x0026adfc adds r6, 1                                                |     r6++;
    0x0026adfe add.w r8, r8, 0x34                                        |     r8 += 0x34;
    0x0026ae02 blx 0x1d801c                                              |     r0 = fcn_001d801c ();
    0x0026ae06 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x0026ae08 bne 0x26ad62                                              |         goto label_0;
                                                                         |     }
    0x0026ae0a ldr r3, [r5, 0xc]                                         |     r3 = *((r5 + 0xc));
    0x0026ae0c cmp r3, r6                                                |     
                                                                         |     if (r3 > r6) {
    0x0026ae0e bgt 0x26adec                                              |         goto label_1;
                                                                         |     }
                                                                         | label_6:
    0x0026ae10 mov r1, r7                                                |     r1 = r7;
    0x0026ae12 mov r0, r4                                                |     r0 = r4;
    0x0026ae14 add sp, 8                                                 |     
    0x0026ae16 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                    |     
    0x0026ae1a b.w 0x1cd900                                              |     void (*0x1cd900)() ();
                                                                         | label_5:
    0x0026ae1e ldr r1, [pc, 0x40]                                        |     
    0x0026ae20 mov r0, r4                                                |     r0 = r4;
    0x0026ae22 add r1, pc                                                |     r1 = 0x4d5c88;
    0x0026ae24 blx 0x1dfd3c                                              |     r0 = fcn_001dfd3c ();
    0x0026ae28 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x0026ae2a beq 0x26add0                                              |         goto label_2;
                                                                         |     }
    0x0026ae2c b 0x26ad62                                                |     goto label_0;
                                                                         | label_4:
    0x0026ae2e ldr r1, [pc, 0x34]                                        |     
    0x0026ae30 mov r0, r4                                                |     r0 = r4;
    0x0026ae32 add r1, pc                                                |     r1 = 0x4d5c9c;
    0x0026ae34 blx 0x1dfd3c                                              |     r0 = fcn_001dfd3c ();
    0x0026ae38 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x0026ae3a beq 0x26adae                                              |         goto label_3;
                                                                         |     }
    0x0026ae3c b 0x26ad62                                                |     goto label_0;
                                                                         | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x26b158 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.soap_out_pacsaxis__AuthorizationProfileInfoBase ()           | void soap_out_pacsaxis_AuthorizationProfileInfoBase (int16_t arg_20h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                             |     int16_t var_0h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
                                                                             |     r2 = arg3;
                                                                             |     r3 = arg4;
    0x0026b158 push.w {r4, r5, r6, r7, r8, lr}                               |     
    0x0026b15c mov r7, r2                                                    |     r7 = r2;
    0x0026b15e ldr r2, [r3]                                                  |     r2 = *(r3);
    0x0026b160 sub sp, 8                                                     |     
    0x0026b162 mov r5, r3                                                    |     r5 = r3;
    0x0026b164 mov r4, r0                                                    |     r4 = r0;
    0x0026b166 ldr.w r8, [sp, 0x20]                                          |     r8 = *(arg_20h);
    0x0026b16a mov r6, r1                                                    |     r6 = r1;
                                                                             |     if (r2 != 0) {
    0x0026b16c cbz r2, 0x26b178                                              |         
    0x0026b16e ldr r1, [pc, 0x98]                                            |         
    0x0026b170 movs r3, 1                                                    |         r3 = 1;
    0x0026b172 add r1, pc                                                    |         r1 = 0x4d6380;
    0x0026b174 blx 0x1dd7bc                                                  |         fcn_001dd7bc ();
                                                                             |     }
    0x0026b178 mov r1, r7                                                    |     r1 = r7;
    0x0026b17a movw r3, 0xb4a                                                |     r3 = 0xb4a;
    0x0026b17e mov r2, r5                                                    |     r2 = r5;
    0x0026b180 mov r0, r4                                                    |     r0 = r4;
    0x0026b182 blx 0x1e6828                                                  |     fcn_001e6828 ();
    0x0026b186 mov r3, r8                                                    |     r3 = r8;
    0x0026b188 mov r2, r0                                                    |     r2 = r0;
    0x0026b18a mov r1, r6                                                    |     r1 = r6;
    0x0026b18c mov r0, r4                                                    |     r0 = r4;
    0x0026b18e blx 0x1d9404                                                  |     r0 = fcn_001d9404 ();
                                                                             |     if (r0 != 0) {
    0x0026b192 cbnz r0, 0x26b1ea                                             |         goto label_1;
                                                                             |     }
    0x0026b194 ldr r3, [r5, 4]                                               |     r3 = *((r5 + 4));
                                                                             |     if (r3 == 0) {
    0x0026b196 cbz r3, 0x26b1dc                                              |         goto label_2;
                                                                             |     }
    0x0026b198 ldr r2, [pc, 0x70]                                            |     
    0x0026b19a adds r3, r5, 4                                                |     r3 = r5 + 4;
    0x0026b19c ldr r1, [pc, 0x70]                                            |     
    0x0026b19e mov r0, r4                                                    |     r0 = r4;
    0x0026b1a0 add r2, pc                                                    |     r2 = 0x4d63b0;
    0x0026b1a2 str r2, [sp]                                                  |     *(sp) = r2;
    0x0026b1a4 add r1, pc                                                    |     r1 = 0x4d63b8;
    0x0026b1a6 mov.w r2, -1                                                  |     r2 = -1;
    0x0026b1aa blx 0x1c3a60                                                  |     r0 = fcn_001c3a60 ();
                                                                             |     if (r0 != 0) {
    0x0026b1ae cbnz r0, 0x26b1ea                                             |         goto label_1;
                                                                             |     }
                                                                             |     do {
    0x0026b1b0 ldr r3, [r5, 8]                                               |         r3 = *((r5 + 8));
                                                                             |         if (r3 == 0) {
    0x0026b1b2 cbz r3, 0x26b1f8                                              |             goto label_3;
                                                                             |         }
    0x0026b1b4 ldr r0, [pc, 0x5c]                                            |         
    0x0026b1b6 add.w r3, r5, 8                                               |         r3 = r5 + 8;
    0x0026b1ba ldr r1, [pc, 0x5c]                                            |         
    0x0026b1bc mov.w r2, -1                                                  |         r2 = -1;
    0x0026b1c0 add r0, pc                                                    |         r0 = 0x4d63d8;
    0x0026b1c2 str r0, [sp]                                                  |         *(sp) = r0;
    0x0026b1c4 add r1, pc                                                    |         r1 = 0x4d63e2;
    0x0026b1c6 mov r0, r4                                                    |         r0 = r4;
    0x0026b1c8 blx 0x1bf818                                                  |         r0 = fcn_001bf818 ();
                                                                             |         if (r0 != 0) {
    0x0026b1cc cbnz r0, 0x26b1ea                                             |             goto label_1;
                                                                             |         }
                                                                             | label_0:
    0x0026b1ce mov r1, r6                                                    |         r1 = r6;
    0x0026b1d0 mov r0, r4                                                    |         r0 = r4;
    0x0026b1d2 add sp, 8                                                     |         
    0x0026b1d4 pop.w {r4, r5, r6, r7, r8, lr}                                |         
    0x0026b1d8 b.w 0x1cd900                                                  |         void (*0x1cd900)() ();
                                                                             | label_2:
    0x0026b1dc ldr r1, [pc, 0x3c]                                            |         
    0x0026b1de mov r0, r4                                                    |         r0 = r4;
    0x0026b1e0 add r1, pc                                                    |         r1 = 0x4d6400;
    0x0026b1e2 blx 0x1dfd3c                                                  |         r0 = fcn_001dfd3c ();
    0x0026b1e6 cmp r0, 0                                                     |         
    0x0026b1e8 beq 0x26b1b0                                                  |         
                                                                             |     } while (r0 == 0);
                                                                             | label_1:
    0x0026b1ea add.w r4, r4, 0x16000                                         |     r4 += 0x16000;
    0x0026b1ee ldr.w r0, [r4, 0x184]                                         |     r0 = *((r4 + 0x184));
    0x0026b1f2 add sp, 8                                                     |     
    0x0026b1f4 pop.w {r4, r5, r6, r7, r8, pc}                                |     
                                                                             | label_3:
    0x0026b1f8 ldr r1, [pc, 0x24]                                            |     
    0x0026b1fa mov r0, r4                                                    |     r0 = r4;
    0x0026b1fc add r1, pc                                                    |     r1 = 0x4d6420;
    0x0026b1fe blx 0x1dfd3c                                                  |     r0 = fcn_001dfd3c ();
    0x0026b202 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x0026b204 beq 0x26b1ce                                                  |         goto label_0;
                                                                             |     }
    0x0026b206 b 0x26b1ea                                                    |     goto label_1;
                                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2c2000 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_pacsaxis__AuthorizationProfile ()           | void soap_out_pacsaxis_AuthorizationProfile (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x002c2000 push.w {r4, r5, r6, r7, r8, sb, sl, lr}               |     
    0x002c2004 mov r6, r2                                            |     r6 = r2;
    0x002c2006 ldr r2, [r3]                                          |     r2 = *(r3);
    0x002c2008 sub sp, 8                                             |     
    0x002c200a mov r4, r3                                            |     r4 = r3;
    0x002c200c mov r5, r0                                            |     r5 = r0;
    0x002c200e ldr r7, [sp, 0x28]                                    |     r7 = *(arg_28h);
    0x002c2010 mov r8, r1                                            |     r8 = r1;
                                                                     |     if (r2 != 0) {
    0x002c2012 cbz r2, 0x2c201e                                      |         
    0x002c2014 ldr r1, [pc, 0x13c]                                   |         
    0x002c2016 movs r3, 1                                            |         r3 = 1;
    0x002c2018 add r1, pc                                            |         r1 = 0x584170;
    0x002c201a blx 0x1dd7bc                                          |         fcn_001dd7bc ();
                                                                     |     }
    0x002c201e mov r1, r6                                            |     r1 = r6;
    0x002c2020 movw r3, 0xb63                                        |     r3 = 0xb63;
    0x002c2024 mov r2, r4                                            |     r2 = r4;
    0x002c2026 mov r0, r5                                            |     r0 = r5;
    0x002c2028 blx 0x1e6828                                          |     fcn_001e6828 ();
    0x002c202c mov r3, r7                                            |     r3 = r7;
    0x002c202e mov r2, r0                                            |     r2 = r0;
    0x002c2030 mov r1, r8                                            |     r1 = r8;
    0x002c2032 mov r0, r5                                            |     r0 = r5;
    0x002c2034 blx 0x1d9404                                          |     r0 = fcn_001d9404 ();
    0x002c2038 mov r6, r0                                            |     r6 = r0;
    0x002c203a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002c203c bne 0x2c20ba                                          |         goto label_2;
                                                                     |     }
    0x002c203e ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x002c2040 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x002c2042 beq 0x2c20c8                                          |         goto label_3;
                                                                     |     }
    0x002c2044 ldr r3, [pc, 0x110]                                   |     
    0x002c2046 mov.w r2, -1                                          |     r2 = -1;
    0x002c204a ldr r1, [pc, 0x110]                                   |     
    0x002c204c mov r0, r5                                            |     r0 = r5;
    0x002c204e add r3, pc                                            |     r3 = 0x5841aa;
    0x002c2050 str r3, [sp]                                          |     *(sp) = r3;
    0x002c2052 add r1, pc                                            |     r1 = 0x5841b4;
    0x002c2054 adds r3, r4, 4                                        |     r3 = r4 + 4;
    0x002c2056 blx 0x1c3a60                                          |     r0 = fcn_001c3a60 ();
                                                                     |     if (r0 != 0) {
    0x002c205a cbnz r0, 0x2c20ba                                     |         goto label_2;
                                                                     |     }
    0x002c205c ldr r3, [r4, 8]                                       |     r3 = *((r4 + 8));
    0x002c205e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x002c2060 beq 0x2c20dc                                          |         goto label_4;
                                                                     |     }
                                                                     | label_0:
    0x002c2062 ldr r3, [pc, 0xfc]                                    |     
    0x002c2064 mov.w r2, -1                                          |     r2 = -1;
    0x002c2068 ldr r1, [pc, 0xf8]                                    |     
    0x002c206a mov r0, r5                                            |     r0 = r5;
    0x002c206c add r3, pc                                            |     r3 = 0x5841d2;
    0x002c206e str r3, [sp]                                          |     *(sp) = r3;
    0x002c2070 add r1, pc                                            |     r1 = 0x5841d8;
    0x002c2072 add.w r3, r4, 8                                       |     r3 = r4 + 8;
    0x002c2076 blx 0x1bf818                                          |     r0 = fcn_001bf818 ();
                                                                     |     if (r0 != 0) {
    0x002c207a cbnz r0, 0x2c20ba                                     |         goto label_2;
                                                                     |     }
                                                                     | label_1:
    0x002c207c ldr r3, [r4, 0x10]                                    |     r3 = *((r4 + 0x10));
    0x002c207e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x002c2080 beq 0x2c20ec                                          |         goto label_5;
                                                                     |     }
    0x002c2082 ldr r2, [r4, 0xc]                                     |     r2 = *((r4 + 0xc));
    0x002c2084 cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002c2086 ble 0x2c20ec                                          |         goto label_5;
                                                                     |     }
    0x002c2088 ldr.w sl, [pc, 0xdc]                                  |     sl = *(0x002c2168);
    0x002c208c movs r7, 0                                            |     r7 = 0;
    0x002c208e ldr.w sb, [pc, 0xdc]                                  |     
    0x002c2092 add sl, pc                                            |     sl += pc;
    0x002c2094 add sb, pc                                            |     sb = 0x584206;
    0x002c2096 b 0x2c20a0                                            |     
                                                                     |     while (r0 == 0) {
    0x002c2098 ldr r3, [r4, 0xc]                                     |         r3 = *((r4 + 0xc));
    0x002c209a cmp r3, r7                                            |         
                                                                     |         if (r3 <= r7) {
    0x002c209c ble 0x2c20ec                                          |             goto label_5;
                                                                     |         }
    0x002c209e ldr r3, [r4, 0x10]                                    |         r3 = *((r4 + 0x10));
    0x002c20a0 add.w r3, r3, r7, lsl 2                               |         r3 += (r7 << 2);
    0x002c20a4 mov.w r2, -1                                          |         r2 = -1;
    0x002c20a8 mov r1, sl                                            |         r1 = sl;
    0x002c20aa str.w sb, [sp]                                        |         __asm ("str.w sb, [sp]");
    0x002c20ae mov r0, r5                                            |         r0 = r5;
    0x002c20b0 adds r7, 1                                            |         r7++;
    0x002c20b2 blx 0x1efbec                                          |         r0 = fcn_001efbec ();
    0x002c20b6 cmp r0, 0                                             |         
    0x002c20b8 beq 0x2c2098                                          |         
                                                                     |     }
                                                                     |     do {
                                                                     | label_2:
    0x002c20ba add.w r5, r5, 0x16000                                 |         r5 += 0x16000;
    0x002c20be ldr.w r0, [r5, 0x184]                                 |         r0 = *((r5 + 0x184));
    0x002c20c2 add sp, 8                                             |         
    0x002c20c4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                |         
                                                                     | label_3:
    0x002c20c8 ldr r1, [pc, 0xa4]                                    |         
    0x002c20ca mov r0, r5                                            |         r0 = r5;
    0x002c20cc add r1, pc                                            |         r1 = 0x584240;
    0x002c20ce blx 0x1dfd3c                                          |         r0 = fcn_001dfd3c ();
    0x002c20d2 cmp r0, 0                                             |         
    0x002c20d4 bne 0x2c20ba                                          |         
                                                                     |     } while (r0 != 0);
    0x002c20d6 ldr r3, [r4, 8]                                       |     r3 = *((r4 + 8));
    0x002c20d8 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x002c20da bne 0x2c2062                                          |         goto label_0;
                                                                     |     }
                                                                     | label_4:
    0x002c20dc ldr r1, [pc, 0x94]                                    |     
    0x002c20de mov r0, r5                                            |     r0 = r5;
    0x002c20e0 add r1, pc                                            |     r1 = 0x584258;
    0x002c20e2 blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x002c20e6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x002c20e8 beq 0x2c207c                                          |         goto label_1;
                                                                     |     }
    0x002c20ea b 0x2c20ba                                            |     goto label_2;
                                                                     | label_5:
    0x002c20ec ldr r3, [r4, 0x18]                                    |     r3 = *((r4 + 0x18));
                                                                     |     if (r3 == 0) {
    0x002c20ee cbz r3, 0x2c212a                                      |         goto label_6;
                                                                     |     }
    0x002c20f0 ldr r2, [r4, 0x14]                                    |     r2 = *((r4 + 0x14));
    0x002c20f2 cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002c20f4 ble 0x2c212a                                          |         goto label_6;
                                                                     |     }
    0x002c20f6 ldr.w sl, [pc, 0x80]                                  |     
    0x002c20fa movs r7, 0                                            |     r7 = 0;
    0x002c20fc ldr.w sb, [pc, 0x7c]                                  |     sb = *(0x002c217c);
    0x002c2100 add sl, pc                                            |     sl = 0x58427e;
    0x002c2102 add sb, pc                                            |     sb += pc;
    0x002c2104 b 0x2c210e                                            |     
                                                                     |     while (r0 == 0) {
    0x002c2106 ldr r3, [r4, 0x14]                                    |         r3 = *((r4 + 0x14));
    0x002c2108 cmp r3, r6                                            |         
                                                                     |         if (r3 <= r6) {
    0x002c210a ble 0x2c212a                                          |             goto label_6;
                                                                     |         }
    0x002c210c ldr r3, [r4, 0x18]                                    |         r3 = *((r4 + 0x18));
    0x002c210e add r3, r7                                            |         r3 += r7;
    0x002c2110 mov.w r2, -1                                          |         r2 = -1;
    0x002c2114 mov r1, sl                                            |         r1 = sl;
    0x002c2116 mov r0, r5                                            |         r0 = r5;
    0x002c2118 str.w sb, [sp]                                        |         __asm ("str.w sb, [sp]");
    0x002c211c adds r6, 1                                            |         r6++;
    0x002c211e adds r7, 0x30                                         |         r7 += 0x30;
    0x002c2120 blx 0x1e153c                                          |         r0 = fcn_001e153c ();
    0x002c2124 cmp r0, 0                                             |         
    0x002c2126 beq 0x2c2106                                          |         
                                                                     |     }
    0x002c2128 b 0x2c20ba                                            |     goto label_2;
                                                                     | label_6:
    0x002c212a ldr r0, [pc, 0x54]                                    |     
    0x002c212c add.w r3, r4, 0x1c                                    |     r3 = r4 + 0x1c;
    0x002c2130 ldr r1, [pc, 0x50]                                    |     
    0x002c2132 mov.w r2, -1                                          |     r2 = -1;
    0x002c2136 add r0, pc                                            |     r0 = 0x5842bc;
    0x002c2138 str r0, [sp]                                          |     *(sp) = r0;
    0x002c213a add r1, pc                                            |     r1 = 0x5842c2;
    0x002c213c mov r0, r5                                            |     r0 = r5;
    0x002c213e blx 0x1e197c                                          |     r0 = fcn_001e197c ();
    0x002c2142 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002c2144 bne 0x2c20ba                                          |         goto label_2;
                                                                     |     }
    0x002c2146 mov r1, r8                                            |     r1 = r8;
    0x002c2148 mov r0, r5                                            |     r0 = r5;
    0x002c214a add sp, 8                                             |     
    0x002c214c pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                |     
    0x002c2150 b.w 0x1cd900                                          |     return void (*0x1cd900)() ();
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2367f0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tac__AccessPointCapabilities ()         | void soap_out_tac_AccessPointCapabilities (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x002367f0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x002367f4 mov sb, r1                                        |     sb = r1;
    0x002367f6 sub sp, 8                                         |     
    0x002367f8 ldr r1, [r3, 8]                                   |     r1 = *((r3 + 8));
    0x002367fa mov r5, r3                                        |     r5 = r3;
    0x002367fc mov r4, r0                                        |     r4 = r0;
    0x002367fe mov r6, r2                                        |     r6 = r2;
    0x00236800 ldr r7, [sp, 0x28]                                |     r7 = *(arg_28h);
    0x00236802 blx 0x1ea424                                      |     fcn_001ea424 ();
    0x00236806 ldr r1, [pc, 0x104]                               |     
    0x00236808 mov r2, r0                                        |     r2 = r0;
    0x0023680a movs r3, 1                                        |     r3 = 1;
    0x0023680c mov r0, r4                                        |     r0 = r4;
    0x0023680e add r1, pc                                        |     r1 = 0x46d120;
    0x00236810 blx 0x1dd7bc                                      |     fcn_001dd7bc ();
    0x00236814 ldr r3, [r5, 0xc]                                 |     r3 = *((r5 + 0xc));
                                                                 |     if (r3 != 0) {
    0x00236816 cbz r3, 0x23682e                                  |         
    0x00236818 ldr r1, [r3]                                      |         r1 = *(r3);
    0x0023681a mov r0, r4                                        |         r0 = r4;
    0x0023681c blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236820 ldr r1, [pc, 0xec]                                |         
    0x00236822 mov r2, r0                                        |         r2 = r0;
    0x00236824 movs r3, 1                                        |         r3 = 1;
    0x00236826 mov r0, r4                                        |         r0 = r4;
    0x00236828 add r1, pc                                        |         r1 = 0x46d13c;
    0x0023682a blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x0023682e ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
                                                                 |     if (r3 != 0) {
    0x00236830 cbz r3, 0x236848                                  |         
    0x00236832 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236834 mov r0, r4                                        |         r0 = r4;
    0x00236836 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x0023683a ldr r1, [pc, 0xd8]                                |         
    0x0023683c mov r2, r0                                        |         r2 = r0;
    0x0023683e movs r3, 1                                        |         r3 = 1;
    0x00236840 mov r0, r4                                        |         r0 = r4;
    0x00236842 add r1, pc                                        |         r1 = 0x46d15c;
    0x00236844 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236848 ldr r3, [r5, 0x14]                                |     r3 = *((r5 + 0x14));
                                                                 |     if (r3 != 0) {
    0x0023684a cbz r3, 0x236862                                  |         
    0x0023684c ldr r1, [r3]                                      |         r1 = *(r3);
    0x0023684e mov r0, r4                                        |         r0 = r4;
    0x00236850 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236854 ldr r1, [pc, 0xc0]                                |         
    0x00236856 mov r2, r0                                        |         r2 = r0;
    0x00236858 movs r3, 1                                        |         r3 = 1;
    0x0023685a mov r0, r4                                        |         r0 = r4;
    0x0023685c add r1, pc                                        |         r1 = 0x46d178;
    0x0023685e blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236862 ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 |     if (r3 != 0) {
    0x00236864 cbz r3, 0x23687c                                  |         
    0x00236866 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236868 mov r0, r4                                        |         r0 = r4;
    0x0023686a blx 0x1ea424                                      |         fcn_001ea424 ();
    0x0023686e ldr r1, [pc, 0xac]                                |         
    0x00236870 mov r2, r0                                        |         r2 = r0;
    0x00236872 movs r3, 1                                        |         r3 = 1;
    0x00236874 mov r0, r4                                        |         r0 = r4;
    0x00236876 add r1, pc                                        |         r1 = 0x46d198;
    0x00236878 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x0023687c ldr.w r8, [pc, 0xa0]                              |     
    0x00236880 add.w r3, r5, 0x1c                                |     r3 = r5 + 0x1c;
    0x00236884 ldr r1, [pc, 0x9c]                                |     
    0x00236886 mov.w r2, -1                                      |     r2 = -1;
    0x0023688a mov r0, r4                                        |     r0 = r4;
    0x0023688c add r8, pc                                        |     r8 = 0x46d1b0;
    0x0023688e add r1, pc                                        |     r1 = 0x46d1b6;
    0x00236890 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00236894 blx 0x1dc3cc                                      |     r0 = fcn_001dc3cc ();
    0x00236898 cbz r0, 0x2368a8                                  |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x0023689a add.w r4, r4, 0x16000                             |         r4 += 0x16000;
    0x0023689e ldr.w r0, [r4, 0x184]                             |         r0 = *((r4 + 0x184));
    0x002368a2 add sp, 8                                         |         
    0x002368a4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x002368a8 mov r1, r6                                        |         r1 = r6;
    0x002368aa movw r3, 0x76f                                    |         r3 = 0x76f;
    0x002368ae mov r2, r5                                        |         r2 = r5;
    0x002368b0 mov r0, r4                                        |         r0 = r4;
    0x002368b2 blx 0x1e6828                                      |         fcn_001e6828 ();
    0x002368b6 mov r3, r7                                        |         r3 = r7;
    0x002368b8 mov r2, r0                                        |         r2 = r0;
    0x002368ba mov r1, sb                                        |         r1 = sb;
    0x002368bc mov r0, r4                                        |         r0 = r4;
    0x002368be blx 0x1d9404                                      |         r0 = fcn_001d9404 ();
    0x002368c2 mov r6, r0                                        |         r6 = r0;
    0x002368c4 cmp r0, 0                                         |         
    0x002368c6 bne 0x23689a                                      |         
                                                                 |     }
    0x002368c8 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
                                                                 |     if (r3 == 0) {
    0x002368ca cbz r3, 0x2368fe                                  |         goto label_2;
                                                                 |     }
    0x002368cc ldr r2, [r5]                                      |     r2 = *(r5);
    0x002368ce cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x002368d0 ble 0x2368fe                                      |         goto label_2;
                                                                 |     }
    0x002368d2 ldr.w sl, [pc, 0x54]                              |     
    0x002368d6 mov r7, r0                                        |     r7 = r0;
    0x002368d8 add sl, pc                                        |     sl = 0x46d206;
    0x002368da b 0x2368de                                        |     goto label_3;
                                                                 | label_1:
    0x002368dc ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
                                                                 | label_3:
    0x002368de add r3, r7                                        |     r3 += r7;
    0x002368e0 mov.w r2, -1                                      |     r2 = -1;
    0x002368e4 mov r1, sl                                        |     r1 = sl;
    0x002368e6 mov r0, r4                                        |     r0 = r4;
    0x002368e8 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002368ec adds r6, 1                                        |     r6++;
    0x002368ee adds r7, 0x34                                     |     r7 += 0x34;
    0x002368f0 blx 0x1d801c                                      |     r0 = fcn_001d801c ();
    0x002368f4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002368f6 bne 0x23689a                                      |         goto label_0;
                                                                 |     }
    0x002368f8 ldr r3, [r5]                                      |     r3 = *(r5);
    0x002368fa cmp r3, r6                                        |     
                                                                 |     if (r3 > r6) {
    0x002368fc bgt 0x2368dc                                      |         goto label_1;
                                                                 |     }
                                                                 | label_2:
    0x002368fe mov r1, sb                                        |     r1 = sb;
    0x00236900 mov r0, r4                                        |     r0 = r4;
    0x00236902 add sp, 8                                         |     
    0x00236904 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x00236908 b.w 0x1cd900                                      |     return void (*0x1cd900)() ();
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x236ac0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tac__ServiceCapabilities ()             | void soap_out_tac_ServiceCapabilities (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00236ac0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00236ac4 mov sb, r1                                        |     sb = r1;
    0x00236ac6 sub sp, 8                                         |     
    0x00236ac8 ldr r1, [r3, 8]                                   |     r1 = *((r3 + 8));
    0x00236aca mov r5, r3                                        |     r5 = r3;
    0x00236acc mov r4, r0                                        |     r4 = r0;
    0x00236ace mov r6, r2                                        |     r6 = r2;
    0x00236ad0 ldr r7, [sp, 0x28]                                |     r7 = *(arg_28h);
    0x00236ad2 blx 0x1bba94                                      |     fcn_001bba94 ();
    0x00236ad6 ldr r1, [pc, 0x200]                               |     
    0x00236ad8 mov r2, r0                                        |     r2 = r0;
    0x00236ada movs r3, 1                                        |     r3 = 1;
    0x00236adc mov r0, r4                                        |     r0 = r4;
    0x00236ade add r1, pc                                        |     r1 = 0x46d7bc;
    0x00236ae0 blx 0x1dd7bc                                      |     fcn_001dd7bc ();
    0x00236ae4 ldr r3, [r5, 0xc]                                 |     r3 = *((r5 + 0xc));
                                                                 |     if (r3 != 0) {
    0x00236ae6 cbz r3, 0x236afe                                  |         
    0x00236ae8 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236aea mov r0, r4                                        |         r0 = r4;
    0x00236aec blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236af0 ldr r1, [pc, 0x1e8]                               |         
    0x00236af2 mov r2, r0                                        |         r2 = r0;
    0x00236af4 movs r3, 1                                        |         r3 = 1;
    0x00236af6 mov r0, r4                                        |         r0 = r4;
    0x00236af8 add r1, pc                                        |         r1 = 0x46d7d8;
    0x00236afa blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236afe ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
                                                                 |     if (r3 != 0) {
    0x00236b00 cbz r3, 0x236b18                                  |         
    0x00236b02 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236b04 mov r0, r4                                        |         r0 = r4;
    0x00236b06 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236b08 stc p9, c4, [lr], {0x75}                          |         __asm ("stc p9, c4, [lr], {0x75}");
    0x00236b0c mov r2, r0                                        |         r2 = r0;
    0x00236b0e movs r3, 1                                        |         r3 = 1;
    0x00236b10 mov r0, r4                                        |         r0 = r4;
    0x00236b12 add r1, pc                                        |         r1 += pc;
    0x00236b14 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236b18 ldr r3, [r5, 0x14]                                |     r3 = *((r5 + 0x14));
                                                                 |     if (r3 != 0) {
    0x00236b1a cbz r3, 0x236b32                                  |         
    0x00236b1c ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236b1e mov r0, r4                                        |         r0 = r4;
    0x00236b20 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236b24 ldr r1, [pc, 0x1bc]                               |         
    0x00236b26 mov r2, r0                                        |         r2 = r0;
    0x00236b28 movs r3, 1                                        |         r3 = 1;
    0x00236b2a mov r0, r4                                        |         r0 = r4;
    0x00236b2c add r1, pc                                        |         r1 = 0x46d814;
    0x00236b2e blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236b32 ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 |     if (r3 != 0) {
    0x00236b34 cbz r3, 0x236b4c                                  |         
    0x00236b36 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236b38 mov r0, r4                                        |         r0 = r4;
    0x00236b3a blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236b3e ldr r1, [pc, 0x1a8]                               |         
    0x00236b40 mov r2, r0                                        |         r2 = r0;
    0x00236b42 movs r3, 1                                        |         r3 = 1;
    0x00236b44 mov r0, r4                                        |         r0 = r4;
    0x00236b46 add r1, pc                                        |         r1 = 0x46d834;
    0x00236b48 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236b4c ldr r3, [r5, 0x1c]                                |     r3 = *((r5 + 0x1c));
                                                                 |     if (r3 != 0) {
    0x00236b4e cbz r3, 0x236b66                                  |         
    0x00236b50 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236b52 mov r0, r4                                        |         r0 = r4;
    0x00236b54 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236b58 ldr r1, [pc, 0x190]                               |         
    0x00236b5a mov r2, r0                                        |         r2 = r0;
    0x00236b5c movs r3, 1                                        |         r3 = 1;
    0x00236b5e mov r0, r4                                        |         r0 = r4;
    0x00236b60 add r1, pc                                        |         r1 = 0x46d850;
    0x00236b62 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236b66 ldr r3, [r5, 0x20]                                |     r3 = *((r5 + 0x20));
                                                                 |     if (r3 != 0) {
    0x00236b68 cbz r3, 0x236b80                                  |         
    0x00236b6a ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236b6c mov r0, r4                                        |         r0 = r4;
    0x00236b6e blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236b72 ldr r1, [pc, 0x17c]                               |         
    0x00236b74 mov r2, r0                                        |         r2 = r0;
    0x00236b76 movs r3, 1                                        |         r3 = 1;
    0x00236b78 mov r0, r4                                        |         r0 = r4;
    0x00236b7a add r1, pc                                        |         r1 = 0x46d870;
    0x00236b7c blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236b80 ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
                                                                 |     if (r3 != 0) {
    0x00236b82 cbz r3, 0x236b9a                                  |         
    0x00236b84 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236b86 mov r0, r4                                        |         r0 = r4;
    0x00236b88 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236b8c ldr r1, [pc, 0x164]                               |         
    0x00236b8e mov r2, r0                                        |         r2 = r0;
    0x00236b90 movs r3, 1                                        |         r3 = 1;
    0x00236b92 mov r0, r4                                        |         r0 = r4;
    0x00236b94 add r1, pc                                        |         r1 = 0x46d88c;
    0x00236b96 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236b9a ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
                                                                 |     if (r3 != 0) {
    0x00236b9c cbz r3, 0x236bb4                                  |         
    0x00236b9e ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236ba0 mov r0, r4                                        |         r0 = r4;
    0x00236ba2 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236ba6 ldr r1, [pc, 0x150]                               |         
    0x00236ba8 mov r2, r0                                        |         r2 = r0;
    0x00236baa movs r3, 1                                        |         r3 = 1;
    0x00236bac mov r0, r4                                        |         r0 = r4;
    0x00236bae add r1, pc                                        |         r1 = 0x46d8ac;
    0x00236bb0 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236bb4 ldr r3, [r5, 0x2c]                                |     r3 = *((r5 + 0x2c));
                                                                 |     if (r3 != 0) {
    0x00236bb6 cbz r3, 0x236bce                                  |         
    0x00236bb8 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236bba mov r0, r4                                        |         r0 = r4;
    0x00236bbc blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236bc0 ldr r1, [pc, 0x138]                               |         
    0x00236bc2 mov r2, r0                                        |         r2 = r0;
    0x00236bc4 movs r3, 1                                        |         r3 = 1;
    0x00236bc6 mov r0, r4                                        |         r0 = r4;
    0x00236bc8 add r1, pc                                        |         r1 = 0x46d8c8;
    0x00236bca blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236bce ldr r3, [r5, 0x30]                                |     r3 = *((r5 + 0x30));
                                                                 |     if (r3 != 0) {
    0x00236bd0 cbz r3, 0x236be8                                  |         
    0x00236bd2 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236bd4 mov r0, r4                                        |         r0 = r4;
    0x00236bd6 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236bda ldr r1, [pc, 0x124]                               |         
    0x00236bdc mov r2, r0                                        |         r2 = r0;
    0x00236bde movs r3, 1                                        |         r3 = 1;
    0x00236be0 mov r0, r4                                        |         r0 = r4;
    0x00236be2 add r1, pc                                        |         r1 = 0x46d8e8;
    0x00236be4 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236be8 ldr r3, [r5, 0x34]                                |     r3 = *((r5 + 0x34));
                                                                 |     if (r3 != 0) {
    0x00236bea cbz r3, 0x236c02                                  |         
    0x00236bec ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236bee mov r0, r4                                        |         r0 = r4;
    0x00236bf0 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236bf4 ldr r1, [pc, 0x10c]                               |         
    0x00236bf6 mov r2, r0                                        |         r2 = r0;
    0x00236bf8 movs r3, 1                                        |         r3 = 1;
    0x00236bfa mov r0, r4                                        |         r0 = r4;
    0x00236bfc add r1, pc                                        |         r1 = 0x46d904;
    0x00236bfe blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236c02 ldr r3, [r5, 0x38]                                |     r3 = *((r5 + 0x38));
                                                                 |     if (r3 != 0) {
    0x00236c04 cbz r3, 0x236c1c                                  |         
    0x00236c06 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00236c08 mov r0, r4                                        |         r0 = r4;
    0x00236c0a blx 0x1ea424                                      |         fcn_001ea424 ();
    0x00236c0e ldr r1, [pc, 0xf8]                                |         
    0x00236c10 mov r2, r0                                        |         r2 = r0;
    0x00236c12 movs r3, 1                                        |         r3 = 1;
    0x00236c14 mov r0, r4                                        |         r0 = r4;
    0x00236c16 add r1, pc                                        |         r1 = 0x46d924;
    0x00236c18 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x00236c1c ldr r1, [r5, 0x3c]                                |     r1 = *((r5 + 0x3c));
    0x00236c1e mov r0, r4                                        |     r0 = r4;
    0x00236c20 blx 0x1ea424                                      |     fcn_001ea424 ();
    0x00236c24 ldr r1, [pc, 0xe4]                                |     
    0x00236c26 mov r2, r0                                        |     r2 = r0;
    0x00236c28 movs r3, 1                                        |     r3 = 1;
    0x00236c2a mov r0, r4                                        |     r0 = r4;
    0x00236c2c ldr.w r8, [pc, 0xe0]                              |     r8 = *(0x00236d10);
    0x00236c30 add r1, pc                                        |     r1 = 0x46d940;
    0x00236c32 blx 0x1dd7bc                                      |     fcn_001dd7bc ();
    0x00236c36 ldr r1, [r5, 0x40]                                |     r1 = *((r5 + 0x40));
    0x00236c38 mov r0, r4                                        |     r0 = r4;
    0x00236c3a blx 0x1ea424                                      |     fcn_001ea424 ();
    0x00236c3e ldr r1, [pc, 0xd4]                                |     
    0x00236c40 mov r2, r0                                        |     r2 = r0;
    0x00236c42 movs r3, 1                                        |     r3 = 1;
    0x00236c44 mov r0, r4                                        |     r0 = r4;
    0x00236c46 add r8, pc                                        |     r8 += pc;
    0x00236c48 add r1, pc                                        |     r1 = 0x46d962;
    0x00236c4a blx 0x1dd7bc                                      |     fcn_001dd7bc ();
    0x00236c4e ldr r1, [pc, 0xc8]                                |     
    0x00236c50 add.w r3, r5, 0x44                                |     r3 = r5 + 0x44;
    0x00236c54 mov.w r2, -1                                      |     r2 = -1;
    0x00236c58 mov r0, r4                                        |     r0 = r4;
    0x00236c5a str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00236c5e add r1, pc                                        |     r1 = 0x46d97c;
    0x00236c60 blx 0x1dc3cc                                      |     r0 = fcn_001dc3cc ();
    0x00236c64 cbz r0, 0x236c74                                  |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x00236c66 add.w r4, r4, 0x16000                             |         r4 += 0x16000;
    0x00236c6a ldr.w r0, [r4, 0x184]                             |         r0 = *((r4 + 0x184));
    0x00236c6e add sp, 8                                         |         
    0x00236c70 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x00236c74 mov r1, r6                                        |         r1 = r6;
    0x00236c76 movw r3, 0x76b                                    |         r3 = 0x76b;
    0x00236c7a mov r2, r5                                        |         r2 = r5;
    0x00236c7c mov r0, r4                                        |         r0 = r4;
    0x00236c7e blx 0x1e6828                                      |         fcn_001e6828 ();
    0x00236c82 mov r3, r7                                        |         r3 = r7;
    0x00236c84 mov r2, r0                                        |         r2 = r0;
    0x00236c86 mov r1, sb                                        |         r1 = sb;
    0x00236c88 mov r0, r4                                        |         r0 = r4;
    0x00236c8a blx 0x1d9404                                      |         r0 = fcn_001d9404 ();
    0x00236c8e mov r6, r0                                        |         r6 = r0;
    0x00236c90 cmp r0, 0                                         |         
    0x00236c92 bne 0x236c66                                      |         
                                                                 |     }
    0x00236c94 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
                                                                 |     if (r3 == 0) {
    0x00236c96 cbz r3, 0x236cca                                  |         goto label_2;
                                                                 |     }
    0x00236c98 ldr r2, [r5]                                      |     r2 = *(r5);
    0x00236c9a cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x00236c9c ble 0x236cca                                      |         goto label_2;
                                                                 |     }
    0x00236c9e ldr.w sl, [pc, 0x7c]                              |     
    0x00236ca2 mov r7, r0                                        |     r7 = r0;
    0x00236ca4 add sl, pc                                        |     sl = 0x46d9c6;
    0x00236ca6 b 0x236caa                                        |     goto label_3;
                                                                 | label_1:
    0x00236ca8 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
                                                                 | label_3:
    0x00236caa add r3, r7                                        |     r3 += r7;
    0x00236cac mov.w r2, -1                                      |     r2 = -1;
    0x00236cb0 mov r1, sl                                        |     r1 = sl;
    0x00236cb2 mov r0, r4                                        |     r0 = r4;
    0x00236cb4 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00236cb8 adds r6, 1                                        |     r6++;
    0x00236cba adds r7, 0x34                                     |     r7 += 0x34;
    0x00236cbc blx 0x1d801c                                      |     r0 = fcn_001d801c ();
    0x00236cc0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00236cc2 bne 0x236c66                                      |         goto label_0;
                                                                 |     }
    0x00236cc4 ldr r3, [r5]                                      |     r3 = *(r5);
    0x00236cc6 cmp r3, r6                                        |     
                                                                 |     if (r3 > r6) {
    0x00236cc8 bgt 0x236ca8                                      |         goto label_1;
                                                                 |     }
                                                                 | label_2:
    0x00236cca mov r1, sb                                        |     r1 = sb;
    0x00236ccc mov r0, r4                                        |     r0 = r4;
    0x00236cce add sp, 8                                         |     
    0x00236cd0 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x00236cd4 b.w 0x1cd900                                      |     return void (*0x1cd900)() ();
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x235e54 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_out_tdc__DoorCapabilities ()            | void soap_out_tdc_DoorCapabilities (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00235e54 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00235e58 mov r5, r3                                    |     r5 = r3;
    0x00235e5a ldr r3, [r3, 8]                               |     r3 = *((r3 + 8));
    0x00235e5c sub sp, 8                                     |     
    0x00235e5e mov r4, r0                                    |     r4 = r0;
    0x00235e60 mov sb, r1                                    |     sb = r1;
    0x00235e62 ldr r7, [sp, 0x28]                            |     r7 = *(arg_28h);
    0x00235e64 mov r6, r2                                    |     r6 = r2;
                                                             |     if (r3 != 0) {
    0x00235e66 cbz r3, 0x235e7c                              |         
    0x00235e68 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235e6a blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235e6e ldr r1, [pc, 0x23c]                           |         
    0x00235e70 mov r2, r0                                    |         r2 = r0;
    0x00235e72 movs r3, 1                                    |         r3 = 1;
    0x00235e74 mov r0, r4                                    |         r0 = r4;
    0x00235e76 add r1, pc                                    |         r1 = 0x46bf28;
    0x00235e78 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235e7c ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
                                                             |     if (r3 != 0) {
    0x00235e7e cbz r3, 0x235e96                              |         
    0x00235e80 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235e82 mov r0, r4                                    |         r0 = r4;
    0x00235e84 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235e88 ldr r1, [pc, 0x224]                           |         
    0x00235e8a mov r2, r0                                    |         r2 = r0;
    0x00235e8c movs r3, 1                                    |         r3 = 1;
    0x00235e8e mov r0, r4                                    |         r0 = r4;
    0x00235e90 add r1, pc                                    |         r1 = 0x46bf44;
    0x00235e92 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235e96 ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
                                                             |     if (r3 != 0) {
    0x00235e98 cbz r3, 0x235eb0                              |         
    0x00235e9a ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235e9c mov r0, r4                                    |         r0 = r4;
    0x00235e9e blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235ea2 ldr r1, [pc, 0x210]                           |         
    0x00235ea4 mov r2, r0                                    |         r2 = r0;
    0x00235ea6 movs r3, 1                                    |         r3 = 1;
    0x00235ea8 mov r0, r4                                    |         r0 = r4;
    0x00235eaa add r1, pc                                    |         r1 = 0x46bf64;
    0x00235eac blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235eb0 ldr r3, [r5, 0x14]                            |     r3 = *((r5 + 0x14));
                                                             |     if (r3 != 0) {
    0x00235eb2 cbz r3, 0x235eca                              |         
    0x00235eb4 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235eb6 mov r0, r4                                    |         r0 = r4;
    0x00235eb8 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235ebc ldr r1, [pc, 0x1f8]                           |         
    0x00235ebe mov r2, r0                                    |         r2 = r0;
    0x00235ec0 movs r3, 1                                    |         r3 = 1;
    0x00235ec2 mov r0, r4                                    |         r0 = r4;
    0x00235ec4 add r1, pc                                    |         r1 = 0x46bf80;
    0x00235ec6 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235eca ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             |     if (r3 != 0) {
    0x00235ecc cbz r3, 0x235ee4                              |         
    0x00235ece ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235ed0 mov r0, r4                                    |         r0 = r4;
    0x00235ed2 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235ed6 ldr r1, [pc, 0x1e4]                           |         
    0x00235ed8 mov r2, r0                                    |         r2 = r0;
    0x00235eda movs r3, 1                                    |         r3 = 1;
    0x00235edc mov r0, r4                                    |         r0 = r4;
    0x00235ede add r1, pc                                    |         r1 = 0x46bfa0;
    0x00235ee0 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235ee4 ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
                                                             |     if (r3 != 0) {
    0x00235ee6 cbz r3, 0x235efe                              |         
    0x00235ee8 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235eea mov r0, r4                                    |         r0 = r4;
    0x00235eec blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235ef0 ldr r1, [pc, 0x1cc]                           |         
    0x00235ef2 mov r2, r0                                    |         r2 = r0;
    0x00235ef4 movs r3, 1                                    |         r3 = 1;
    0x00235ef6 mov r0, r4                                    |         r0 = r4;
    0x00235ef8 add r1, pc                                    |         r1 = 0x46bfbc;
    0x00235efa blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235efe ldr r3, [r5, 0x20]                            |     r3 = *((r5 + 0x20));
                                                             |     if (r3 != 0) {
    0x00235f00 cbz r3, 0x235f18                              |         
    0x00235f02 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235f04 mov r0, r4                                    |         r0 = r4;
    0x00235f06 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235f08 eor.w sb, lr, lr, asr 17                      |         sb = lr ^ (lr >> 17);
    0x00235f0c mov r2, r0                                    |         r2 = r0;
    0x00235f0e movs r3, 1                                    |         r3 = 1;
    0x00235f10 mov r0, r4                                    |         r0 = r4;
    0x00235f12 add r1, pc                                    |         r1 += pc;
    0x00235f14 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235f18 ldr r3, [r5, 0x24]                            |     r3 = *((r5 + 0x24));
                                                             |     if (r3 != 0) {
    0x00235f1a cbz r3, 0x235f32                              |         
    0x00235f1c ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235f1e mov r0, r4                                    |         r0 = r4;
    0x00235f20 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235f24 ldr r1, [pc, 0x1a0]                           |         
    0x00235f26 mov r2, r0                                    |         r2 = r0;
    0x00235f28 movs r3, 1                                    |         r3 = 1;
    0x00235f2a mov r0, r4                                    |         r0 = r4;
    0x00235f2c add r1, pc                                    |         r1 = 0x46bff8;
    0x00235f2e blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235f32 ldr r3, [r5, 0x28]                            |     r3 = *((r5 + 0x28));
                                                             |     if (r3 != 0) {
    0x00235f34 cbz r3, 0x235f4c                              |         
    0x00235f36 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235f38 mov r0, r4                                    |         r0 = r4;
    0x00235f3a blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235f3c orns sb, r4, r3, asr 17                       |         __asm ("orns sb, r4, r3, asr 17");
    0x00235f40 mov r2, r0                                    |         r2 = r0;
    0x00235f42 movs r3, 1                                    |         r3 = 1;
    0x00235f44 mov r0, r4                                    |         r0 = r4;
    0x00235f46 add r1, pc                                    |         r1 += pc;
    0x00235f48 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235f4c ldr r3, [r5, 0x2c]                            |     r3 = *((r5 + 0x2c));
                                                             |     if (r3 != 0) {
    0x00235f4e cbz r3, 0x235f66                              |         
    0x00235f50 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235f52 mov r0, r4                                    |         r0 = r4;
    0x00235f54 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235f58 ldr r1, [pc, 0x174]                           |         
    0x00235f5a mov r2, r0                                    |         r2 = r0;
    0x00235f5c movs r3, 1                                    |         r3 = 1;
    0x00235f5e mov r0, r4                                    |         r0 = r4;
    0x00235f60 add r1, pc                                    |         r1 = 0x46c034;
    0x00235f62 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235f66 ldr r3, [r5, 0x30]                            |     r3 = *((r5 + 0x30));
                                                             |     if (r3 != 0) {
    0x00235f68 cbz r3, 0x235f80                              |         
    0x00235f6a ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235f6c mov r0, r4                                    |         r0 = r4;
    0x00235f6e blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235f70 orrs.w sb, sl, r8, lsr 17                     |         sb = sl | (r8 >> 17);
    0x00235f74 mov r2, r0                                    |         r2 = r0;
    0x00235f76 movs r3, 1                                    |         r3 = 1;
    0x00235f78 mov r0, r4                                    |         r0 = r4;
    0x00235f7a add r1, pc                                    |         r1 += pc;
    0x00235f7c blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235f80 ldr r3, [r5, 0x34]                            |     r3 = *((r5 + 0x34));
                                                             |     if (r3 != 0) {
    0x00235f82 cbz r3, 0x235f9a                              |         
    0x00235f84 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235f86 mov r0, r4                                    |         r0 = r4;
    0x00235f88 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235f8c ldr r1, [pc, 0x148]                           |         
    0x00235f8e mov r2, r0                                    |         r2 = r0;
    0x00235f90 movs r3, 1                                    |         r3 = 1;
    0x00235f92 mov r0, r4                                    |         r0 = r4;
    0x00235f94 add r1, pc                                    |         r1 = 0x46c070;
    0x00235f96 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235f9a ldr r3, [r5, 0x38]                            |     r3 = *((r5 + 0x38));
                                                             |     if (r3 != 0) {
    0x00235f9c cbz r3, 0x235fb4                              |         
    0x00235f9e ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235fa0 mov r0, r4                                    |         r0 = r4;
    0x00235fa2 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235fa6 ldr r1, [pc, 0x134]                           |         
    0x00235fa8 mov r2, r0                                    |         r2 = r0;
    0x00235faa movs r3, 1                                    |         r3 = 1;
    0x00235fac mov r0, r4                                    |         r0 = r4;
    0x00235fae add r1, pc                                    |         r1 = 0x46c090;
    0x00235fb0 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235fb4 ldr r3, [r5, 0x3c]                            |     r3 = *((r5 + 0x3c));
                                                             |     if (r3 != 0) {
    0x00235fb6 cbz r3, 0x235fce                              |         
    0x00235fb8 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235fba mov r0, r4                                    |         r0 = r4;
    0x00235fbc blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235fc0 ldr r1, [pc, 0x11c]                           |         
    0x00235fc2 mov r2, r0                                    |         r2 = r0;
    0x00235fc4 movs r3, 1                                    |         r3 = 1;
    0x00235fc6 mov r0, r4                                    |         r0 = r4;
    0x00235fc8 add r1, pc                                    |         r1 = 0x46c0ac;
    0x00235fca blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235fce ldr r3, [r5, 0x40]                            |     r3 = *((r5 + 0x40));
                                                             |     if (r3 != 0) {
    0x00235fd0 cbz r3, 0x235fe8                              |         
    0x00235fd2 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235fd4 mov r0, r4                                    |         r0 = r4;
    0x00235fd6 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235fda ldr r1, [pc, 0x108]                           |         
    0x00235fdc mov r2, r0                                    |         r2 = r0;
    0x00235fde movs r3, 1                                    |         r3 = 1;
    0x00235fe0 mov r0, r4                                    |         r0 = r4;
    0x00235fe2 add r1, pc                                    |         r1 = 0x46c0cc;
    0x00235fe4 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00235fe8 ldr r3, [r5, 0x44]                            |     r3 = *((r5 + 0x44));
                                                             |     if (r3 != 0) {
    0x00235fea cbz r3, 0x236002                              |         
    0x00235fec ldr r1, [r3]                                  |         r1 = *(r3);
    0x00235fee mov r0, r4                                    |         r0 = r4;
    0x00235ff0 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00235ff4 ldr r1, [pc, 0xf0]                            |         
    0x00235ff6 mov r2, r0                                    |         r2 = r0;
    0x00235ff8 movs r3, 1                                    |         r3 = 1;
    0x00235ffa mov r0, r4                                    |         r0 = r4;
    0x00235ffc add r1, pc                                    |         r1 = 0x46c0e8;
    0x00235ffe blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00236002 ldr r3, [r5, 0x48]                            |     r3 = *((r5 + 0x48));
                                                             |     if (r3 != 0) {
    0x00236004 cbz r3, 0x23601c                              |         
    0x00236006 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00236008 mov r0, r4                                    |         r0 = r4;
    0x0023600a blx 0x1de5f4                                  |         fcn_001de5f4 ();
    0x0023600e ldr r1, [pc, 0xdc]                            |         
    0x00236010 mov r2, r0                                    |         r2 = r0;
    0x00236012 movs r3, 1                                    |         r3 = 1;
    0x00236014 mov r0, r4                                    |         r0 = r4;
    0x00236016 add r1, pc                                    |         r1 = 0x46c108;
    0x00236018 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x0023601c ldr.w r8, [pc, 0xd0]                          |     
    0x00236020 add.w r3, r5, 0x4c                            |     r3 = r5 + 0x4c;
    0x00236024 ldr r1, [pc, 0xcc]                            |     
    0x00236026 mov.w r2, -1                                  |     r2 = -1;
    0x0023602a mov r0, r4                                    |     r0 = r4;
    0x0023602c add r8, pc                                    |     r8 = 0x46c120;
    0x0023602e add r1, pc                                    |     r1 = 0x46c126;
    0x00236030 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x00236034 blx 0x1dc3cc                                  |     r0 = fcn_001dc3cc ();
    0x00236038 cbz r0, 0x236048                              |     
                                                             |     while (r0 != 0) {
                                                             | label_0:
    0x0023603a add.w r4, r4, 0x16000                         |         r4 += 0x16000;
    0x0023603e ldr.w r0, [r4, 0x184]                         |         r0 = *((r4 + 0x184));
    0x00236042 add sp, 8                                     |         
    0x00236044 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x00236048 mov r1, r6                                    |         r1 = r6;
    0x0023604a movw r3, 0x78d                                |         r3 = 0x78d;
    0x0023604e mov r2, r5                                    |         r2 = r5;
    0x00236050 mov r0, r4                                    |         r0 = r4;
    0x00236052 blx 0x1e6828                                  |         fcn_001e6828 ();
    0x00236056 mov r3, r7                                    |         r3 = r7;
    0x00236058 mov r2, r0                                    |         r2 = r0;
    0x0023605a mov r1, sb                                    |         r1 = sb;
    0x0023605c mov r0, r4                                    |         r0 = r4;
    0x0023605e blx 0x1d9404                                  |         r0 = fcn_001d9404 ();
    0x00236062 mov r6, r0                                    |         r6 = r0;
    0x00236064 cmp r0, 0                                     |         
    0x00236066 bne 0x23603a                                  |         
                                                             |     }
    0x00236068 ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
                                                             |     if (r3 == 0) {
    0x0023606a cbz r3, 0x23609e                              |         goto label_2;
                                                             |     }
    0x0023606c ldr r2, [r5]                                  |     r2 = *(r5);
    0x0023606e cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x00236070 ble 0x23609e                                  |         goto label_2;
                                                             |     }
    0x00236072 ldr.w sl, [pc, 0x84]                          |     
    0x00236076 mov r7, r0                                    |     r7 = r0;
    0x00236078 add sl, pc                                    |     sl = 0x46c176;
    0x0023607a b 0x23607e                                    |     goto label_3;
                                                             | label_1:
    0x0023607c ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
                                                             | label_3:
    0x0023607e add r3, r7                                    |     r3 += r7;
    0x00236080 mov.w r2, -1                                  |     r2 = -1;
    0x00236084 mov r1, sl                                    |     r1 = sl;
    0x00236086 mov r0, r4                                    |     r0 = r4;
    0x00236088 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x0023608c adds r6, 1                                    |     r6++;
    0x0023608e adds r7, 0x34                                 |     r7 += 0x34;
    0x00236090 blx 0x1d801c                                  |     r0 = fcn_001d801c ();
    0x00236094 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00236096 bne 0x23603a                                  |         goto label_0;
                                                             |     }
    0x00236098 ldr r3, [r5]                                  |     r3 = *(r5);
    0x0023609a cmp r3, r6                                    |     
                                                             |     if (r3 > r6) {
    0x0023609c bgt 0x23607c                                  |         goto label_1;
                                                             |     }
                                                             | label_2:
    0x0023609e mov r1, sb                                    |     r1 = sb;
    0x002360a0 mov r0, r4                                    |     r0 = r4;
    0x002360a2 add sp, 8                                     |     
    0x002360a4 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x002360a8 b.w 0x1cd900                                  |     return void (*0x1cd900)() ();
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x221c04 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.soap_out_tdc__DoorFaultState ()          | void soap_out_tdc_DoorFaultState (int16_t arg_18h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00221c04 push {r3, r4, r5, r6, r7, lr}             |     
    0x00221c06 mov r5, r3                                |     r5 = r3;
    0x00221c08 ldr r7, [sp, 0x18]                        |     r7 = *(arg_18h);
    0x00221c0a mov r4, r0                                |     r4 = r0;
    0x00221c0c mov r6, r1                                |     r6 = r1;
    0x00221c0e mov.w r3, 0x108                           |     r3 = 0x108;
    0x00221c12 mov r1, r2                                |     r1 = r2;
    0x00221c14 mov r2, r5                                |     r2 = r5;
    0x00221c16 blx 0x1e6828                              |     fcn_001e6828 ();
    0x00221c1a mov r3, r7                                |     r3 = r7;
    0x00221c1c mov r2, r0                                |     r2 = r0;
    0x00221c1e mov r1, r6                                |     r1 = r6;
    0x00221c20 mov r0, r4                                |     r0 = r4;
    0x00221c22 blx 0x1d9404                              |     r0 = fcn_001d9404 ();
    0x00221c26 cbz r0, 0x221c32                          |     
                                                         |     while (r0 != 0) {
    0x00221c28 add.w r4, r4, 0x16000                     |         r4 += 0x16000;
    0x00221c2c ldr.w r0, [r4, 0x184]                     |         r0 = *((r4 + 0x184));
    0x00221c30 pop {r3, r4, r5, r6, r7, pc}              |         
    0x00221c32 ldr r1, [r5]                              |         r1 = *(r5);
    0x00221c34 mov r0, r4                                |         r0 = r4;
    0x00221c36 blx 0x1d8dc0                              |         r0 = fcn_001d8dc0 ();
    0x00221c3a mov r1, r0                                |         r1 = r0;
    0x00221c3c mov r0, r4                                |         r0 = r4;
    0x00221c3e blx 0x1d1470                              |         r0 = fcn_001d1470 ();
    0x00221c42 cmp r0, 0                                 |         
    0x00221c44 bne 0x221c28                              |         
                                                         |     }
    0x00221c46 mov r1, r6                                |     r1 = r6;
    0x00221c48 mov r0, r4                                |     r0 = r4;
    0x00221c4a pop.w {r3, r4, r5, r6, r7, lr}            |     
    0x00221c4e b.w 0x1cd900                              |     return void (*0x1cd900)() ();
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2cd3e4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tdc__DoorFault ()                       | void soap_out_tdc_DoorFault (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x002cd3e4 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x002cd3e8 mov r5, r3                                        |     r5 = r3;
    0x002cd3ea ldr r3, [r3, 0x10]                                |     r3 = *((r3 + 0x10));
    0x002cd3ec sub sp, 8                                         |     
    0x002cd3ee mov r4, r0                                        |     r4 = r0;
    0x002cd3f0 mov r6, r1                                        |     r6 = r1;
    0x002cd3f2 ldr.w sb, [sp, 0x28]                              |     sb = *(arg_28h);
    0x002cd3f6 mov r7, r2                                        |     r7 = r2;
                                                                 |     if (r3 != 0) {
    0x002cd3f8 cbz r3, 0x2cd40e                                  |         
    0x002cd3fa ldr r1, [r3]                                      |         r1 = *(r3);
    0x002cd3fc blx 0x1ea424                                      |         fcn_001ea424 ();
    0x002cd400 ldr r1, [pc, 0x11c]                               |         
    0x002cd402 mov r2, r0                                        |         r2 = r0;
    0x002cd404 movs r3, 1                                        |         r3 = 1;
    0x002cd406 mov r0, r4                                        |         r0 = r4;
    0x002cd408 add r1, pc                                        |         r1 = 0x59a92c;
    0x002cd40a blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x002cd40e ldr r3, [r5, 0x14]                                |     r3 = *((r5 + 0x14));
                                                                 |     if (r3 != 0) {
    0x002cd410 cbz r3, 0x2cd428                                  |         
    0x002cd412 ldr r1, [r3]                                      |         r1 = *(r3);
    0x002cd414 mov r0, r4                                        |         r0 = r4;
    0x002cd416 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x002cd41a ldr r1, [pc, 0x108]                               |         
    0x002cd41c mov r2, r0                                        |         r2 = r0;
    0x002cd41e movs r3, 1                                        |         r3 = 1;
    0x002cd420 mov r0, r4                                        |         r0 = r4;
    0x002cd422 add r1, pc                                        |         r1 = 0x59a94c;
    0x002cd424 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x002cd428 ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 |     if (r3 != 0) {
    0x002cd42a cbz r3, 0x2cd442                                  |         
    0x002cd42c ldr r1, [r3]                                      |         r1 = *(r3);
    0x002cd42e mov r0, r4                                        |         r0 = r4;
    0x002cd430 blx 0x1ea424                                      |         fcn_001ea424 ();
    0x002cd434 ldr r1, [pc, 0xf0]                                |         
    0x002cd436 mov r2, r0                                        |         r2 = r0;
    0x002cd438 movs r3, 1                                        |         r3 = 1;
    0x002cd43a mov r0, r4                                        |         r0 = r4;
    0x002cd43c add r1, pc                                        |         r1 = 0x59a968;
    0x002cd43e blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x002cd442 ldr r3, [r5, 0x1c]                                |     r3 = *((r5 + 0x1c));
                                                                 |     if (r3 != 0) {
    0x002cd444 cbz r3, 0x2cd45c                                  |         
    0x002cd446 ldr r1, [r3]                                      |         r1 = *(r3);
    0x002cd448 mov r0, r4                                        |         r0 = r4;
    0x002cd44a blx 0x1ea424                                      |         fcn_001ea424 ();
    0x002cd44e ldr r1, [pc, 0xdc]                                |         
    0x002cd450 mov r2, r0                                        |         r2 = r0;
    0x002cd452 movs r3, 1                                        |         r3 = 1;
    0x002cd454 mov r0, r4                                        |         r0 = r4;
    0x002cd456 add r1, pc                                        |         r1 = 0x59a988;
    0x002cd458 blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x002cd45c ldr.w r8, [pc, 0xd0]                              |     
    0x002cd460 add.w r3, r5, 0x20                                |     r3 = r5 + 0x20;
    0x002cd464 ldr r1, [pc, 0xcc]                                |     
    0x002cd466 mov.w r2, -1                                      |     r2 = -1;
    0x002cd46a mov r0, r4                                        |     r0 = r4;
    0x002cd46c add r8, pc                                        |     r8 = 0x59a9a0;
    0x002cd46e add r1, pc                                        |     r1 = 0x59a9a6;
    0x002cd470 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002cd474 blx 0x1dc3cc                                      |     r0 = fcn_001dc3cc ();
    0x002cd478 cbz r0, 0x2cd488                                  |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x002cd47a add.w r4, r4, 0x16000                             |         r4 += 0x16000;
    0x002cd47e ldr.w r0, [r4, 0x184]                             |         r0 = *((r4 + 0x184));
    0x002cd482 add sp, 8                                         |         
    0x002cd484 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x002cd488 mov r1, r7                                        |         r1 = r7;
    0x002cd48a movw r3, 0x794                                    |         r3 = 0x794;
    0x002cd48e mov r2, r5                                        |         r2 = r5;
    0x002cd490 mov r0, r4                                        |         r0 = r4;
    0x002cd492 blx 0x1e6828                                      |         fcn_001e6828 ();
    0x002cd496 mov r3, sb                                        |         r3 = sb;
    0x002cd498 mov r2, r0                                        |         r2 = r0;
    0x002cd49a mov r1, r6                                        |         r1 = r6;
    0x002cd49c mov r0, r4                                        |         r0 = r4;
    0x002cd49e blx 0x1d9404                                      |         r0 = fcn_001d9404 ();
    0x002cd4a2 cmp r0, 0                                         |         
    0x002cd4a4 bne 0x2cd47a                                      |         
                                                                 |     }
    0x002cd4a6 ldr r1, [pc, 0x90]                                |     
    0x002cd4a8 mov r3, r5                                        |     r3 = r5;
    0x002cd4aa mov.w r2, -1                                      |     r2 = -1;
    0x002cd4ae mov r0, r4                                        |     r0 = r4;
    0x002cd4b0 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002cd4b4 add r1, pc                                        |     r1 = 0x59a9f2;
    0x002cd4b6 blx 0x1cda28                                      |     r0 = fcn_001cda28 ();
    0x002cd4ba cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002cd4bc bne 0x2cd47a                                      |         goto label_0;
                                                                 |     }
    0x002cd4be ldr r1, [pc, 0x7c]                                |     
    0x002cd4c0 adds r3, r5, 4                                    |     r3 = r5 + 4;
    0x002cd4c2 mov.w r2, -1                                      |     r2 = -1;
    0x002cd4c6 mov r0, r4                                        |     r0 = r4;
    0x002cd4c8 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002cd4cc add r1, pc                                        |     r1 = 0x59aa0e;
    0x002cd4ce blx 0x1c8834                                      |     r0 = fcn_001c8834 ();
    0x002cd4d2 mov r7, r0                                        |     r7 = r0;
    0x002cd4d4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002cd4d6 bne 0x2cd47a                                      |         goto label_0;
                                                                 |     }
    0x002cd4d8 ldr r3, [r5, 0xc]                                 |     r3 = *((r5 + 0xc));
                                                                 |     if (r3 == 0) {
    0x002cd4da cbz r3, 0x2cd510                                  |         goto label_2;
                                                                 |     }
    0x002cd4dc ldr r2, [r5, 8]                                   |     r2 = *((r5 + 8));
    0x002cd4de cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x002cd4e0 ble 0x2cd510                                      |         goto label_2;
                                                                 |     }
    0x002cd4e2 ldr.w sl, [pc, 0x5c]                              |     
    0x002cd4e6 mov sb, r0                                        |     sb = r0;
    0x002cd4e8 add sl, pc                                        |     sl = 0x59aa2e;
    0x002cd4ea b 0x2cd4ee                                        |     goto label_3;
                                                                 | label_1:
    0x002cd4ec ldr r3, [r5, 0xc]                                 |     r3 = *((r5 + 0xc));
                                                                 | label_3:
    0x002cd4ee add r3, sb                                        |     r3 += sb;
    0x002cd4f0 mov.w r2, -1                                      |     r2 = -1;
    0x002cd4f4 mov r1, sl                                        |     r1 = sl;
    0x002cd4f6 mov r0, r4                                        |     r0 = r4;
    0x002cd4f8 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002cd4fc adds r7, 1                                        |     r7++;
    0x002cd4fe add.w sb, sb, 0x34                                |     sb += 0x34;
    0x002cd502 blx 0x1d801c                                      |     r0 = fcn_001d801c ();
    0x002cd506 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002cd508 bne 0x2cd47a                                      |         goto label_0;
                                                                 |     }
    0x002cd50a ldr r3, [r5, 8]                                   |     r3 = *((r5 + 8));
    0x002cd50c cmp r3, r7                                        |     
                                                                 |     if (r3 > r7) {
    0x002cd50e bgt 0x2cd4ec                                      |         goto label_1;
                                                                 |     }
                                                                 | label_2:
    0x002cd510 mov r1, r6                                        |     r1 = r6;
    0x002cd512 mov r0, r4                                        |     r0 = r4;
    0x002cd514 add sp, 8                                         |     
    0x002cd516 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x002cd51a b.w 0x1cd900                                      |     return void (*0x1cd900)() ();
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x239ac4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_out_tds__SecurityCapabilities ()        | void soap_out_tds_SecurityCapabilities (int16_t arg_20h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00239ac4 push.w {r4, r5, r6, r7, r8, lr}               |     
    0x00239ac8 mov r5, r3                                    |     r5 = r3;
    0x00239aca ldr r3, [r3]                                  |     r3 = *(r3);
    0x00239acc sub sp, 8                                     |     
    0x00239ace mov r4, r0                                    |     r4 = r0;
    0x00239ad0 mov r6, r1                                    |     r6 = r1;
    0x00239ad2 ldr.w r8, [sp, 0x20]                          |     r8 = *(arg_20h);
    0x00239ad6 mov r7, r2                                    |     r7 = r2;
                                                             |     if (r3 != 0) {
    0x00239ad8 cbz r3, 0x239aee                              |         
    0x00239ada ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239adc blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239ae0 ldr r1, [pc, 0x1c0]                           |         
    0x00239ae2 mov r2, r0                                    |         r2 = r0;
    0x00239ae4 movs r3, 1                                    |         r3 = 1;
    0x00239ae6 mov r0, r4                                    |         r0 = r4;
    0x00239ae8 add r1, pc                                    |         r1 = 0x473790;
    0x00239aea blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239aee ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
                                                             |     if (r3 != 0) {
    0x00239af0 cbz r3, 0x239b08                              |         
    0x00239af2 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239af4 mov r0, r4                                    |         r0 = r4;
    0x00239af6 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239afa ldr r1, [pc, 0x1ac]                           |         
    0x00239afc mov r2, r0                                    |         r2 = r0;
    0x00239afe movs r3, 1                                    |         r3 = 1;
    0x00239b00 mov r0, r4                                    |         r0 = r4;
    0x00239b02 add r1, pc                                    |         r1 = 0x4737b0;
    0x00239b04 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239b08 ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
                                                             |     if (r3 != 0) {
    0x00239b0a cbz r3, 0x239b22                              |         
    0x00239b0c ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239b0e mov r0, r4                                    |         r0 = r4;
    0x00239b10 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239b14 ldr r1, [pc, 0x194]                           |         
    0x00239b16 mov r2, r0                                    |         r2 = r0;
    0x00239b18 movs r3, 1                                    |         r3 = 1;
    0x00239b1a mov r0, r4                                    |         r0 = r4;
    0x00239b1c add r1, pc                                    |         r1 = 0x4737cc;
    0x00239b1e blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239b22 ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
                                                             |     if (r3 != 0) {
    0x00239b24 cbz r3, 0x239b3c                              |         
    0x00239b26 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239b28 mov r0, r4                                    |         r0 = r4;
    0x00239b2a blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239b2e ldr r1, [pc, 0x180]                           |         
    0x00239b30 mov r2, r0                                    |         r2 = r0;
    0x00239b32 movs r3, 1                                    |         r3 = 1;
    0x00239b34 mov r0, r4                                    |         r0 = r4;
    0x00239b36 add r1, pc                                    |         r1 = 0x4737ec;
    0x00239b38 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239b3c ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
                                                             |     if (r3 != 0) {
    0x00239b3e cbz r3, 0x239b56                              |         
    0x00239b40 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239b42 mov r0, r4                                    |         r0 = r4;
    0x00239b44 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239b48 ldr r1, [pc, 0x168]                           |         
    0x00239b4a mov r2, r0                                    |         r2 = r0;
    0x00239b4c movs r3, 1                                    |         r3 = 1;
    0x00239b4e mov r0, r4                                    |         r0 = r4;
    0x00239b50 add r1, pc                                    |         r1 = 0x473808;
    0x00239b52 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239b56 ldr r3, [r5, 0x14]                            |     r3 = *((r5 + 0x14));
                                                             |     if (r3 != 0) {
    0x00239b58 cbz r3, 0x239b70                              |         
    0x00239b5a ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239b5c mov r0, r4                                    |         r0 = r4;
    0x00239b5e blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239b62 ldr r1, [pc, 0x154]                           |         
    0x00239b64 mov r2, r0                                    |         r2 = r0;
    0x00239b66 movs r3, 1                                    |         r3 = 1;
    0x00239b68 mov r0, r4                                    |         r0 = r4;
    0x00239b6a add r1, pc                                    |         r1 = 0x473828;
    0x00239b6c blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239b70 ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             |     if (r3 != 0) {
    0x00239b72 cbz r3, 0x239b8a                              |         
    0x00239b74 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239b76 mov r0, r4                                    |         r0 = r4;
    0x00239b78 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239b7c ldr r1, [pc, 0x13c]                           |         
    0x00239b7e mov r2, r0                                    |         r2 = r0;
    0x00239b80 movs r3, 1                                    |         r3 = 1;
    0x00239b82 mov r0, r4                                    |         r0 = r4;
    0x00239b84 add r1, pc                                    |         r1 = 0x473844;
    0x00239b86 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239b8a ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
                                                             |     if (r3 != 0) {
    0x00239b8c cbz r3, 0x239ba4                              |         
    0x00239b8e ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239b90 mov r0, r4                                    |         r0 = r4;
    0x00239b92 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239b96 ldr r1, [pc, 0x128]                           |         
    0x00239b98 mov r2, r0                                    |         r2 = r0;
    0x00239b9a movs r3, 1                                    |         r3 = 1;
    0x00239b9c mov r0, r4                                    |         r0 = r4;
    0x00239b9e add r1, pc                                    |         r1 = 0x473864;
    0x00239ba0 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239ba4 ldr r3, [r5, 0x20]                            |     r3 = *((r5 + 0x20));
                                                             |     if (r3 != 0) {
    0x00239ba6 cbz r3, 0x239bbe                              |         
    0x00239ba8 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239baa mov r0, r4                                    |         r0 = r4;
    0x00239bac blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239bb0 ldr r1, [pc, 0x110]                           |         
    0x00239bb2 mov r2, r0                                    |         r2 = r0;
    0x00239bb4 movs r3, 1                                    |         r3 = 1;
    0x00239bb6 mov r0, r4                                    |         r0 = r4;
    0x00239bb8 add r1, pc                                    |         r1 = 0x473880;
    0x00239bba blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239bbe ldr r3, [r5, 0x24]                            |     r3 = *((r5 + 0x24));
                                                             |     if (r3 != 0) {
    0x00239bc0 cbz r3, 0x239bd8                              |         
    0x00239bc2 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239bc4 mov r0, r4                                    |         r0 = r4;
    0x00239bc6 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239bca ldr r1, [pc, 0xfc]                            |         
    0x00239bcc mov r2, r0                                    |         r2 = r0;
    0x00239bce movs r3, 1                                    |         r3 = 1;
    0x00239bd0 mov r0, r4                                    |         r0 = r4;
    0x00239bd2 add r1, pc                                    |         r1 = 0x4738a0;
    0x00239bd4 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239bd8 ldr r3, [r5, 0x28]                            |     r3 = *((r5 + 0x28));
                                                             |     if (r3 != 0) {
    0x00239bda cbz r3, 0x239bf2                              |         
    0x00239bdc ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239bde mov r0, r4                                    |         r0 = r4;
    0x00239be0 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239be4 ldr r1, [pc, 0xe4]                            |         
    0x00239be6 mov r2, r0                                    |         r2 = r0;
    0x00239be8 movs r3, 1                                    |         r3 = 1;
    0x00239bea mov r0, r4                                    |         r0 = r4;
    0x00239bec add r1, pc                                    |         r1 = 0x4738bc;
    0x00239bee blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239bf2 ldr r3, [r5, 0x2c]                            |     r3 = *((r5 + 0x2c));
                                                             |     if (r3 != 0) {
    0x00239bf4 cbz r3, 0x239c0c                              |         
    0x00239bf6 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239bf8 mov r0, r4                                    |         r0 = r4;
    0x00239bfa blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239bfe ldr r1, [pc, 0xd0]                            |         
    0x00239c00 mov r2, r0                                    |         r2 = r0;
    0x00239c02 movs r3, 1                                    |         r3 = 1;
    0x00239c04 mov r0, r4                                    |         r0 = r4;
    0x00239c06 add r1, pc                                    |         r1 = 0x4738dc;
    0x00239c08 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239c0c ldr r3, [r5, 0x30]                            |     r3 = *((r5 + 0x30));
                                                             |     if (r3 != 0) {
    0x00239c0e cbz r3, 0x239c26                              |         
    0x00239c10 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239c12 mov r0, r4                                    |         r0 = r4;
    0x00239c14 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239c18 ldr r1, [pc, 0xb8]                            |         
    0x00239c1a mov r2, r0                                    |         r2 = r0;
    0x00239c1c movs r3, 1                                    |         r3 = 1;
    0x00239c1e mov r0, r4                                    |         r0 = r4;
    0x00239c20 add r1, pc                                    |         r1 = 0x4738f8;
    0x00239c22 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239c26 ldr r3, [r5, 0x34]                            |     r3 = *((r5 + 0x34));
                                                             |     if (r3 != 0) {
    0x00239c28 cbz r3, 0x239c40                              |         
    0x00239c2a ldr r1, [r3]                                  |         r1 = *(r3);
    0x00239c2c mov r0, r4                                    |         r0 = r4;
    0x00239c2e blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00239c32 ldr r1, [pc, 0xa4]                            |         
    0x00239c34 mov r2, r0                                    |         r2 = r0;
    0x00239c36 movs r3, 1                                    |         r3 = 1;
    0x00239c38 mov r0, r4                                    |         r0 = r4;
    0x00239c3a add r1, pc                                    |         r1 = 0x473918;
    0x00239c3c blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239c40 ldr r2, [r5, 0x38]                            |     r2 = *((r5 + 0x38));
                                                             |     if (r2 != 0) {
    0x00239c42 cbz r2, 0x239c50                              |         
    0x00239c44 ldr r1, [pc, 0x94]                            |         
    0x00239c46 movs r3, 1                                    |         r3 = 1;
    0x00239c48 mov r0, r4                                    |         r0 = r4;
    0x00239c4a add r1, pc                                    |         r1 = 0x47392a;
    0x00239c4c blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00239c50 ldr r3, [pc, 0x8c]                            |     
    0x00239c52 mov.w r2, -1                                  |     r2 = -1;
    0x00239c56 ldr r1, [pc, 0x8c]                            |     
    0x00239c58 mov r0, r4                                    |     r0 = r4;
    0x00239c5a add r3, pc                                    |     r3 = 0x47393e;
    0x00239c5c str r3, [sp]                                  |     *(sp) = r3;
    0x00239c5e add r1, pc                                    |     r1 = 0x473948;
    0x00239c60 add.w r3, r5, 0x3c                            |     r3 = r5 + 0x3c;
    0x00239c64 blx 0x1dc3cc                                  |     r0 = fcn_001dc3cc ();
    0x00239c68 cbz r0, 0x239c78                              |     
                                                             |     while (r0 != 0) {
    0x00239c6a add.w r4, r4, 0x16000                         |         r4 += 0x16000;
    0x00239c6e ldr.w r0, [r4, 0x184]                         |         r0 = *((r4 + 0x184));
    0x00239c70 lsls r4, r0, 6                                |         r4 = r0 << 6;
    0x00239c72 add sp, 8                                     |         
    0x00239c74 pop.w {r4, r5, r6, r7, r8, pc}                |         
    0x00239c78 mov r2, r5                                    |         r2 = r5;
    0x00239c7a mov r1, r7                                    |         r1 = r7;
    0x00239c7c movw r3, 0x64d                                |         r3 = 0x64d;
    0x00239c80 mov r0, r4                                    |         r0 = r4;
    0x00239c82 blx 0x1e6828                                  |         fcn_001e6828 ();
    0x00239c86 mov r3, r8                                    |         r3 = r8;
    0x00239c88 mov r2, r0                                    |         r2 = r0;
    0x00239c8a mov r1, r6                                    |         r1 = r6;
    0x00239c8c mov r0, r4                                    |         r0 = r4;
    0x00239c8e blx 0x1d9404                                  |         r0 = fcn_001d9404 ();
    0x00239c92 cmp r0, 0                                     |         
    0x00239c94 bne 0x239c6a                                  |         
                                                             |     }
    0x00239c96 mov r1, r6                                    |     r1 = r6;
    0x00239c98 mov r0, r4                                    |     r0 = r4;
    0x00239c9a add sp, 8                                     |     
    0x00239c9c pop.w {r4, r5, r6, r7, r8, lr}                |     
    0x00239ca0 b.w 0x1cd900                                  |     return void (*0x1cd900)() ();
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x285864 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_out_tr2__VideoSourceMode ()             | void soap_out_tr2_VideoSourceMode (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00285864 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00285868 mov r7, r2                                    |     r7 = r2;
    0x0028586a ldr r2, [r3, 0x1c]                            |     r2 = *((r3 + 0x1c));
    0x0028586c sub sp, 8                                     |     
    0x0028586e mov r5, r3                                    |     r5 = r3;
    0x00285870 mov r4, r0                                    |     r4 = r0;
    0x00285872 ldr.w sb, [sp, 0x28]                          |     sb = *(arg_28h);
    0x00285876 mov r6, r1                                    |     r6 = r1;
                                                             |     if (r2 != 0) {
    0x00285878 cbz r2, 0x285884                              |         
    0x0028587a ldr r1, [pc, 0x168]                           |         
    0x0028587c movs r3, 1                                    |         r3 = 1;
    0x0028587e add r1, pc                                    |         r1 = 0x50b268;
    0x00285880 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00285884 ldr r3, [r5, 0x20]                            |     r3 = *((r5 + 0x20));
                                                             |     if (r3 != 0) {
    0x00285886 cbz r3, 0x28589e                              |         
    0x00285888 ldr r1, [r3]                                  |         r1 = *(r3);
    0x0028588a mov r0, r4                                    |         r0 = r4;
    0x0028588c blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00285890 ldr r1, [pc, 0x154]                           |         
    0x00285892 mov r2, r0                                    |         r2 = r0;
    0x00285894 movs r3, 1                                    |         r3 = 1;
    0x00285896 mov r0, r4                                    |         r0 = r4;
    0x00285898 add r1, pc                                    |         r1 = 0x50b284;
    0x0028589a blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x0028589e ldr.w r8, [pc, 0x14c]                         |     r8 = *(0x002859ec);
    0x002858a2 add.w r3, r5, 0x24                            |     r3 = r5 + 0x24;
    0x002858a6 ldr r1, [pc, 0x148]                           |     
    0x002858a8 mov.w r2, -1                                  |     r2 = -1;
    0x002858ac mov r0, r4                                    |     r0 = r4;
    0x002858ae add r8, pc                                    |     r8 += pc;
    0x002858b0 add r1, pc                                    |     r1 = 0x50b2a6;
    0x002858b2 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x002858b6 blx 0x1dc3cc                                  |     r0 = fcn_001dc3cc ();
    0x002858ba cbz r0, 0x2858ca                              |     
                                                             |     while (r0 != 0) {
                                                             | label_0:
    0x002858bc add.w r4, r4, 0x16000                         |         r4 += 0x16000;
    0x002858c0 ldr.w r0, [r4, 0x184]                         |         r0 = *((r4 + 0x184));
    0x002858c4 add sp, 8                                     |         
    0x002858c6 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x002858ca mov r1, r7                                    |         r1 = r7;
    0x002858cc movw r3, 0x5ec                                |         r3 = 0x5ec;
    0x002858d0 mov r2, r5                                    |         r2 = r5;
    0x002858d2 mov r0, r4                                    |         r0 = r4;
    0x002858d4 blx 0x1e6828                                  |         fcn_001e6828 ();
    0x002858d8 mov r3, sb                                    |         r3 = sb;
    0x002858da mov r2, r0                                    |         r2 = r0;
    0x002858dc mov r1, r6                                    |         r1 = r6;
    0x002858de mov r0, r4                                    |         r0 = r4;
    0x002858e0 blx 0x1d9404                                  |         r0 = fcn_001d9404 ();
    0x002858e4 cmp r0, 0                                     |         
    0x002858e6 bne 0x2858bc                                  |         
                                                             |     }
    0x002858e8 ldr r1, [pc, 0x108]                           |     
    0x002858ea mov r3, r5                                    |     r3 = r5;
    0x002858ec mov.w r2, -1                                  |     r2 = -1;
    0x002858f0 mov r0, r4                                    |     r0 = r4;
    0x002858f2 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x002858f6 add r1, pc                                    |     r1 = 0x50b2ee;
    0x002858f8 blx 0x1d6f40                                  |     r0 = fcn_001d6f40 ();
    0x002858fc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x002858fe bne 0x2858bc                                  |         goto label_0;
                                                             |     }
    0x00285900 ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
    0x00285902 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00285904 beq 0x2859c2                                  |         goto label_4;
                                                             |     }
    0x00285906 ldr r1, [pc, 0xf0]                            |     
    0x00285908 adds r3, r5, 4                                |     r3 = r5 + 4;
    0x0028590a mov.w r2, -1                                  |     r2 = -1;
    0x0028590e mov r0, r4                                    |     r0 = r4;
    0x00285910 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x00285914 add r1, pc                                    |     r1 = 0x50b312;
    0x00285916 blx 0x1e7714                                  |     r0 = fcn_001e7714 ();
    0x0028591a cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0028591c bne 0x2858bc                                  |         goto label_0;
                                                             |     }
                                                             | label_2:
    0x0028591e ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
    0x00285920 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00285922 beq 0x2859d2                                  |         goto label_5;
                                                             |     }
    0x00285924 ldr r2, [pc, 0xd4]                            |     
    0x00285926 add.w r3, r5, 8                               |     r3 = r5 + 8;
    0x0028592a ldr r1, [pc, 0xd4]                            |     
    0x0028592c mov r0, r4                                    |     r0 = r4;
    0x0028592e add r2, pc                                    |     r2 = 0x50b32e;
    0x00285930 str r2, [sp]                                  |     *(sp) = r2;
    0x00285932 add r1, pc                                    |     r1 = 0x50b338;
    0x00285934 mov.w r2, -1                                  |     r2 = -1;
    0x00285938 blx 0x1c8000                                  |     r0 = fcn_001c8000 ();
    0x0028593c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0028593e bne 0x2858bc                                  |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x00285940 ldr.w sb, [pc, 0xc0]                          |     
    0x00285944 add.w r3, r5, 0xc                             |     r3 = r5 + 0xc;
    0x00285948 ldr r1, [pc, 0xbc]                            |     
    0x0028594a mov.w r2, -1                                  |     r2 = -1;
    0x0028594e mov r0, r4                                    |     r0 = r4;
    0x00285950 add sb, pc                                    |     sb = 0x50b358;
    0x00285952 add r1, pc                                    |     r1 = 0x50b35e;
    0x00285954 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00285958 blx 0x1f2964                                  |     r0 = fcn_001f2964 ();
    0x0028595c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0028595e bne 0x2858bc                                  |         goto label_0;
                                                             |     }
    0x00285960 ldr r1, [pc, 0xa8]                            |     
    0x00285962 add.w r3, r5, 0x10                            |     r3 = r5 + 0x10;
    0x00285966 mov.w r2, -1                                  |     r2 = -1;
    0x0028596a mov r0, r4                                    |     r0 = r4;
    0x0028596c str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00285970 add r1, pc                                    |     r1 = 0x50b380;
    0x00285972 blx 0x1bfbe0                                  |     r0 = fcn_001bfbe0 ();
    0x00285976 mov r7, r0                                    |     r7 = r0;
    0x00285978 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0028597a bne 0x2858bc                                  |         goto label_0;
                                                             |     }
    0x0028597c ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             |     if (r3 == 0) {
    0x0028597e cbz r3, 0x2859b4                              |         goto label_6;
                                                             |     }
    0x00285980 ldr r2, [r5, 0x14]                            |     r2 = *((r5 + 0x14));
    0x00285982 cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x00285984 ble 0x2859b4                                  |         goto label_6;
                                                             |     }
    0x00285986 ldr.w sl, [pc, 0x88]                          |     
    0x0028598a mov r8, r0                                    |     r8 = r0;
    0x0028598c add sl, pc                                    |     sl = 0x50b3a2;
    0x0028598e b 0x285992                                    |     goto label_7;
                                                             | label_1:
    0x00285990 ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             | label_7:
    0x00285992 add r3, r8                                    |     r3 += r8;
    0x00285994 mov.w r2, -1                                  |     r2 = -1;
    0x00285998 mov r1, sl                                    |     r1 = sl;
    0x0028599a mov r0, r4                                    |     r0 = r4;
    0x0028599c str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x002859a0 adds r7, 1                                    |     r7++;
    0x002859a2 add.w r8, r8, 0x34                            |     r8 += 0x34;
    0x002859a6 blx 0x1d801c                                  |     r0 = fcn_001d801c ();
    0x002859aa cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x002859ac bne 0x2858bc                                  |         goto label_0;
                                                             |     }
    0x002859ae ldr r3, [r5, 0x14]                            |     r3 = *((r5 + 0x14));
    0x002859b0 cmp r3, r7                                    |     
                                                             |     if (r3 > r7) {
    0x002859b2 bgt 0x285990                                  |         goto label_1;
                                                             |     }
                                                             | label_6:
    0x002859b4 mov r1, r6                                    |     r1 = r6;
    0x002859b6 mov r0, r4                                    |     r0 = r4;
    0x002859b8 add sp, 8                                     |     
    0x002859ba pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x002859be b.w 0x1cd900                                  |     void (*0x1cd900)() ();
                                                             | label_4:
    0x002859c2 ldr r1, [pc, 0x50]                            |     
    0x002859c4 mov r0, r4                                    |     r0 = r4;
    0x002859c6 add r1, pc                                    |     r1 = 0x50b3e0;
    0x002859c8 blx 0x1dfd3c                                  |     r0 = fcn_001dfd3c ();
    0x002859cc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x002859ce beq 0x28591e                                  |         goto label_2;
                                                             |     }
    0x002859d0 b 0x2858bc                                    |     goto label_0;
                                                             | label_5:
    0x002859d2 ldr r1, [pc, 0x44]                            |     
    0x002859d4 mov r0, r4                                    |     r0 = r4;
    0x002859d6 add r1, pc                                    |     r1 = 0x50b3f4;
    0x002859d8 blx 0x1dfd3c                                  |     r0 = fcn_001dfd3c ();
    0x002859dc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x002859de beq 0x285940                                  |         goto label_3;
                                                             |     }
    0x002859e0 b 0x2858bc                                    |     goto label_0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x267f8c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_out_trt__Capabilities ()                | void soap_out_trt_Capabilities (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00267f8c push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00267f90 mov r5, r3                                    |     r5 = r3;
    0x00267f92 ldr r3, [r3, 0x10]                            |     r3 = *((r3 + 0x10));
    0x00267f94 sub sp, 8                                     |     
    0x00267f96 mov r4, r0                                    |     r4 = r0;
    0x00267f98 mov r7, r1                                    |     r7 = r1;
    0x00267f9a ldr.w r8, [sp, 0x28]                          |     r8 = *(arg_28h);
    0x00267f9e mov r6, r2                                    |     r6 = r2;
                                                             |     if (r3 != 0) {
    0x00267fa0 cbz r3, 0x267fb6                              |         
    0x00267fa2 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00267fa4 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00267fa8 ldr r1, [pc, 0x168]                           |         
    0x00267faa mov r2, r0                                    |         r2 = r0;
    0x00267fac movs r3, 1                                    |         r3 = 1;
    0x00267fae mov r0, r4                                    |         r0 = r4;
    0x00267fb0 add r1, pc                                    |         r1 = 0x4d00c8;
    0x00267fb2 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00267fb6 ldr r3, [r5, 0x14]                            |     r3 = *((r5 + 0x14));
                                                             |     if (r3 != 0) {
    0x00267fb8 cbz r3, 0x267fd0                              |         
    0x00267fba ldr r1, [r3]                                  |         r1 = *(r3);
    0x00267fbc mov r0, r4                                    |         r0 = r4;
    0x00267fbe blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00267fc0 bics.w sb, r2, r5, lsr 17                     |         __asm ("bics.w sb, r2, r5, lsr 17");
    0x00267fc4 mov r2, r0                                    |         r2 = r0;
    0x00267fc6 movs r3, 1                                    |         r3 = 1;
    0x00267fc8 mov r0, r4                                    |         r0 = r4;
    0x00267fca add r1, pc                                    |         r1 += pc;
    0x00267fcc blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00267fd0 ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             |     if (r3 != 0) {
    0x00267fd2 cbz r3, 0x267fea                              |         
    0x00267fd4 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00267fd6 mov r0, r4                                    |         r0 = r4;
    0x00267fd8 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00267fdc ldr r1, [pc, 0x13c]                           |         
    0x00267fde mov r2, r0                                    |         r2 = r0;
    0x00267fe0 movs r3, 1                                    |         r3 = 1;
    0x00267fe2 mov r0, r4                                    |         r0 = r4;
    0x00267fe4 add r1, pc                                    |         r1 = 0x4d0104;
    0x00267fe6 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00267fea ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
                                                             |     if (r3 != 0) {
    0x00267fec cbz r3, 0x268004                              |         
    0x00267fee ldr r1, [r3]                                  |         r1 = *(r3);
    0x00267ff0 mov r0, r4                                    |         r0 = r4;
    0x00267ff2 blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00267ff6 ldr r1, [pc, 0x128]                           |         
    0x00267ff8 mov r2, r0                                    |         r2 = r0;
    0x00267ffa movs r3, 1                                    |         r3 = 1;
    0x00267ffc mov r0, r4                                    |         r0 = r4;
    0x00267ffe add r1, pc                                    |         r1 = 0x4d0124;
    0x00268000 blx 0x1dd7bc                                  |         fcn_001dd7bc ();
                                                             |     }
    0x00268004 ldr r3, [r5, 0x20]                            |     r3 = *((r5 + 0x20));
                                                             |     if (r3 != 0) {
    0x00268006 cbz r3, 0x26801e                              |         
    0x00268008 ldr r1, [r3]                                  |         r1 = *(r3);
    0x0026800a mov r0, r4                                    |         r0 = r4;
    0x0026800c blx 0x1ea424                                  |         fcn_001ea424 ();
    0x00268010 ldr r1, [pc, 0x110]                           |         
    0x00268012 mov r2, r0                                    |         r2 = r0;
    0x00268014 movs r3, 1                                    |         r3 = 1;
    0x00268016 mov r0, r4                                    |         r0 = r4;
    0x00268018 add r1, pc                                    |         r1 = 0x4d0140;
    0x0026801a blx 0x1dd7bc                                  |         fcn_001dd7bc ();
    0x0026801c invalid                                       |         
                                                             |     }
    0x0026801e ldr.w sb, [pc, 0x108]                         |     sb = *(0x00268128);
    0x00268022 add.w r3, r5, 0x24                            |     r3 = r5 + 0x24;
    0x00268026 ldr r1, [pc, 0x104]                           |     
    0x00268028 mov.w r2, -1                                  |     r2 = -1;
    0x0026802c mov r0, r4                                    |     r0 = r4;
    0x0026802e add sb, pc                                    |     sb += pc;
    0x00268030 add r1, pc                                    |     r1 = 0x4d0162;
    0x00268032 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00268036 blx 0x1dc3cc                                  |     r0 = fcn_001dc3cc ();
    0x0026803a cbz r0, 0x26804a                              |     
                                                             |     while (r0 != 0) {
                                                             | label_0:
    0x0026803c add.w r4, r4, 0x16000                         |         r4 += 0x16000;
    0x00268040 ldr.w r0, [r4, 0x184]                         |         r0 = *((r4 + 0x184));
    0x00268044 add sp, 8                                     |         
    0x00268046 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x0026804a mov r1, r6                                    |         r1 = r6;
    0x0026804c movw r3, 0x14f                                |         r3 = 0x14f;
    0x00268050 mov r2, r5                                    |         r2 = r5;
    0x00268052 mov r0, r4                                    |         r0 = r4;
    0x00268054 blx 0x1e6828                                  |         fcn_001e6828 ();
    0x00268058 mov r3, r8                                    |         r3 = r8;
    0x0026805a mov r2, r0                                    |         r2 = r0;
    0x0026805c mov r1, r7                                    |         r1 = r7;
    0x0026805e mov r0, r4                                    |         r0 = r4;
    0x00268060 blx 0x1d9404                                  |         r0 = fcn_001d9404 ();
    0x00268064 mov r6, r0                                    |         r6 = r0;
    0x00268066 cmp r0, 0                                     |         
    0x00268068 bne 0x26803c                                  |         
                                                             |     }
    0x0026806a ldr r3, [r5]                                  |     r3 = *(r5);
    0x0026806c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0026806e beq 0x268104                                  |         goto label_4;
                                                             |     }
    0x00268070 ldr r1, [pc, 0xbc]                            |     
    0x00268072 mov r3, r5                                    |     r3 = r5;
    0x00268074 mov.w r2, -1                                  |     r2 = -1;
    0x00268078 mov r0, r4                                    |     r0 = r4;
    0x0026807a str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x0026807e add r1, pc                                    |     r1 = 0x4d01b2;
    0x00268080 blx 0x1d4b48                                  |     r0 = fcn_001d4b48 ();
    0x00268084 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00268086 bne 0x26803c                                  |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x00268088 ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
                                                             |     if (r3 == 0) {
    0x0026808a cbz r3, 0x2680f4                              |         goto label_5;
                                                             |     }
    0x0026808c ldr r3, [pc, 0xa4]                            |     
    0x0026808e mov.w r2, -1                                  |     r2 = -1;
    0x00268092 ldr r1, [pc, 0xa4]                            |     
    0x00268094 mov r0, r4                                    |     r0 = r4;
    0x00268096 add r3, pc                                    |     r3 = 0x4d01ce;
    0x00268098 str r3, [sp]                                  |     *(sp) = r3;
    0x0026809a add r1, pc                                    |     r1 = 0x4d01d8;
    0x0026809c adds r3, r5, 4                                |     r3 = r5 + 4;
    0x0026809e blx 0x1dd3b4                                  |     r0 = fcn_001dd3b4 ();
    0x002680a2 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x002680a4 bne 0x26803c                                  |         goto label_0;
                                                             |     }
                                                             | label_2:
    0x002680a6 ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
                                                             |     if (r3 == 0) {
    0x002680a8 cbz r3, 0x2680e6                              |         goto label_6;
                                                             |     }
    0x002680aa ldr r2, [r5, 8]                               |     r2 = *((r5 + 8));
    0x002680ac cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x002680ae ble 0x2680e6                                  |         goto label_6;
                                                             |     }
    0x002680b0 ldr.w sl, [pc, 0x88]                          |     
    0x002680b4 mov.w r8, 0                                   |     r8 = 0;
    0x002680b8 ldr.w sb, [pc, 0x84]                          |     sb = *(0x00268140);
    0x002680bc add sl, pc                                    |     sl = 0x4d01fc;
    0x002680be add sb, pc                                    |     sb += pc;
    0x002680c0 b 0x2680c4                                    |     goto label_7;
                                                             | label_1:
    0x002680c2 ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
                                                             | label_7:
    0x002680c4 add r3, r8                                    |     r3 += r8;
    0x002680c6 mov.w r2, -1                                  |     r2 = -1;
    0x002680ca mov r1, sl                                    |     r1 = sl;
    0x002680cc mov r0, r4                                    |     r0 = r4;
    0x002680ce str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x002680d2 adds r6, 1                                    |     r6++;
    0x002680d4 add.w r8, r8, 0x34                            |     r8 += 0x34;
    0x002680d8 blx 0x1d801c                                  |     r0 = fcn_001d801c ();
    0x002680dc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x002680de bne 0x26803c                                  |         goto label_0;
                                                             |     }
    0x002680e0 ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
    0x002680e2 cmp r3, r6                                    |     
                                                             |     if (r3 > r6) {
    0x002680e4 bgt 0x2680c2                                  |         goto label_1;
                                                             |     }
                                                             | label_6:
    0x002680e6 mov r1, r7                                    |     r1 = r7;
    0x002680e8 mov r0, r4                                    |     r0 = r4;
    0x002680ea add sp, 8                                     |     
    0x002680ec pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x002680f0 b.w 0x1cd900                                  |     void (*0x1cd900)() ();
                                                             | label_5:
    0x002680f4 ldr r1, [pc, 0x4c]                            |     
    0x002680f6 mov r0, r4                                    |     r0 = r4;
    0x002680f8 add r1, pc                                    |     r1 = 0x4d0240;
    0x002680fa blx 0x1dfd3c                                  |     r0 = fcn_001dfd3c ();
    0x002680fe cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00268100 beq 0x2680a6                                  |         goto label_2;
                                                             |     }
    0x00268102 b 0x26803c                                    |     goto label_0;
                                                             | label_4:
    0x00268104 ldr r1, [pc, 0x40]                            |     
    0x00268106 mov r0, r4                                    |     r0 = r4;
    0x00268108 add r1, pc                                    |     r1 = 0x4d0254;
    0x0026810a blx 0x1dfd3c                                  |     r0 = fcn_001dfd3c ();
    0x0026810e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00268110 beq 0x268088                                  |         goto label_3;
                                                             |     }
    0x00268112 b 0x26803c                                    |     goto label_0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x242e40 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_out_tt__DNSInformationExtension ()      | void soap_out_tt_DNSInformationExtension (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00242e40 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00242e44 sub sp, 8                                     |     
    0x00242e46 ldr r4, [sp, 0x28]                            |     r4 = *(arg_28h);
    0x00242e48 mov r6, r3                                    |     r6 = r3;
    0x00242e4a mov r7, r0                                    |     r7 = r0;
    0x00242e4c mov sb, r1                                    |     sb = r1;
    0x00242e4e movw r3, 0x2c2                                |     r3 = 0x2c2;
    0x00242e52 mov r1, r2                                    |     r1 = r2;
    0x00242e54 mov r2, r6                                    |     r2 = r6;
    0x00242e56 blx 0x1e6828                                  |     fcn_001e6828 ();
    0x00242e5a mov r3, r4                                    |     r3 = r4;
    0x00242e5c mov r2, r0                                    |     r2 = r0;
    0x00242e5e mov r1, sb                                    |     r1 = sb;
    0x00242e60 mov r0, r7                                    |     r0 = r7;
    0x00242e62 blx 0x1d9404                                  |     r0 = fcn_001d9404 ();
                                                             |     if (r0 != 0) {
    0x00242e66 cbnz r0, 0x242ea6                             |         goto label_0;
                                                             |     }
    0x00242e68 ldr r3, [r6, 4]                               |     r3 = *((r6 + 4));
                                                             |     if (r3 == 0) {
    0x00242e6a cbz r3, 0x242eb4                              |         goto label_1;
                                                             |     }
    0x00242e6c ldr r2, [r6]                                  |     r2 = *(r6);
    0x00242e6e cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x00242e70 ble 0x242eb4                                  |         goto label_1;
                                                             |     }
    0x00242e72 ldr.w sl, [pc, 0x50]                          |     sl = *(0x00242ec4);
    0x00242e76 mov r4, r0                                    |     r4 = r0;
    0x00242e78 ldr.w r8, [pc, 0x4c]                          |     
    0x00242e7c mov r5, r0                                    |     r5 = r0;
    0x00242e7e add sl, pc                                    |     sl += pc;
    0x00242e80 add r8, pc                                    |     r8 = 0x485d4c;
    0x00242e82 b 0x242e8c                                    |     
                                                             |     while (r0 == 0) {
    0x00242e84 ldr r3, [r6]                                  |         r3 = *(r6);
    0x00242e86 cmp r4, r3                                    |         
                                                             |         if (r4 >= r3) {
    0x00242e88 bge 0x242eb4                                  |             goto label_1;
                                                             |         }
    0x00242e8a ldr r3, [r6, 4]                               |         r3 = *((r6 + 4));
    0x00242e8c add r3, r5                                    |         r3 += r5;
    0x00242e8e mov.w r2, -1                                  |         r2 = -1;
    0x00242e92 mov r1, sl                                    |         r1 = sl;
    0x00242e94 mov r0, r7                                    |         r0 = r7;
    0x00242e96 str.w r8, [sp]                                |         __asm ("str.w r8, [sp]");
    0x00242e9a adds r4, 1                                    |         r4++;
    0x00242e9c adds r5, 0x34                                 |         r5 += 0x34;
    0x00242e9e blx 0x1d801c                                  |         r0 = fcn_001d801c ();
    0x00242ea2 cmp r0, 0                                     |         
    0x00242ea4 beq 0x242e84                                  |         
                                                             |     }
                                                             | label_0:
    0x00242ea6 add.w r7, r7, 0x16000                         |     r7 += 0x16000;
    0x00242eaa ldr.w r0, [r7, 0x184]                         |     r0 = *((r7 + 0x184));
    0x00242eae add sp, 8                                     |     
    0x00242eb0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_1:
    0x00242eb4 mov r1, sb                                    |     r1 = sb;
    0x00242eb6 mov r0, r7                                    |     r0 = r7;
    0x00242eb8 add sp, 8                                     |     
    0x00242eba pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x00242ebe b.w 0x1cd900                                  |     return void (*0x1cd900)() ();
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2dc7d0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_tt__DNSInformation ()                       | void soap_out_tt_DNSInformation (int16_t arg_30h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x002dc7d0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x002dc7d4 mov r7, r1                                            |     r7 = r1;
    0x002dc7d6 ldr.w r8, [pc, 0x14c]                                 |     r8 = fcn.001f1ff8;
    0x002dc7da sub sp, 0xc                                           |     
    0x002dc7dc mov r5, r3                                            |     r5 = r3;
    0x002dc7de mov r6, r2                                            |     r6 = r2;
    0x002dc7e0 ldr r1, [pc, 0x144]                                   |     
    0x002dc7e2 adds r3, 0x20                                         |     r3 += 0x20;
    0x002dc7e4 add r8, pc                                            |     r8 += pc;
    0x002dc7e6 mov.w r2, -1                                          |     r2 = -1;
    0x002dc7ea str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002dc7ec strh r0, [r0]                                         |     *(r0) = r0;
    0x002dc7ee mov r4, r0                                            |     r4 = r0;
    0x002dc7f0 add r1, pc                                            |     r1 = 0x5b911c;
    0x002dc7f2 ldr.w sb, [sp, 0x30]                                  |     sb = *(arg_30h);
    0x002dc7f6 blx 0x1dc3cc                                          |     r0 = fcn_001dc3cc ();
    0x002dc7fa cbz r0, 0x2dc80a                                      |     
                                                                     |     while (r0 != 0) {
                                                                     | label_0:
    0x002dc7fc add.w r4, r4, 0x16000                                 |         r4 += 0x16000;
    0x002dc800 ldr.w r0, [r4, 0x184]                                 |         r0 = *((r4 + 0x184));
    0x002dc804 add sp, 0xc                                           |         
    0x002dc806 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
    0x002dc80a mov r1, r6                                            |         r1 = r6;
    0x002dc80c movw r3, 0x2c1                                        |         r3 = 0x2c1;
    0x002dc810 mov r2, r5                                            |         r2 = r5;
    0x002dc812 mov r0, r4                                            |         r0 = r4;
    0x002dc814 blx 0x1e6828                                          |         fcn_001e6828 ();
    0x002dc818 mov r3, sb                                            |         r3 = sb;
    0x002dc81a mov r2, r0                                            |         r2 = r0;
    0x002dc81c mov r1, r7                                            |         r1 = r7;
    0x002dc81e mov r0, r4                                            |         r0 = r4;
    0x002dc820 blx 0x1d9404                                          |         r0 = fcn_001d9404 ();
    0x002dc824 cmp r0, 0                                             |         
    0x002dc826 bne 0x2dc7fc                                          |         
                                                                     |     }
    0x002dc828 ldr r1, [pc, 0x100]                                   |     
    0x002dc82a mov r3, r5                                            |     r3 = r5;
    0x002dc82c mov.w r2, -1                                          |     r2 = -1;
    0x002dc830 mov r0, r4                                            |     r0 = r4;
    0x002dc832 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002dc836 add r1, pc                                            |     r1 = 0x5b9166;
    0x002dc838 blx 0x1f2964                                          |     r0 = fcn_001f2964 ();
    0x002dc83c mov sb, r0                                            |     sb = r0;
    0x002dc83e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002dc840 bne 0x2dc7fc                                          |         goto label_0;
                                                                     |     }
    0x002dc842 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
                                                                     |     if (r3 == 0) {
    0x002dc844 cbz r3, 0x2dc878                                      |         goto label_4;
                                                                     |     }
    0x002dc846 ldr r2, [r5, 4]                                       |     r2 = *((r5 + 4));
    0x002dc848 cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002dc84a ble 0x2dc878                                          |         goto label_4;
                                                                     |     }
    0x002dc84c ldr.w sl, [pc, 0xe0]                                  |     sl = *(0x002dc930);
    0x002dc850 mov r6, r0                                            |     r6 = r0;
    0x002dc852 add sl, pc                                            |     sl += pc;
    0x002dc854 b 0x2dc858                                            |     goto label_5;
                                                                     | label_1:
    0x002dc856 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
                                                                     | label_5:
    0x002dc858 add.w r3, r3, r6, lsl 2                               |     r3 += (r6 << 2);
    0x002dc85c mov.w r2, -1                                          |     r2 = -1;
    0x002dc860 mov r1, sl                                            |     r1 = sl;
    0x002dc862 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002dc866 mov r0, r4                                            |     r0 = r4;
    0x002dc868 adds r6, 1                                            |     r6++;
    0x002dc86a blx 0x1cda28                                          |     r0 = fcn_001cda28 ();
    0x002dc86e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002dc870 bne 0x2dc7fc                                          |         goto label_0;
                                                                     |     }
    0x002dc872 ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x002dc874 cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x002dc876 blt 0x2dc856                                          |         goto label_1;
                                                                     |     }
                                                                     | label_4:
    0x002dc878 ldr r3, [r5, 0x10]                                    |     r3 = *((r5 + 0x10));
                                                                     |     if (r3 == 0) {
    0x002dc87a cbz r3, 0x2dc8b8                                      |         goto label_6;
                                                                     |     }
    0x002dc87c ldr r2, [r5, 0xc]                                     |     r2 = *((r5 + 0xc));
    0x002dc87e cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002dc880 ble 0x2dc8b8                                          |         goto label_6;
                                                                     |     }
    0x002dc882 ldr.w fp, [pc, 0xb0]                                  |     fp = *(0x002dc934);
    0x002dc886 movs r6, 0                                            |     r6 = 0;
    0x002dc888 ldr.w sl, [pc, 0xac]                                  |     sl = fcn.001f1f4c;
    0x002dc88c mov r8, r6                                            |     r8 = r6;
    0x002dc88e add fp, pc                                            |     
    0x002dc890 add sl, pc                                            |     sl += pc;
    0x002dc892 b 0x2dc896                                            |     goto label_7;
                                                                     | label_2:
    0x002dc894 ldr r3, [r5, 0x10]                                    |     r3 = *((r5 + 0x10));
                                                                     | label_7:
    0x002dc896 add r3, r8                                            |     r3 += r8;
    0x002dc898 mov.w r2, -1                                          |     r2 = -1;
    0x002dc89c mov r1, fp                                            |     r1 = fp;
    0x002dc89e mov r0, r4                                            |     r0 = r4;
    0x002dc8a0 str.w sl, [sp]                                        |     __asm ("str.w sl, [sp]");
    0x002dc8a4 adds r6, 1                                            |     r6++;
    0x002dc8a6 add.w r8, r8, 0xc                                     |     r8 += 0xc;
    0x002dc8aa blx 0x1ef7c0                                          |     r0 = fcn_001ef7c0 ();
    0x002dc8ae cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002dc8b0 bne 0x2dc7fc                                          |         goto label_0;
                                                                     |     }
    0x002dc8b2 ldr r3, [r5, 0xc]                                     |     r3 = *((r5 + 0xc));
    0x002dc8b4 cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x002dc8b6 blt 0x2dc894                                          |         goto label_2;
                                                                     |     }
                                                                     | label_6:
    0x002dc8b8 ldr r3, [r5, 0x18]                                    |     r3 = *((r5 + 0x18));
                                                                     |     if (r3 == 0) {
    0x002dc8ba cbz r3, 0x2dc8f6                                      |         goto label_8;
                                                                     |     }
    0x002dc8bc ldr r2, [r5, 0x14]                                    |     r2 = *((r5 + 0x14));
    0x002dc8be cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002dc8c0 ble 0x2dc8f6                                          |         goto label_8;
                                                                     |     }
    0x002dc8c2 ldr.w sl, [pc, 0x78]                                  |     
    0x002dc8c6 movs r6, 0                                            |     r6 = 0;
    0x002dc8c8 ldr.w r8, [pc, 0x74]                                  |     r8 = *(0x002dc940);
    0x002dc8cc add sl, pc                                            |     sl = 0x5b920e;
    0x002dc8ce add r8, pc                                            |     r8 += pc;
    0x002dc8d0 b 0x2dc8d4                                            |     goto label_9;
                                                                     | label_3:
    0x002dc8d2 ldr r3, [r5, 0x18]                                    |     r3 = *((r5 + 0x18));
                                                                     | label_9:
    0x002dc8d4 add r3, r6                                            |     r3 += r6;
    0x002dc8d6 mov.w r2, -1                                          |     r2 = -1;
    0x002dc8da mov r1, sl                                            |     r1 = sl;
    0x002dc8dc mov r0, r4                                            |     r0 = r4;
    0x002dc8de str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002dc8e2 add.w sb, sb, 1                                       |     sb++;
    0x002dc8e6 adds r6, 0xc                                          |     r6 += 0xc;
    0x002dc8e8 blx 0x1ef7c0                                          |     r0 = fcn_001ef7c0 ();
    0x002dc8ec cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002dc8ee bne 0x2dc7fc                                          |         goto label_0;
                                                                     |     }
    0x002dc8f0 ldr r3, [r5, 0x14]                                    |     r3 = *((r5 + 0x14));
    0x002dc8f2 cmp sb, r3                                            |     
                                                                     |     if (sb < r3) {
    0x002dc8f4 blt 0x2dc8d2                                          |         goto label_3;
                                                                     |     }
                                                                     | label_8:
    0x002dc8f6 ldr r0, [pc, 0x4c]                                    |     
    0x002dc8f8 add.w r3, r5, 0x1c                                    |     r3 = r5 + 0x1c;
    0x002dc8fc ldr r1, [pc, 0x48]                                    |     
    0x002dc8fe mov.w r2, -1                                          |     r2 = -1;
    0x002dc902 add r0, pc                                            |     r0 = 0x5b924c;
    0x002dc904 str r0, [sp]                                          |     *(sp) = r0;
    0x002dc906 add r1, pc                                            |     r1 = 0x5b9252;
    0x002dc908 mov r0, r4                                            |     r0 = r4;
    0x002dc90a blx 0x1c2b18                                          |     r0 = fcn_001c2b18 ();
    0x002dc90e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002dc910 bne.w 0x2dc7fc                                        |         goto label_0;
                                                                     |     }
    0x002dc914 mov r1, r7                                            |     r1 = r7;
    0x002dc916 mov r0, r4                                            |     r0 = r4;
    0x002dc918 add sp, 0xc                                           |     
    0x002dc91a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |     
    0x002dc91e b.w 0x1cd900                                          |     return void (*0x1cd900)() ();
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2426cc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_out_tt__Dot11Capabilities ()            | void soap_out_tt_Dot11Capabilities (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x002426cc push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x002426d0 mov r8, r1                                    |     r8 = r1;
    0x002426d2 ldr r7, [pc, 0x108]                           |     
    0x002426d4 sub sp, 8                                     |     
    0x002426d6 mov r5, r3                                    |     r5 = r3;
    0x002426d8 mov r6, r2                                    |     r6 = r2;
    0x002426da ldr r1, [pc, 0x104]                           |     
    0x002426dc adds r3, 0x1c                                 |     r3 += 0x1c;
    0x002426de add r7, pc                                    |     r7 = 0x484ec0;
    0x002426e0 mov.w r2, -1                                  |     r2 = -1;
    0x002426e4 str r7, [sp]                                  |     *(sp) = r7;
    0x002426e6 mov r4, r0                                    |     r4 = r0;
    0x002426e8 add r1, pc                                    |     r1 = 0x484ece;
    0x002426ea ldr.w sb, [sp, 0x28]                          |     sb = *(arg_28h);
    0x002426ee blx 0x1dc3cc                                  |     r0 = fcn_001dc3cc ();
    0x002426f2 cbz r0, 0x242702                              |     
                                                             |     while (r0 != 0) {
                                                             | label_0:
    0x002426f4 add.w r4, r4, 0x16000                         |         r4 += 0x16000;
    0x002426f8 ldr.w r0, [r4, 0x184]                         |         r0 = *((r4 + 0x184));
    0x002426fc add sp, 8                                     |         
    0x002426fe pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x00242702 mov r1, r6                                    |         r1 = r6;
    0x00242704 movw r3, 0x2eb                                |         r3 = 0x2eb;
    0x00242708 mov r2, r5                                    |         r2 = r5;
    0x0024270a mov r0, r4                                    |         r0 = r4;
    0x0024270c blx 0x1e6828                                  |         fcn_001e6828 ();
    0x00242710 mov r3, sb                                    |         r3 = sb;
    0x00242712 mov r2, r0                                    |         r2 = r0;
    0x00242714 mov r1, r8                                    |         r1 = r8;
    0x00242716 mov r0, r4                                    |         r0 = r4;
    0x00242718 blx 0x1d9404                                  |         r0 = fcn_001d9404 ();
    0x0024271c cmp r0, 0                                     |         
    0x0024271e bne 0x2426f4                                  |         
                                                             |     }
    0x00242720 ldr r1, [pc, 0xc0]                            |     
    0x00242722 mov r3, r5                                    |     r3 = r5;
    0x00242724 mov.w r2, -1                                  |     r2 = -1;
    0x00242728 mov r0, r4                                    |     r0 = r4;
    0x0024272a str r7, [sp]                                  |     *(sp) = r7;
    0x0024272c add r1, pc                                    |     r1 = 0x484f14;
    0x0024272e blx 0x1f2964                                  |     r0 = fcn_001f2964 ();
    0x00242732 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00242734 bne 0x2426f4                                  |         goto label_0;
                                                             |     }
    0x00242736 ldr r1, [pc, 0xb0]                            |     
    0x00242738 adds r3, r5, 4                                |     r3 = r5 + 4;
    0x0024273a mov.w r2, -1                                  |     r2 = -1;
    0x0024273e mov r0, r4                                    |     r0 = r4;
    0x00242740 str r7, [sp]                                  |     *(sp) = r7;
    0x00242742 add r1, pc                                    |     r1 = 0x484f30;
    0x00242744 blx 0x1f2964                                  |     r0 = fcn_001f2964 ();
    0x00242748 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0024274a bne 0x2426f4                                  |         goto label_0;
                                                             |     }
    0x0024274c ldr r1, [pc, 0x9c]                            |     
    0x0024274e add.w r3, r5, 8                               |     r3 = r5 + 8;
    0x00242752 mov.w r2, -1                                  |     r2 = -1;
    0x00242756 mov r0, r4                                    |     r0 = r4;
    0x00242758 str r7, [sp]                                  |     *(sp) = r7;
    0x0024275a add r1, pc                                    |     r1 = 0x484f4a;
    0x0024275c blx 0x1f2964                                  |     r0 = fcn_001f2964 ();
    0x00242760 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00242762 bne 0x2426f4                                  |         goto label_0;
                                                             |     }
    0x00242764 ldr r1, [pc, 0x88]                            |     
    0x00242766 add.w r3, r5, 0xc                             |     r3 = r5 + 0xc;
    0x0024276a mov.w r2, -1                                  |     r2 = -1;
    0x0024276e mov r0, r4                                    |     r0 = r4;
    0x00242770 str r7, [sp]                                  |     *(sp) = r7;
    0x00242772 add r1, pc                                    |     r1 = 0x484f66;
    0x00242774 blx 0x1f2964                                  |     r0 = fcn_001f2964 ();
    0x00242778 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0024277a bne 0x2426f4                                  |         goto label_0;
                                                             |     }
    0x0024277c ldr r1, [pc, 0x74]                            |     
    0x0024277e add.w r3, r5, 0x10                            |     r3 = r5 + 0x10;
    0x00242780 lsls r0, r2, 0xc                              |     r0 = r2 << 0xc;
    0x00242782 mov.w r2, -1                                  |     r2 = -1;
    0x00242786 mov r0, r4                                    |     r0 = r4;
    0x00242788 str r7, [sp]                                  |     *(sp) = r7;
    0x0024278a add r1, pc                                    |     r1 = 0x484f82;
    0x0024278c blx 0x1f2964                                  |     r0 = fcn_001f2964 ();
    0x00242790 mov r6, r0                                    |     r6 = r0;
    0x00242792 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00242794 bne 0x2426f4                                  |         goto label_0;
                                                             |     }
    0x00242796 ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             |     if (r3 == 0) {
    0x00242798 cbz r3, 0x2427cc                              |         goto label_2;
                                                             |     }
    0x0024279a ldr r2, [r5, 0x14]                            |     r2 = *((r5 + 0x14));
    0x0024279c cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x0024279e ble 0x2427cc                                  |         goto label_2;
                                                             |     }
    0x002427a0 ldr.w sl, [pc, 0x54]                          |     sl = *(0x002427f8);
    0x002427a4 mov sb, r0                                    |     sb = r0;
    0x002427a6 add sl, pc                                    |     sl += pc;
    0x002427a8 b 0x2427ac                                    |     goto label_3;
                                                             | label_1:
    0x002427aa ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
                                                             | label_3:
    0x002427ac add r3, sb                                    |     r3 += sb;
    0x002427ae mov.w r2, -1                                  |     r2 = -1;
    0x002427b2 mov r1, sl                                    |     r1 = sl;
    0x002427b4 mov r0, r4                                    |     r0 = r4;
    0x002427b6 str r7, [sp]                                  |     *(sp) = r7;
    0x002427b8 adds r6, 1                                    |     r6++;
    0x002427ba add.w sb, sb, 0x34                            |     sb += 0x34;
    0x002427bc lsrs r4, r6, 4                                |     r4 = r6 >> 4;
    0x002427be blx 0x1d801c                                  |     r0 = fcn_001d801c ();
    0x002427c2 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x002427c4 bne 0x2426f4                                  |         goto label_0;
                                                             |     }
    0x002427c6 ldr r3, [r5, 0x14]                            |     r3 = *((r5 + 0x14));
    0x002427c8 cmp r6, r3                                    |     
                                                             |     if (r6 < r3) {
    0x002427ca blt 0x2427aa                                  |         goto label_1;
                                                             |     }
                                                             | label_2:
    0x002427cc mov r1, r8                                    |     r1 = r8;
    0x002427ce mov r0, r4                                    |     r0 = r4;
    0x002427d0 add sp, 8                                     |     
    0x002427d2 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x002427d6 b.w 0x1cd900                                  |     return void (*0x1cd900)() ();
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x258f58 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.soap_out_tt__LocationEntity ()       | void soap_out_tt_LocationEntity (int16_t arg_20h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     int16_t var_0h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x00258f58 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00258f5c mov r7, r2                            |     r7 = r2;
    0x00258f5e ldr r2, [r3, 0x10]                    |     r2 = *((r3 + 0x10));
    0x00258f60 sub sp, 8                             |     
    0x00258f62 mov r5, r3                            |     r5 = r3;
    0x00258f64 mov r4, r0                            |     r4 = r0;
    0x00258f66 ldr.w r8, [sp, 0x20]                  |     r8 = *(arg_20h);
    0x00258f6a mov r6, r1                            |     r6 = r1;
                                                     |     if (r2 != 0) {
    0x00258f6c cbz r2, 0x258f78                      |         
    0x00258f6e ldr r1, [pc, 0xf4]                    |         
    0x00258f70 movs r3, 1                            |         r3 = 1;
    0x00258f72 add r1, pc                            |         r1 = soap_wsa_add_NoReply;
    0x00258f74 blx 0x1dd7bc                          |         fcn_001dd7bc ();
                                                     |     }
    0x00258f78 ldr r2, [r5, 0x14]                    |     r2 = *((r5 + 0x14));
                                                     |     if (r2 != 0) {
    0x00258f7a cbz r2, 0x258f88                      |         
    0x00258f7c ldr r1, [pc, 0xe8]                    |         
    0x00258f7e movs r3, 1                            |         r3 = 1;
    0x00258f80 mov r0, r4                            |         r0 = r4;
    0x00258f82 add r1, pc                            |         r1 = 0x4b1fee;
    0x00258f84 blx 0x1dd7bc                          |         fcn_001dd7bc ();
                                                     |     }
    0x00258f88 ldr r3, [r5, 0x18]                    |     r3 = *((r5 + 0x18));
                                                     |     if (r3 != 0) {
    0x00258f8a cbz r3, 0x258fa2                      |         
    0x00258f8c ldr r1, [r3]                          |         r1 = *(r3);
    0x00258f8e mov r0, r4                            |         r0 = r4;
    0x00258f90 blx 0x1ea424                          |         fcn_001ea424 ();
    0x00258f94 ldr r1, [pc, 0xd4]                    |         
    0x00258f96 mov r2, r0                            |         r2 = r0;
    0x00258f98 movs r3, 1                            |         r3 = 1;
    0x00258f9a mov r0, r4                            |         r0 = r4;
    0x00258f9c add r1, pc                            |         r1 = 0x4b200c;
    0x00258f9e blx 0x1dd7bc                          |         fcn_001dd7bc ();
                                                     |     }
    0x00258fa2 ldr r2, [r5, 0x1c]                    |     r2 = *((r5 + 0x1c));
                                                     |     if (r2 != 0) {
    0x00258fa4 cbz r2, 0x258fb2                      |         
    0x00258fa6 ldr r1, [pc, 0xc8]                    |         
    0x00258fa8 movs r3, 1                            |         r3 = 1;
    0x00258faa mov r0, r4                            |         r0 = r4;
    0x00258fac add r1, pc                            |         r1 = 0x4b2022;
    0x00258fae blx 0x1dd7bc                          |         fcn_001dd7bc ();
                                                     |     }
    0x00258fb2 ldr r3, [r5, 0x20]                    |     r3 = *((r5 + 0x20));
                                                     |     if (r3 != 0) {
    0x00258fb4 cbz r3, 0x258fcc                      |         
    0x00258fb6 ldr r1, [r3]                          |         r1 = *(r3);
    0x00258fb8 mov r0, r4                            |         r0 = r4;
    0x00258fba blx 0x1ea424                          |         fcn_001ea424 ();
    0x00258fbe ldr r1, [pc, 0xb4]                    |         
    0x00258fc0 mov r2, r0                            |         r2 = r0;
    0x00258fc2 movs r3, 1                            |         r3 = 1;
    0x00258fc4 mov r0, r4                            |         r0 = r4;
    0x00258fc6 add r1, pc                            |         r1 = 0x4b2040;
    0x00258fc8 blx 0x1dd7bc                          |         fcn_001dd7bc ();
                                                     |     }
    0x00258fcc mov r1, r7                            |     r1 = r7;
    0x00258fce movw r3, 0x53c                        |     r3 = 0x53c;
    0x00258fd2 mov r2, r5                            |     r2 = r5;
    0x00258fd4 mov r0, r4                            |     r0 = r4;
    0x00258fd6 blx 0x1e6828                          |     fcn_001e6828 ();
    0x00258fda mov r3, r8                            |     r3 = r8;
    0x00258fdc mov r2, r0                            |     r2 = r0;
    0x00258fde mov r1, r6                            |     r1 = r6;
    0x00258fe0 mov r0, r4                            |     r0 = r4;
    0x00258fe2 blx 0x1d9404                          |     r0 = fcn_001d9404 ();
    0x00258fe6 cbz r0, 0x258ff6                      |     
                                                     |     while (r0 != 0) {
                                                     | label_0:
    0x00258fe8 add.w r4, r4, 0x16000                 |         r4 += 0x16000;
    0x00258fec ldr.w r0, [r4, 0x184]                 |         r0 = *((r4 + 0x184));
    0x00258ff0 add sp, 8                             |         
    0x00258ff2 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x00258ff6 ldr r7, [pc, 0x80]                    |         
    0x00258ff8 mov r3, r5                            |         r3 = r5;
    0x00258ffa ldr r1, [pc, 0x80]                    |         
    0x00258ffc mov.w r2, -1                          |         r2 = -1;
    0x00259000 mov r0, r4                            |         r0 = r4;
    0x00259002 add r7, pc                            |         r7 = 0x4b2080;
    0x00259004 add r1, pc                            |         r1 = 0x4b2086;
    0x00259006 str r7, [sp]                          |         *(sp) = r7;
    0x00259008 blx 0x1c99d4                          |         r0 = fcn_001c99d4 ();
    0x0025900c cmp r0, 0                             |         
    0x0025900e bne 0x258fe8                          |         
                                                     |     }
    0x00259010 ldr r1, [pc, 0x6c]                    |     
    0x00259012 adds r3, r5, 4                        |     r3 = r5 + 4;
    0x00259014 mov.w r2, -1                          |     r2 = -1;
    0x00259018 mov r0, r4                            |     r0 = r4;
    0x0025901a str r7, [sp]                          |     *(sp) = r7;
    0x0025901c add r1, pc                            |     r1 = 0x4b20a0;
    0x0025901e blx 0x1bc794                          |     r0 = fcn_001bc794 ();
    0x00259022 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00259024 bne 0x258fe8                          |         goto label_0;
                                                     |     }
    0x00259026 ldr r1, [pc, 0x5c]                    |     
    0x00259028 add.w r3, r5, 8                       |     r3 = r5 + 8;
    0x0025902c mov.w r2, -1                          |     r2 = -1;
    0x00259030 mov r0, r4                            |     r0 = r4;
    0x00259032 str r7, [sp]                          |     *(sp) = r7;
    0x00259034 add r1, pc                            |     r1 = 0x4b20be;
    0x00259036 blx 0x1c5a50                          |     r0 = fcn_001c5a50 ();
    0x0025903a cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0025903c bne 0x258fe8                          |         goto label_0;
                                                     |     }
    0x0025903e ldr r1, [pc, 0x48]                    |     
    0x00259040 add.w r3, r5, 0xc                     |     r3 = r5 + 0xc;
    0x00259044 mov.w r2, -1                          |     r2 = -1;
    0x00259048 mov r0, r4                            |     r0 = r4;
    0x0025904a str r7, [sp]                          |     *(sp) = r7;
    0x0025904c add r1, pc                            |     r1 = 0x4b20da;
    0x0025904e blx 0x1dc154                          |     r0 = fcn_001dc154 ();
    0x00259052 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00259054 bne 0x258fe8                          |         goto label_0;
                                                     |     }
    0x00259056 mov r1, r6                            |     r1 = r6;
    0x00259058 mov r0, r4                            |     r0 = r4;
    0x0025905a add sp, 8                             |     
    0x0025905c pop.w {r4, r5, r6, r7, r8, lr}        |     
    0x00259060 b.w 0x1cd900                          |     return void (*0x1cd900)() ();
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2433ac */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tt__NetworkInterfaceExtension2 ()       | void soap_out_tt_NetworkInterfaceExtension2 (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x002433ac push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x002433b0 sub sp, 8                                         |     
    0x002433b2 ldr r4, [sp, 0x28]                                |     r4 = *(arg_28h);
    0x002433b4 mov r6, r3                                        |     r6 = r3;
    0x002433b6 mov r7, r0                                        |     r7 = r0;
    0x002433b8 mov sb, r1                                        |     sb = r1;
    0x002433ba movw r3, 0x2a6                                    |     r3 = 0x2a6;
    0x002433be mov r1, r2                                        |     r1 = r2;
    0x002433c0 mov r2, r6                                        |     r2 = r6;
    0x002433c2 blx 0x1e6828                                      |     fcn_001e6828 ();
    0x002433c6 mov r3, r4                                        |     r3 = r4;
    0x002433c8 mov r2, r0                                        |     r2 = r0;
    0x002433ca mov r1, sb                                        |     r1 = sb;
    0x002433cc mov r0, r7                                        |     r0 = r7;
    0x002433ce blx 0x1d9404                                      |     fcn_001d9404 ();
    0x002433d0 invalid                                           |     
    0x002433d4 ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
                                                                 |     if (r3 == 0) {
    0x002433d6 cbz r3, 0x243420                                  |         goto label_0;
                                                                 |     }
    0x002433d8 ldr r2, [r6]                                      |     r2 = *(r6);
    0x002433da cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x002433dc ble 0x243420                                      |         goto label_0;
                                                                 |     }
    0x002433de ldr.w sl, [pc, 0x50]                              |     sl = *(0x00243430);
    0x002433e2 mov r4, r0                                        |     r4 = r0;
    0x002433e4 ldr.w r8, [pc, 0x4c]                              |     
    0x002433e8 mov r5, r0                                        |     r5 = r0;
    0x002433ea add sl, pc                                        |     sl += pc;
    0x002433ec add r8, pc                                        |     r8 = 0x486824;
    0x002433ee b 0x2433f8                                        |     
                                                                 |     while (r0 == 0) {
    0x002433f0 ldr r3, [r6]                                      |         r3 = *(r6);
    0x002433f2 cmp r4, r3                                        |         
                                                                 |         if (r4 >= r3) {
    0x002433f4 bge 0x243420                                      |             goto label_0;
                                                                 |         }
    0x002433f6 ldr r3, [r6, 4]                                   |         r3 = *((r6 + 4));
    0x002433f8 add r3, r5                                        |         r3 += r5;
    0x002433fa mov.w r2, -1                                      |         r2 = -1;
    0x002433fc adds r2, 0xff                                     |         r2 += 0xff;
    0x002433fe mov r1, sl                                        |         r1 = sl;
    0x00243400 mov r0, r7                                        |         r0 = r7;
    0x00243402 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x00243406 adds r4, 1                                        |         r4++;
    0x00243408 adds r5, 0x34                                     |         r5 += 0x34;
    0x0024340a blx 0x1d801c                                      |         r0 = fcn_001d801c ();
    0x0024340e cmp r0, 0                                         |         
    0x00243410 beq 0x2433f0                                      |         
                                                                 |     }
    0x00243412 add.w r7, r7, 0x16000                             |     r7 += 0x16000;
    0x00243416 ldr.w r0, [r7, 0x184]                             |     r0 = *((r7 + 0x184));
    0x0024341a add sp, 8                                         |     
    0x0024341c pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_0:
    0x00243420 mov r1, sb                                        |     r1 = sb;
    0x00243422 mov r0, r7                                        |     r0 = r7;
    0x00243424 add sp, 8                                         |     
    0x00243426 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x0024342a b.w 0x1cd900                                      |     return void (*0x1cd900)() ();
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x27f808 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tt__NetworkInterfaceExtension ()        | void soap_out_tt_NetworkInterfaceExtension (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0027f808 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0027f80c sub sp, 8                                         |     
    0x0027f80e ldr r5, [sp, 0x28]                                |     r5 = *(arg_28h);
    0x0027f810 mov r4, r3                                        |     r4 = r3;
    0x0027f812 mov r6, r0                                        |     r6 = r0;
    0x0027f814 mov sb, r1                                        |     sb = r1;
    0x0027f816 movw r3, 0x2a1                                    |     r3 = 0x2a1;
    0x0027f81a mov r1, r2                                        |     r1 = r2;
    0x0027f81c mov r2, r4                                        |     r2 = r4;
    0x0027f81e blx 0x1e6828                                      |     fcn_001e6828 ();
    0x0027f822 mov r3, r5                                        |     r3 = r5;
    0x0027f824 mov r2, r0                                        |     r2 = r0;
    0x0027f826 mov r1, sb                                        |     r1 = sb;
    0x0027f828 mov r0, r6                                        |     r0 = r6;
    0x0027f82a blx 0x1d9404                                      |     r0 = fcn_001d9404 ();
                                                                 |     if (r0 != 0) {
    0x0027f82e cbnz r0, 0x27f86e                                 |         goto label_0;
                                                                 |     }
    0x0027f830 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
                                                                 |     if (r3 == 0) {
    0x0027f832 cbz r3, 0x27f87c                                  |         goto label_1;
                                                                 |     }
    0x0027f834 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0027f836 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0027f838 ble 0x27f87c                                      |         goto label_1;
                                                                 |     }
    0x0027f83a ldr.w sl, [pc, 0x104]                             |     sl = *(0x0027f940);
    0x0027f83e mov r5, r0                                        |     r5 = r0;
    0x0027f840 ldr.w r8, [pc, 0x100]                             |     
    0x0027f844 mov r7, r0                                        |     r7 = r0;
    0x0027f846 add sl, pc                                        |     sl += pc;
    0x0027f848 add r8, pc                                        |     r8 = 0x4ff190;
    0x0027f84a b 0x27f854                                        |     
                                                                 |     while (r0 == 0) {
    0x0027f84c ldr r3, [r4]                                      |         r3 = *(r4);
    0x0027f84e cmp r5, r3                                        |         
                                                                 |         if (r5 >= r3) {
    0x0027f850 bge 0x27f87c                                      |             goto label_1;
                                                                 |         }
    0x0027f852 ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x0027f854 add r3, r7                                        |         r3 += r7;
    0x0027f856 mov.w r2, -1                                      |         r2 = -1;
    0x0027f85a mov r1, sl                                        |         r1 = sl;
    0x0027f85c mov r0, r6                                        |         r0 = r6;
    0x0027f85e str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x0027f862 adds r5, 1                                        |         r5++;
    0x0027f864 adds r7, 0x34                                     |         r7 += 0x34;
    0x0027f866 blx 0x1d801c                                      |         r0 = fcn_001d801c ();
    0x0027f86a cmp r0, 0                                         |         
    0x0027f86c beq 0x27f84c                                      |         
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x0027f86e add.w r6, r6, 0x16000                             |         r6 += 0x16000;
    0x0027f872 ldr.w r0, [r6, 0x184]                             |         r0 = *((r6 + 0x184));
    0x0027f876 add sp, 8                                         |         
    0x0027f878 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_1:
    0x0027f87c ldr.w r8, [pc, 0xc8]                              |         
    0x0027f880 add.w r3, r4, 8                                   |         r3 = r4 + 8;
    0x0027f884 ldr r1, [pc, 0xc4]                                |         
    0x0027f886 mov.w r2, -1                                      |         r2 = -1;
    0x0027f88a mov r0, r6                                        |         r0 = r6;
    0x0027f88c add r8, pc                                        |         r8 = 0x4ff1d8;
    0x0027f88e add r1, pc                                        |         r1 = 0x4ff1de;
    0x0027f890 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x0027f894 blx 0x1f27e8                                      |         r0 = fcn_001f27e8 ();
    0x0027f898 mov r7, r0                                        |         r7 = r0;
    0x0027f89a cmp r0, 0                                         |         
    0x0027f89c bne 0x27f86e                                      |         
                                                                 |     } while (r0 != 0);
    0x0027f89e ldr r3, [r4, 0x10]                                |     r3 = *((r4 + 0x10));
                                                                 |     if (r3 == 0) {
    0x0027f8a0 cbz r3, 0x27f8d6                                  |         goto label_2;
                                                                 |     }
    0x0027f8a2 ldr r2, [r4, 0xc]                                 |     r2 = *((r4 + 0xc));
    0x0027f8a4 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0027f8a6 ble 0x27f8d6                                      |         goto label_2;
                                                                 |     }
    0x0027f8a8 ldr.w sl, [pc, 0xa4]                              |     sl = *(0x0027f950);
    0x0027f8ac mov r5, r0                                        |     r5 = r0;
    0x0027f8ae add sl, pc                                        |     sl += pc;
    0x0027f8b0 b 0x27f8ba                                        |     
                                                                 |     while (r0 == 0) {
    0x0027f8b2 ldr r3, [r4, 0xc]                                 |         r3 = *((r4 + 0xc));
    0x0027f8b4 cmp r5, r3                                        |         
                                                                 |         if (r5 >= r3) {
    0x0027f8b6 bge 0x27f8d6                                      |             goto label_2;
                                                                 |         }
    0x0027f8b8 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0027f8ba add.w r3, r3, r5, lsl 5                           |         r3 += (r5 << 5);
    0x0027f8be mov.w r2, -1                                      |         r2 = -1;
    0x0027f8c2 mov r1, sl                                        |         r1 = sl;
    0x0027f8c4 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x0027f8c8 mov r0, r6                                        |         r0 = r6;
    0x0027f8ca adds r5, 1                                        |         r5++;
    0x0027f8cc blx 0x1e326c                                      |         r0 = fcn_001e326c ();
    0x0027f8d0 cmp r0, 0                                         |         
    0x0027f8d2 beq 0x27f8b2                                      |         
                                                                 |     }
    0x0027f8d4 b 0x27f86e                                        |     goto label_0;
                                                                 | label_2:
    0x0027f8d6 ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
                                                                 |     if (r3 == 0) {
    0x0027f8d8 cbz r3, 0x27f914                                  |         goto label_3;
                                                                 |     }
    0x0027f8da ldr r2, [r4, 0x14]                                |     r2 = *((r4 + 0x14));
    0x0027f8dc cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0027f8de ble 0x27f914                                      |         goto label_3;
                                                                 |     }
    0x0027f8e0 ldr.w sl, [pc, 0x70]                              |     sl = *(0x0027f954);
    0x0027f8e4 movs r5, 0                                        |     r5 = 0;
    0x0027f8e6 ldr.w r8, [pc, 0x70]                              |     
    0x0027f8ea add sl, pc                                        |     sl += pc;
    0x0027f8ec add r8, pc                                        |     r8 = 0x4ff24a;
    0x0027f8ee b 0x27f8f8                                        |     
                                                                 |     while (r0 == 0) {
    0x0027f8f0 ldr r3, [r4, 0x14]                                |         r3 = *((r4 + 0x14));
    0x0027f8f2 cmp r7, r3                                        |         
                                                                 |         if (r7 >= r3) {
    0x0027f8f4 bge 0x27f914                                      |             goto label_3;
                                                                 |         }
    0x0027f8f6 ldr r3, [r4, 0x18]                                |         r3 = *((r4 + 0x18));
    0x0027f8f8 add r3, r5                                        |         r3 += r5;
    0x0027f8fa mov.w r2, -1                                      |         r2 = -1;
    0x0027f8fe mov r1, sl                                        |         r1 = sl;
    0x0027f900 mov r0, r6                                        |         r0 = r6;
    0x0027f902 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x0027f906 adds r7, 1                                        |         r7++;
    0x0027f908 adds r5, 0x38                                     |         r5 += 0x38;
    0x0027f90a blx 0x1eeddc                                      |         r0 = fcn_001eeddc ();
    0x0027f90e cmp r0, 0                                         |         
    0x0027f910 beq 0x27f8f0                                      |         
                                                                 |     }
    0x0027f912 b 0x27f86e                                        |     goto label_0;
                                                                 | label_3:
    0x0027f914 ldr r0, [pc, 0x44]                                |     
    0x0027f916 add.w r3, r4, 0x1c                                |     r3 = r4 + 0x1c;
    0x0027f91a ldr r1, [pc, 0x44]                                |     
    0x0027f91c mov.w r2, -1                                      |     r2 = -1;
    0x0027f920 add r0, pc                                        |     r0 = 0x4ff280;
    0x0027f922 str r0, [sp]                                      |     *(sp) = r0;
    0x0027f924 add r1, pc                                        |     r1 = 0x4ff28a;
    0x0027f926 mov r0, r6                                        |     r0 = r6;
    0x0027f928 blx 0x1c3cc0                                      |     r0 = fcn_001c3cc0 ();
    0x0027f92c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0027f92e bne 0x27f86e                                      |         goto label_0;
                                                                 |     }
    0x0027f930 mov r1, sb                                        |     r1 = sb;
    0x0027f932 mov r0, r6                                        |     r0 = r6;
    0x0027f934 add sp, 8                                         |     
    0x0027f936 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x0027f93a b.w 0x1cd900                                      |     return void (*0x1cd900)() ();
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x28ae24 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tt__RecordingInformation ()             | void soap_out_tt_RecordingInformation (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0028ae24 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0028ae28 mov r8, r1                                        |     r8 = r1;
    0x0028ae2a ldr r7, [pc, 0x1bc]                               |     
    0x0028ae2c sub sp, 8                                         |     
    0x0028ae2e mov r5, r3                                        |     r5 = r3;
    0x0028ae30 mov r6, r2                                        |     r6 = r2;
    0x0028ae32 ldr r1, [pc, 0x1b8]                               |     
    0x0028ae34 adds r3, 0x28                                     |     r3 += 0x28;
    0x0028ae36 add r7, pc                                        |     r7 = 0x515e24;
    0x0028ae38 mov.w r2, -1                                      |     r2 = -1;
    0x0028ae3c str r7, [sp]                                      |     *(sp) = r7;
    0x0028ae3e mov r4, r0                                        |     r4 = r0;
    0x0028ae40 add r1, pc                                        |     r1 = 0x515e32;
    0x0028ae42 ldr.w sb, [sp, 0x28]                              |     sb = *(arg_28h);
    0x0028ae46 blx 0x1dc3cc                                      |     r0 = fcn_001dc3cc ();
    0x0028ae4a cbz r0, 0x28ae5a                                  |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x0028ae4c add.w r4, r4, 0x16000                             |         r4 += 0x16000;
    0x0028ae50 ldr.w r0, [r4, 0x184]                             |         r0 = *((r4 + 0x184));
    0x0028ae54 add sp, 8                                         |         
    0x0028ae56 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x0028ae58 strh r0, [r6, 0x3e]                               |         *((r6 + 0x3e)) = r0;
    0x0028ae5a mov r1, r6                                        |         r1 = r6;
    0x0028ae5c movw r3, 0x4a6                                    |         r3 = 0x4a6;
    0x0028ae60 mov r2, r5                                        |         r2 = r5;
    0x0028ae62 mov r0, r4                                        |         r0 = r4;
    0x0028ae64 blx 0x1e6828                                      |         fcn_001e6828 ();
    0x0028ae68 mov r3, sb                                        |         r3 = sb;
    0x0028ae6a mov r2, r0                                        |         r2 = r0;
    0x0028ae6c mov r1, r8                                        |         r1 = r8;
    0x0028ae6e mov r0, r4                                        |         r0 = r4;
    0x0028ae70 blx 0x1d9404                                      |         r0 = fcn_001d9404 ();
    0x0028ae74 cmp r0, 0                                         |         
    0x0028ae76 bne 0x28ae4c                                      |         
                                                                 |     }
    0x0028ae78 ldr r3, [r5]                                      |     r3 = *(r5);
    0x0028ae7a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0028ae7c beq.w 0x28afc4                                    |         goto label_6;
                                                                 |     }
    0x0028ae80 ldr r1, [pc, 0x16c]                               |     
    0x0028ae82 mov r3, r5                                        |     r3 = r5;
    0x0028ae84 mov.w r2, -1                                      |     r2 = -1;
    0x0028ae88 mov r0, r4                                        |     r0 = r4;
    0x0028ae8a str r7, [sp]                                      |     *(sp) = r7;
    0x0028ae8c add r1, pc                                        |     r1 = 0x515e80;
    0x0028ae8e blx 0x1efe58                                      |     r0 = fcn_001efe58 ();
    0x0028ae92 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028ae94 bne 0x28ae4c                                      |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x0028ae96 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x0028ae98 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0028ae9a beq.w 0x28afb2                                    |         goto label_7;
                                                                 |     }
    0x0028ae9e ldr r2, [pc, 0x154]                               |     
    0x0028aea0 adds r3, r5, 4                                    |     r3 = r5 + 4;
    0x0028aea2 ldr r1, [pc, 0x154]                               |     
    0x0028aea4 mov r0, r4                                        |     r0 = r4;
    0x0028aea6 add r2, pc                                        |     r2 = 0x515ea0;
    0x0028aea8 str r2, [sp]                                      |     *(sp) = r2;
    0x0028aeaa add r1, pc                                        |     r1 = 0x515ea8;
    0x0028aeac mov.w r2, -1                                      |     r2 = -1;
    0x0028aeb0 blx 0x1c7c90                                      |     r0 = loc_imp_soap_end ();
    0x0028aeb4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028aeb6 bne 0x28ae4c                                      |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x0028aeb8 ldr r7, [pc, 0x140]                               |     
    0x0028aeba add.w r3, r5, 8                                   |     r3 = r5 + 8;
    0x0028aebe ldr r1, [pc, 0x140]                               |     
    0x0028aec0 mov.w r2, -1                                      |     r2 = -1;
    0x0028aec4 mov r0, r4                                        |     r0 = r4;
    0x0028aec6 add r7, pc                                        |     r7 = 0x515ec6;
    0x0028aec8 add r1, pc                                        |     r1 = 0x515ece;
    0x0028aeca str r7, [sp]                                      |     *(sp) = r7;
    0x0028aecc blx 0x1cd120                                      |     r0 = fcn_001cd120 ();
    0x0028aed0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028aed2 bne 0x28ae4c                                      |         goto label_0;
                                                                 |     }
    0x0028aed4 ldr r1, [pc, 0x12c]                               |     
    0x0028aed6 add.w r3, r5, 0xc                                 |     r3 = r5 + 0xc;
    0x0028aeda mov.w r2, -1                                      |     r2 = -1;
    0x0028aede mov r0, r4                                        |     r0 = r4;
    0x0028aee0 str r7, [sp]                                      |     *(sp) = r7;
    0x0028aee2 add r1, pc                                        |     r1 = 0x515eea;
    0x0028aee4 blx 0x1cd120                                      |     r0 = fcn_001cd120 ();
    0x0028aee8 mov r6, r0                                        |     r6 = r0;
    0x0028aeea cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028aeec bne 0x28ae4c                                      |         goto label_0;
                                                                 |     }
    0x0028aeee ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x0028aef0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0028aef2 beq 0x28afd6                                      |         goto label_8;
                                                                 |     }
    0x0028aef4 ldr r1, [pc, 0x110]                               |     
    0x0028aef6 add.w r3, r5, 0x10                                |     r3 = r5 + 0x10;
    0x0028aef8 lsls r0, r2, 0xc                                  |     r0 = r2 << 0xc;
    0x0028aefa mov.w r2, -1                                      |     r2 = -1;
    0x0028aefe mov r0, r4                                        |     r0 = r4;
    0x0028af00 str r7, [sp]                                      |     *(sp) = r7;
    0x0028af02 add r1, pc                                        |     r1 = 0x515f0e;
    0x0028af04 blx 0x1bfbe0                                      |     r0 = fcn_001bfbe0 ();
    0x0028af08 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028af0a bne 0x28ae4c                                      |         goto label_0;
                                                                 |     }
                                                                 | label_5:
    0x0028af0c ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 |     if (r3 == 0) {
    0x0028af0e cbz r3, 0x28af48                                  |         goto label_9;
                                                                 |     }
    0x0028af10 ldr r2, [r5, 0x14]                                |     r2 = *((r5 + 0x14));
    0x0028af12 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0028af14 ble 0x28af48                                      |         goto label_9;
                                                                 |     }
    0x0028af16 ldr.w sl, [pc, 0xf4]                              |     
    0x0028af1a movs r7, 0                                        |     r7 = 0;
    0x0028af1c ldr.w sb, [pc, 0xf0]                              |     sb = *(0x0028b010);
    0x0028af20 add sl, pc                                        |     sl = 0x515f32;
    0x0028af22 add sb, pc                                        |     sb += pc;
    0x0028af24 b 0x28af28                                        |     goto label_10;
                                                                 | label_1:
    0x0028af26 ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 | label_10:
    0x0028af28 add r3, r7                                        |     r3 += r7;
    0x0028af2a mov.w r2, -1                                      |     r2 = -1;
    0x0028af2e mov r1, sl                                        |     r1 = sl;
    0x0028af30 mov r0, r4                                        |     r0 = r4;
    0x0028af32 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0028af36 adds r6, 1                                        |     r6++;
    0x0028af38 adds r7, 0x34                                     |     r7 += 0x34;
    0x0028af3a blx 0x1bfad0                                      |     r0 = fcn_001bfad0 ();
    0x0028af3e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028af40 bne 0x28ae4c                                      |         goto label_0;
                                                                 |     }
    0x0028af42 ldr r3, [r5, 0x14]                                |     r3 = *((r5 + 0x14));
    0x0028af44 cmp r6, r3                                        |     
                                                                 |     if (r6 < r3) {
    0x0028af46 blt 0x28af26                                      |         goto label_1;
                                                                 |     }
                                                                 | label_9:
    0x0028af48 ldr.w sb, [pc, 0xc8]                              |     sb = sym.soap_default_tt__VideoOutputExtension;
    0x0028af4c add.w r3, r5, 0x1c                                |     r3 = r5 + 0x1c;
    0x0028af50 ldr r1, [pc, 0xc4]                                |     
    0x0028af52 mov.w r2, -1                                      |     r2 = -1;
    0x0028af56 mov r0, r4                                        |     r0 = r4;
    0x0028af58 add sb, pc                                        |     sb += pc;
    0x0028af5a add r1, pc                                        |     r1 = 0x515f76;
    0x0028af5c str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0028af60 blx 0x1ddbc0                                      |     r0 = fcn_001ddbc0 ();
    0x0028af64 mov r6, r0                                        |     r6 = r0;
    0x0028af66 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028af68 bne.w 0x28ae4c                                    |         goto label_0;
                                                                 |     }
    0x0028af6c ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
                                                                 |     if (r3 == 0) {
    0x0028af6e cbz r3, 0x28afa4                                  |         goto label_11;
                                                                 |     }
    0x0028af70 ldr r2, [r5, 0x20]                                |     r2 = *((r5 + 0x20));
    0x0028af72 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0028af74 ble 0x28afa4                                      |         goto label_11;
                                                                 |     }
    0x0028af76 ldr.w sl, [pc, 0xa4]                              |     
    0x0028af7a mov r7, r0                                        |     r7 = r0;
    0x0028af7c add sl, pc                                        |     sl = 0x515f9e;
    0x0028af7e b 0x28af82                                        |     goto label_12;
                                                                 | label_2:
    0x0028af80 ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
                                                                 | label_12:
    0x0028af82 add r3, r7                                        |     r3 += r7;
    0x0028af84 mov.w r2, -1                                      |     r2 = -1;
    0x0028af88 mov r1, sl                                        |     r1 = sl;
    0x0028af8a mov r0, r4                                        |     r0 = r4;
    0x0028af8c str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0028af90 adds r6, 1                                        |     r6++;
    0x0028af92 adds r7, 0x34                                     |     r7 += 0x34;
    0x0028af94 blx 0x1d801c                                      |     r0 = fcn_001d801c ();
    0x0028af98 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0028af9a bne.w 0x28ae4c                                    |         goto label_0;
                                                                 |     }
    0x0028af9e ldr r3, [r5, 0x20]                                |     r3 = *((r5 + 0x20));
    0x0028afa0 cmp r6, r3                                        |     
                                                                 |     if (r6 < r3) {
    0x0028afa2 blt 0x28af80                                      |         goto label_2;
                                                                 |     }
                                                                 | label_11:
    0x0028afa4 mov r1, r8                                        |     r1 = r8;
    0x0028afa6 mov r0, r4                                        |     r0 = r4;
    0x0028afa8 add sp, 8                                         |     
    0x0028afaa pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x0028afae b.w 0x1cd900                                      |     void (*0x1cd900)() ();
                                                                 | label_7:
    0x0028afb2 ldr r1, [pc, 0x6c]                                |     
    0x0028afb4 mov r0, r4                                        |     r0 = r4;
    0x0028afb6 add r1, pc                                        |     r1 = 0x515fdc;
    0x0028afb8 blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x0028afbc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0028afbe beq.w 0x28aeb8                                    |         goto label_3;
                                                                 |     }
    0x0028afc2 b 0x28ae4c                                        |     goto label_0;
                                                                 | label_6:
    0x0028afc4 ldr r1, [pc, 0x5c]                                |     
    0x0028afc6 mov r0, r4                                        |     r0 = r4;
    0x0028afc8 add r1, pc                                        |     r1 = 0x515ff0;
    0x0028afca blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x0028afce cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0028afd0 beq.w 0x28ae96                                    |         goto label_4;
                                                                 |     }
    0x0028afd4 b 0x28ae4c                                        |     goto label_0;
                                                                 | label_8:
    0x0028afd6 ldr r1, [pc, 0x50]                                |     
    0x0028afd8 mov r0, r4                                        |     r0 = r4;
    0x0028afda add r1, pc                                        |     r1 = 0x516008;
    0x0028afdc blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x0028afe0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0028afe2 beq 0x28af0c                                      |         goto label_5;
                                                                 |     }
    0x0028afe4 b 0x28ae4c                                        |     goto label_0;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x28a8f0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_tt__RecordingSourceInformation ()           | void soap_out_tt_RecordingSourceInformation (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0028a8f0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}               |     
    0x0028a8f4 mov r8, r1                                            |     r8 = r1;
    0x0028a8f6 ldr r7, [pc, 0x18c]                                   |     
    0x0028a8f8 sub sp, 8                                             |     
    0x0028a8fa mov r5, r3                                            |     r5 = r3;
    0x0028a8fc mov r6, r2                                            |     r6 = r2;
    0x0028a8fe ldr r1, [pc, 0x188]                                   |     
    0x0028a900 adds r3, 0x1c                                         |     r3 += 0x1c;
    0x0028a902 add r7, pc                                            |     r7 = 0x51538c;
    0x0028a904 mov.w r2, -1                                          |     r2 = -1;
    0x0028a908 str r7, [sp]                                          |     *(sp) = r7;
    0x0028a90a mov r4, r0                                            |     r4 = r0;
    0x0028a90c add r1, pc                                            |     r1 = 0x51539a;
    0x0028a90e ldr.w sb, [sp, 0x28]                                  |     sb = *(arg_28h);
    0x0028a912 blx 0x1dc3cc                                          |     r0 = fcn_001dc3cc ();
    0x0028a916 cbz r0, 0x28a926                                      |     
                                                                     |     while (r0 != 0) {
                                                                     | label_0:
    0x0028a918 add.w r4, r4, 0x16000                                 |         r4 += 0x16000;
    0x0028a91c ldr.w r0, [r4, 0x184]                                 |         r0 = *((r4 + 0x184));
    0x0028a920 add sp, 8                                             |         
    0x0028a922 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                |         
    0x0028a926 mov r1, r6                                            |         r1 = r6;
    0x0028a928 movw r3, 0x4b1                                        |         r3 = 0x4b1;
    0x0028a92c mov r2, r5                                            |         r2 = r5;
    0x0028a92e mov r0, r4                                            |         r0 = r4;
    0x0028a930 blx 0x1e6828                                          |         fcn_001e6828 ();
    0x0028a934 mov r3, sb                                            |         r3 = sb;
    0x0028a936 mov r2, r0                                            |         r2 = r0;
    0x0028a938 mov r1, r8                                            |         r1 = r8;
    0x0028a93a mov r0, r4                                            |         r0 = r4;
    0x0028a93c blx 0x1d9404                                          |         r0 = fcn_001d9404 ();
    0x0028a940 mov r6, r0                                            |         r6 = r0;
    0x0028a942 cmp r0, 0                                             |         
    0x0028a944 bne 0x28a918                                          |         
                                                                     |     }
    0x0028a946 ldr r3, [r5]                                          |     r3 = *(r5);
    0x0028a948 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0028a94a beq 0x28aa44                                          |         goto label_7;
                                                                     |     }
    0x0028a94c ldr r1, [pc, 0x13c]                                   |     
    0x0028a94e mov r3, r5                                            |     r3 = r5;
    0x0028a950 mov.w r2, -1                                          |     r2 = -1;
    0x0028a954 mov r0, r4                                            |     r0 = r4;
    0x0028a956 str r7, [sp]                                          |     *(sp) = r7;
    0x0028a958 add r1, pc                                            |     r1 = 0x5153e8;
    0x0028a95a blx 0x1c51d0                                          |     r0 = fcn_001c51d0 ();
    0x0028a95e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0028a960 bne 0x28a918                                          |         goto label_0;
                                                                     |     }
                                                                     | label_3:
    0x0028a962 ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x0028a964 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0028a966 beq 0x28aa34                                          |         goto label_8;
                                                                     |     }
    0x0028a968 ldr r3, [pc, 0x124]                                   |     
    0x0028a96a mov.w r2, -1                                          |     r2 = -1;
    0x0028a96e ldr r1, [pc, 0x124]                                   |     
    0x0028a970 mov r0, r4                                            |     r0 = r4;
    0x0028a972 add r3, pc                                            |     r3 = 0x515406;
    0x0028a974 str r3, [sp]                                          |     *(sp) = r3;
    0x0028a976 add r1, pc                                            |     r1 = 0x515410;
    0x0028a978 adds r3, r5, 4                                        |     r3 = r5 + 4;
    0x0028a97a blx 0x1c13a8                                          |     r0 = fcn_001c13a8 ();
    0x0028a97e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0028a980 bne 0x28a918                                          |         goto label_0;
                                                                     |     }
                                                                     | label_2:
    0x0028a982 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
    0x0028a984 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0028a986 beq 0x28aa64                                          |         goto label_9;
                                                                     |     }
    0x0028a988 ldr r3, [pc, 0x10c]                                   |     
    0x0028a98a mov.w r2, -1                                          |     r2 = -1;
    0x0028a98e ldr r1, [pc, 0x10c]                                   |     
    0x0028a990 mov r0, r4                                            |     r0 = r4;
    0x0028a992 add r3, pc                                            |     r3 = 0x51542e;
    0x0028a994 str r3, [sp]                                          |     *(sp) = r3;
    0x0028a996 add r1, pc                                            |     r1 = 0x515438;
    0x0028a998 add.w r3, r5, 8                                       |     r3 = r5 + 8;
    0x0028a99c blx 0x1bfbe0                                          |     r0 = fcn_001bfbe0 ();
    0x0028a9a0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0028a9a2 bne 0x28a918                                          |         goto label_0;
                                                                     |     }
                                                                     | label_5:
    0x0028a9a4 ldr r3, [r5, 0xc]                                     |     r3 = *((r5 + 0xc));
    0x0028a9a6 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0028a9a8 beq 0x28aa74                                          |         goto label_10;
                                                                     |     }
    0x0028a9aa ldr r3, [pc, 0xf4]                                    |     
    0x0028a9ac mov.w r2, -1                                          |     r2 = -1;
    0x0028a9b0 ldr r1, [pc, 0xf0]                                    |     
    0x0028a9b2 mov r0, r4                                            |     r0 = r4;
    0x0028a9b4 add r3, pc                                            |     r3 = 0x51545a;
    0x0028a9b6 str r3, [sp]                                          |     *(sp) = r3;
    0x0028a9b8 add r1, pc                                            |     r1 = 0x515460;
    0x0028a9ba add.w r3, r5, 0xc                                     |     r3 = r5 + 0xc;
    0x0028a9be blx 0x1bfbe0                                          |     r0 = fcn_001bfbe0 ();
    0x0028a9c2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0028a9c4 bne 0x28a918                                          |         goto label_0;
                                                                     |     }
                                                                     | label_6:
    0x0028a9c6 ldr r3, [r5, 0x10]                                    |     r3 = *((r5 + 0x10));
    0x0028a9c8 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0028a9ca beq 0x28aa54                                          |         goto label_11;
                                                                     |     }
    0x0028a9cc ldr r3, [pc, 0xd8]                                    |     
    0x0028a9ce mov.w r2, -1                                          |     r2 = -1;
    0x0028a9d2 ldr r1, [pc, 0xd8]                                    |     
    0x0028a9d4 mov r0, r4                                            |     r0 = r4;
    0x0028a9d6 add r3, pc                                            |     r3 = 0x515482;
    0x0028a9d8 str r3, [sp]                                          |     *(sp) = r3;
    0x0028a9da add r1, pc                                            |     r1 = 0x51548c;
    0x0028a9dc add.w r3, r5, 0x10                                    |     r3 = r5 + 0x10;
    0x0028a9e0 blx 0x1c51d0                                          |     r0 = fcn_001c51d0 ();
    0x0028a9e4 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0028a9e6 bne 0x28a918                                          |         goto label_0;
                                                                     |     }
                                                                     | label_4:
    0x0028a9e8 ldr r3, [r5, 0x18]                                    |     r3 = *((r5 + 0x18));
                                                                     |     if (r3 == 0) {
    0x0028a9ea cbz r3, 0x28aa26                                      |         goto label_12;
                                                                     |     }
    0x0028a9ec ldr r2, [r5, 0x14]                                    |     r2 = *((r5 + 0x14));
    0x0028a9ee cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x0028a9f0 ble 0x28aa26                                          |         goto label_12;
                                                                     |     }
    0x0028a9f2 ldr.w sl, [pc, 0xbc]                                  |     
    0x0028a9f6 movs r7, 0                                            |     r7 = 0;
    0x0028a9f8 ldr.w sb, [pc, 0xb8]                                  |     sb = *(0x0028aab4);
    0x0028a9fc add sl, pc                                            |     sl = 0x5154b2;
    0x0028a9fe add sb, pc                                            |     sb += pc;
    0x0028aa00 b 0x28aa04                                            |     goto label_13;
                                                                     | label_1:
    0x0028aa02 ldr r3, [r5, 0x18]                                    |     r3 = *((r5 + 0x18));
                                                                     | label_13:
    0x0028aa04 add r3, r7                                            |     r3 += r7;
    0x0028aa06 mov.w r2, -1                                          |     r2 = -1;
    0x0028aa0a mov r1, sl                                            |     r1 = sl;
    0x0028aa0c mov r0, r4                                            |     r0 = r4;
    0x0028aa0e str.w sb, [sp]                                        |     __asm ("str.w sb, [sp]");
    0x0028aa12 adds r6, 1                                            |     r6++;
    0x0028aa14 adds r7, 0x34                                         |     r7 += 0x34;
    0x0028aa16 blx 0x1d801c                                          |     r0 = fcn_001d801c ();
    0x0028aa1a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0028aa1c bne.w 0x28a918                                        |         goto label_0;
                                                                     |     }
    0x0028aa20 ldr r3, [r5, 0x14]                                    |     r3 = *((r5 + 0x14));
    0x0028aa22 cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x0028aa24 blt 0x28aa02                                          |         goto label_1;
                                                                     |     }
                                                                     | label_12:
    0x0028aa26 mov r1, r8                                            |     r1 = r8;
    0x0028aa28 mov r0, r4                                            |     r0 = r4;
    0x0028aa2a add sp, 8                                             |     
    0x0028aa2c pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                |     
    0x0028aa30 b.w 0x1cd900                                          |     void (*0x1cd900)() ();
                                                                     | label_8:
    0x0028aa34 ldr r1, [pc, 0x80]                                    |     
    0x0028aa36 mov r0, r4                                            |     r0 = r4;
    0x0028aa38 add r1, pc                                            |     r1 = 0x5154f4;
    0x0028aa3a blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x0028aa3e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0028aa40 beq 0x28a982                                          |         goto label_2;
                                                                     |     }
    0x0028aa42 b 0x28a918                                            |     goto label_0;
                                                                     | label_7:
    0x0028aa44 ldr r1, [pc, 0x74]                                    |     
    0x0028aa46 mov r0, r4                                            |     r0 = r4;
    0x0028aa48 add r1, pc                                            |     r1 = 0x515508;
    0x0028aa4a blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x0028aa4e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0028aa50 beq 0x28a962                                          |         goto label_3;
                                                                     |     }
    0x0028aa52 b 0x28a918                                            |     goto label_0;
                                                                     | label_11:
    0x0028aa54 ldr r1, [pc, 0x68]                                    |     
    0x0028aa56 mov r0, r4                                            |     r0 = r4;
    0x0028aa58 add r1, pc                                            |     r1 = 0x51551c;
    0x0028aa5a blx 0x1dfd3c                                          |     fcn_001dfd3c ();
    0x0028aa5c ldrd r2, r8, [r0, -0x0]!                              |     __asm ("ldrd r2, r8, [r0, -0x0]!");
                                                                     |     if (r0 == 0) {
    0x0028aa60 beq 0x28a9e8                                          |         goto label_4;
                                                                     |     }
    0x0028aa62 b 0x28a918                                            |     goto label_0;
                                                                     | label_9:
    0x0028aa64 ldr r1, [pc, 0x5c]                                    |     
    0x0028aa66 mov r0, r4                                            |     r0 = r4;
    0x0028aa68 add r1, pc                                            |     r1 = 0x515530;
    0x0028aa6a blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x0028aa6e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0028aa70 beq 0x28a9a4                                          |         goto label_5;
                                                                     |     }
    0x0028aa72 b 0x28a918                                            |     goto label_0;
                                                                     | label_10:
    0x0028aa74 ldr r1, [pc, 0x50]                                    |     
    0x0028aa76 mov r0, r4                                            |     r0 = r4;
    0x0028aa78 add r1, pc                                            |     r1 = 0x515544;
    0x0028aa7a blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x0028aa7e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0028aa80 beq 0x28a9c6                                          |         goto label_6;
                                                                     |     }
    0x0028aa82 b 0x28a918                                            |     goto label_0;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x277b58 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tt__TrackInformation ()                 | void soap_out_tt_TrackInformation (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00277b58 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00277b5c mov r8, r1                                        |     r8 = r1;
    0x00277b5e ldr r7, [pc, 0x140]                               |     
    0x00277b60 sub sp, 8                                         |     
    0x00277b62 mov r5, r3                                        |     r5 = r3;
    0x00277b64 mov r6, r2                                        |     r6 = r2;
    0x00277b66 ldr r1, [pc, 0x13c]                               |     
    0x00277b68 adds r3, 0x1c                                     |     r3 += 0x1c;
    0x00277b6a add r7, pc                                        |     r7 = 0x4ef810;
    0x00277b6c mov.w r2, -1                                      |     r2 = -1;
    0x00277b70 str r7, [sp]                                      |     *(sp) = r7;
    0x00277b72 mov r4, r0                                        |     r4 = r0;
    0x00277b74 add r1, pc                                        |     r1 = 0x4ef81e;
    0x00277b76 ldr.w sb, [sp, 0x28]                              |     sb = *(arg_28h);
    0x00277b7a blx 0x1dc3cc                                      |     r0 = fcn_001dc3cc ();
    0x00277b7e cbz r0, 0x277b8e                                  |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x00277b80 add.w r4, r4, 0x16000                             |         r4 += 0x16000;
    0x00277b84 ldr.w r0, [r4, 0x184]                             |         r0 = *((r4 + 0x184));
    0x00277b88 add sp, 8                                         |         
    0x00277b8a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x00277b8e mov r1, r6                                        |         r1 = r6;
    0x00277b90 movw r3, 0x4b3                                    |         r3 = 0x4b3;
    0x00277b94 mov r2, r5                                        |         r2 = r5;
    0x00277b96 mov r0, r4                                        |         r0 = r4;
    0x00277b98 blx 0x1e6828                                      |         fcn_001e6828 ();
    0x00277b9c mov r3, sb                                        |         r3 = sb;
    0x00277b9e mov r2, r0                                        |         r2 = r0;
    0x00277ba0 mov r1, r8                                        |         r1 = r8;
    0x00277ba2 mov r0, r4                                        |         r0 = r4;
    0x00277ba4 blx 0x1d9404                                      |         r0 = fcn_001d9404 ();
    0x00277ba8 cmp r0, 0                                         |         
    0x00277baa bne 0x277b80                                      |         
                                                                 |     }
    0x00277bac ldr r3, [r5]                                      |     r3 = *(r5);
    0x00277bae cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00277bb0 beq 0x277c80                                      |         goto label_4;
                                                                 |     }
    0x00277bb2 ldr r1, [pc, 0xf4]                                |     
    0x00277bb4 mov r3, r5                                        |     r3 = r5;
    0x00277bb6 mov.w r2, -1                                      |     r2 = -1;
    0x00277bba mov r0, r4                                        |     r0 = r4;
    0x00277bbc str r7, [sp]                                      |     *(sp) = r7;
    0x00277bbe add r1, pc                                        |     r1 = "dZ";
    0x00277bc0 blx 0x1ed7ac                                      |     r0 = fcn_001ed7ac ();
    0x00277bc4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00277bc6 bne 0x277b80                                      |         goto label_0;
                                                                 |     }
                                                                 | label_2:
    0x00277bc8 ldr r6, [pc, 0xe0]                                |     
    0x00277bca adds r3, r5, 4                                    |     r3 = r5 + 4;
    0x00277bcc ldr r1, [pc, 0xe0]                                |     
    0x00277bce mov.w r2, -1                                      |     r2 = -1;
    0x00277bd2 mov r0, r4                                        |     r0 = r4;
    0x00277bd4 add r6, pc                                        |     r6 = 0x4ef884;
    0x00277bd6 add r1, pc                                        |     r1 = 0x4ef88a;
    0x00277bd8 str r6, [sp]                                      |     *(sp) = r6;
    0x00277bda blx 0x1e6638                                      |     r0 = fcn_001e6638 ();
    0x00277bde cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00277be0 bne 0x277b80                                      |         goto label_0;
                                                                 |     }
    0x00277be2 ldr r3, [r5, 8]                                   |     r3 = *((r5 + 8));
    0x00277be4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00277be6 beq 0x277c90                                      |         goto label_5;
                                                                 |     }
    0x00277be8 ldr r1, [pc, 0xc8]                                |     
    0x00277bea add.w r3, r5, 8                                   |     r3 = r5 + 8;
    0x00277bee mov.w r2, -1                                      |     r2 = -1;
    0x00277bf2 mov r0, r4                                        |     r0 = r4;
    0x00277bf4 str r6, [sp]                                      |     *(sp) = r6;
    0x00277bf6 add r1, pc                                        |     r1 = 0x4ef8ae;
    0x00277bf8 blx 0x1bfbe0                                      |     r0 = fcn_001bfbe0 ();
    0x00277bfc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00277bfe bne 0x277b80                                      |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x00277c00 ldr.w sb, [pc, 0xb4]                              |     
    0x00277c04 add.w r3, r5, 0xc                                 |     r3 = r5 + 0xc;
    0x00277c08 ldr r1, [pc, 0xb0]                                |     
    0x00277c0a mov.w r2, -1                                      |     r2 = -1;
    0x00277c0e mov r0, r4                                        |     r0 = r4;
    0x00277c10 add sb, pc                                        |     sb = 0x4ef8cc;
    0x00277c12 add r1, pc                                        |     r1 = 0x4ef8d2;
    0x00277c14 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x00277c18 blx 0x1be128                                      |     r0 = fcn_001be128 ();
    0x00277c1c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00277c1e bne 0x277b80                                      |         goto label_0;
                                                                 |     }
    0x00277c20 ldr r1, [pc, 0x9c]                                |     
    0x00277c22 add.w r3, r5, 0x10                                |     r3 = r5 + 0x10;
    0x00277c26 mov.w r2, -1                                      |     r2 = -1;
    0x00277c2a mov r0, r4                                        |     r0 = r4;
    0x00277c2c str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x00277c30 add r1, pc                                        |     r1 = 0x4ef8f4;
    0x00277c32 blx 0x1be128                                      |     r0 = fcn_001be128 ();
    0x00277c36 mov r6, r0                                        |     r6 = r0;
    0x00277c38 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00277c3a bne 0x277b80                                      |         goto label_0;
                                                                 |     }
    0x00277c3c ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 |     if (r3 == 0) {
    0x00277c3e cbz r3, 0x277c72                                  |         goto label_6;
                                                                 |     }
    0x00277c40 ldr r2, [r5, 0x14]                                |     r2 = *((r5 + 0x14));
    0x00277c42 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x00277c44 ble 0x277c72                                      |         goto label_6;
                                                                 |     }
    0x00277c46 ldr.w sl, [pc, 0x7c]                              |     
    0x00277c4a mov r7, r0                                        |     r7 = r0;
    0x00277c4c add sl, pc                                        |     sl = 0x4ef916;
    0x00277c4e b 0x277c52                                        |     goto label_7;
                                                                 | label_1:
    0x00277c50 ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 | label_7:
    0x00277c52 add r3, r7                                        |     r3 += r7;
    0x00277c54 mov.w r2, -1                                      |     r2 = -1;
    0x00277c58 mov r1, sl                                        |     r1 = sl;
    0x00277c5a mov r0, r4                                        |     r0 = r4;
    0x00277c5c str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x00277c60 adds r6, 1                                        |     r6++;
    0x00277c62 adds r7, 0x34                                     |     r7 += 0x34;
    0x00277c64 blx 0x1d801c                                      |     r0 = fcn_001d801c ();
    0x00277c68 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00277c6a bne 0x277b80                                      |         goto label_0;
                                                                 |     }
    0x00277c6c ldr r3, [r5, 0x14]                                |     r3 = *((r5 + 0x14));
    0x00277c6e cmp r6, r3                                        |     
                                                                 |     if (r6 < r3) {
    0x00277c70 blt 0x277c50                                      |         goto label_1;
                                                                 |     }
                                                                 | label_6:
    0x00277c72 mov r1, r8                                        |     r1 = r8;
    0x00277c74 mov r0, r4                                        |     r0 = r4;
    0x00277c76 add sp, 8                                         |     
    0x00277c78 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x00277c7c b.w 0x1cd900                                      |     void (*0x1cd900)() ();
                                                                 | label_4:
    0x00277c80 ldr r1, [pc, 0x44]                                |     
    0x00277c82 mov r0, r4                                        |     r0 = r4;
    0x00277c84 add r1, pc                                        |     r1 = 0x4ef950;
    0x00277c86 blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x00277c8a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00277c8c beq 0x277bc8                                      |         goto label_2;
                                                                 |     }
    0x00277c8e b 0x277b80                                        |     goto label_0;
                                                                 | label_5:
    0x00277c90 ldr r1, [pc, 0x38]                                |     
    0x00277c92 mov r0, r4                                        |     r0 = r4;
    0x00277c94 add r1, pc                                        |     r1 = 0x4ef964;
    0x00277c96 blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x00277c9a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00277c9c beq 0x277c00                                      |         goto label_3;
                                                                 |     }
    0x00277c9e b 0x277b80                                        |     goto label_0;
                                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2dd6d0 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_out_tt__VideoEncoder2ConfigurationOptions ()        | void soap_out_tt_VideoEncoder2ConfigurationOptions (int16_t arg_30h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                         |     int16_t var_0h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     r2 = arg3;
                                                                         |     r3 = arg4;
    0x002dd6d0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}               |     
    0x002dd6d4 mov r7, r2                                                |     r7 = r2;
    0x002dd6d6 ldr r2, [r3, 0x1c]                                        |     r2 = *((r3 + 0x1c));
    0x002dd6d8 sub sp, 0xc                                               |     
    0x002dd6da mov r4, r3                                                |     r4 = r3;
    0x002dd6dc mov r5, r0                                                |     r5 = r0;
    0x002dd6de ldr.w r8, [sp, 0x30]                                      |     r8 = *(arg_30h);
    0x002dd6e2 mov r6, r1                                                |     r6 = r1;
                                                                         |     if (r2 != 0) {
    0x002dd6e4 cbz r2, 0x2dd6f0                                          |         
    0x002dd6e6 ldr r1, [pc, 0x1cc]                                       |         
    0x002dd6e8 movs r3, 1                                                |         r3 = 1;
    0x002dd6ea add r1, pc                                                |         r1 = 0x5bafa4;
    0x002dd6ec blx 0x1dd7bc                                              |         fcn_001dd7bc ();
                                                                         |     }
    0x002dd6f0 ldr r2, [r4, 0x20]                                        |     r2 = *((r4 + 0x20));
                                                                         |     if (r2 != 0) {
    0x002dd6f2 cbz r2, 0x2dd700                                          |         
    0x002dd6f4 ldr r1, [pc, 0x1c0]                                       |         
    0x002dd6f6 movs r3, 1                                                |         r3 = 1;
    0x002dd6f8 mov r0, r5                                                |         r0 = r5;
    0x002dd6fa add r1, pc                                                |         r1 = 0x5bafb6;
    0x002dd6fc blx 0x1dd7bc                                              |         fcn_001dd7bc ();
                                                                         |     }
    0x002dd700 ldr r2, [r4, 0x24]                                        |     r2 = *((r4 + 0x24));
                                                                         |     if (r2 != 0) {
    0x002dd702 cbz r2, 0x2dd710                                          |         
    0x002dd704 ldr r1, [pc, 0x1b4]                                       |         
    0x002dd706 movs r3, 1                                                |         r3 = 1;
    0x002dd708 mov r0, r5                                                |         r0 = r5;
    0x002dd70a add r1, pc                                                |         r1 = 0x5bafca;
    0x002dd70c blx 0x1dd7bc                                              |         fcn_001dd7bc ();
                                                                         |     }
    0x002dd710 ldr r3, [r4, 0x28]                                        |     r3 = *((r4 + 0x28));
                                                                         |     if (r3 != 0) {
    0x002dd712 cbz r3, 0x2dd72a                                          |         
    0x002dd714 ldr r1, [r3]                                              |         r1 = *(r3);
    0x002dd716 mov r0, r5                                                |         r0 = r5;
    0x002dd718 blx 0x1ea424                                              |         fcn_001ea424 ();
    0x002dd71c ldr r1, [pc, 0x1a0]                                       |         
    0x002dd71e mov r2, r0                                                |         r2 = r0;
    0x002dd720 movs r3, 1                                                |         r3 = 1;
    0x002dd722 mov r0, r5                                                |         r0 = r5;
    0x002dd724 add r1, pc                                                |         r1 = 0x5bafe8;
    0x002dd726 blx 0x1dd7bc                                              |         fcn_001dd7bc ();
                                                                         |     }
    0x002dd72a ldr r3, [r4, 0x2c]                                        |     r3 = *((r4 + 0x2c));
                                                                         |     if (r3 != 0) {
    0x002dd72c cbz r3, 0x2dd744                                          |         
    0x002dd72e ldr r1, [r3]                                              |         r1 = *(r3);
    0x002dd730 mov r0, r5                                                |         r0 = r5;
    0x002dd732 blx 0x1ea424                                              |         fcn_001ea424 ();
    0x002dd736 ldr r1, [pc, 0x18c]                                       |         
    0x002dd738 mov r2, r0                                                |         r2 = r0;
    0x002dd73a movs r3, 1                                                |         r3 = 1;
    0x002dd73c mov r0, r5                                                |         r0 = r5;
    0x002dd73e add r1, pc                                                |         r1 = 0x5bb008;
    0x002dd740 blx 0x1dd7bc                                              |         fcn_001dd7bc ();
                                                                         |     }
    0x002dd744 ldr.w sb, [pc, 0x180]                                     |     
    0x002dd748 add.w r3, r4, 0x30                                        |     r3 = r4 + 0x30;
    0x002dd74c ldr r1, [pc, 0x17c]                                       |     
    0x002dd74e mov.w r2, -1                                              |     r2 = -1;
    0x002dd752 mov r0, r5                                                |     r0 = r5;
    0x002dd754 add sb, pc                                                |     sb = 0x5bb020;
    0x002dd756 add r1, pc                                                |     r1 = 0x5bb026;
    0x002dd758 str.w sb, [sp]                                            |     __asm ("str.w sb, [sp]");
    0x002dd75c blx 0x1dc3cc                                              |     r0 = fcn_001dc3cc ();
    0x002dd760 cbz r0, 0x2dd770                                          |     
                                                                         |     while (r0 != 0) {
                                                                         | label_0:
    0x002dd762 add.w r5, r5, 0x16000                                     |         r5 += 0x16000;
    0x002dd766 ldr.w r0, [r5, 0x184]                                     |         r0 = *((r5 + 0x184));
    0x002dd76a add sp, 0xc                                               |         
    0x002dd76c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}                |         
    0x002dd770 mov r1, r7                                                |         r1 = r7;
    0x002dd772 movw r3, 0x272                                            |         r3 = 0x272;
    0x002dd776 mov r2, r4                                                |         r2 = r4;
    0x002dd778 mov r0, r5                                                |         r0 = r5;
    0x002dd77a blx 0x1e6828                                              |         fcn_001e6828 ();
    0x002dd77e mov r3, r8                                                |         r3 = r8;
    0x002dd780 mov r2, r0                                                |         r2 = r0;
    0x002dd782 mov r1, r6                                                |         r1 = r6;
    0x002dd784 mov r0, r5                                                |         r0 = r5;
    0x002dd786 blx 0x1d9404                                              |         r0 = fcn_001d9404 ();
    0x002dd78a mov r7, r0                                                |         r7 = r0;
    0x002dd78c cmp r0, 0                                                 |         
    0x002dd78e bne 0x2dd762                                              |         
                                                                         |     }
    0x002dd790 ldr r3, [r4]                                              |     r3 = *(r4);
    0x002dd792 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x002dd794 beq 0x2dd894                                              |         goto label_6;
                                                                         |     }
    0x002dd796 ldr r1, [pc, 0x138]                                       |     
    0x002dd798 mov r3, r4                                                |     r3 = r4;
    0x002dd79a mov.w r2, -1                                              |     r2 = -1;
    0x002dd79e mov r0, r5                                                |     r0 = r5;
    0x002dd7a0 str.w sb, [sp]                                            |     __asm ("str.w sb, [sp]");
    0x002dd7a4 add r1, pc                                                |     r1 = 0x5bb07a;
    0x002dd7a6 blx 0x1cda28                                              |     r0 = fcn_001cda28 ();
    0x002dd7aa cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002dd7ac bne 0x2dd762                                              |         goto label_0;
                                                                         |     }
                                                                         | label_4:
    0x002dd7ae ldr r3, [r4, 4]                                           |     r3 = *((r4 + 4));
    0x002dd7b0 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x002dd7b2 beq 0x2dd884                                              |         goto label_7;
                                                                         |     }
    0x002dd7b4 ldr r3, [pc, 0x11c]                                       |     
    0x002dd7b6 mov.w r2, -1                                              |     r2 = -1;
    0x002dd7ba ldr r1, [pc, 0x11c]                                       |     
    0x002dd7bc mov r0, r5                                                |     r0 = r5;
    0x002dd7be add r3, pc                                                |     r3 = 0x5bb096;
    0x002dd7c0 str r3, [sp]                                              |     *(sp) = r3;
    0x002dd7c2 add r1, pc                                                |     r1 = 0x5bb0a0;
    0x002dd7c4 adds r3, r4, 4                                            |     r3 = r4 + 4;
    0x002dd7c6 blx 0x1ce9c4                                              |     r0 = fcn_001ce9c4 ();
    0x002dd7ca cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002dd7cc bne 0x2dd762                                              |         goto label_0;
                                                                         |     }
                                                                         | label_3:
    0x002dd7ce ldr r3, [r4, 0xc]                                         |     r3 = *((r4 + 0xc));
                                                                         |     if (r3 == 0) {
    0x002dd7d0 cbz r3, 0x2dd812                                          |         goto label_8;
                                                                         |     }
    0x002dd7d2 ldr r2, [r4, 8]                                           |     r2 = *((r4 + 8));
    0x002dd7d4 cmp r2, 0                                                 |     
                                                                         |     if (r2 <= 0) {
    0x002dd7d6 ble 0x2dd812                                              |         goto label_8;
                                                                         |     }
    0x002dd7d8 ldr.w fp, [pc, 0x100]                                     |     fp = *(0x002dd8dc);
    0x002dd7dc mov.w r8, 0                                               |     r8 = 0;
    0x002dd7e0 ldr.w sl, [pc, 0xfc]                                      |     
    0x002dd7e4 mov sb, r8                                                |     sb = r8;
    0x002dd7e6 add fp, pc                                                |     
    0x002dd7e8 add sl, pc                                                |     sl = 0x5bb0cc;
    0x002dd7ea b 0x2dd7ee                                                |     goto label_9;
                                                                         | label_1:
    0x002dd7ec ldr r3, [r4, 0xc]                                         |     r3 = *((r4 + 0xc));
                                                                         | label_9:
    0x002dd7ee add r3, sb                                                |     r3 += sb;
    0x002dd7f0 mov.w r2, -1                                              |     r2 = -1;
    0x002dd7f4 mov r1, fp                                                |     r1 = fp;
    0x002dd7f6 mov r0, r5                                                |     r0 = r5;
    0x002dd7f8 str.w sl, [sp]                                            |     __asm ("str.w sl, [sp]");
    0x002dd7fc add.w r8, r8, 1                                           |     r8++;
    0x002dd800 add.w sb, sb, 0x28                                        |     sb += 0x28;
    0x002dd804 blx 0x1edf80                                              |     r0 = fcn_001edf80 ();
    0x002dd808 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002dd80a bne 0x2dd762                                              |         goto label_0;
                                                                         |     }
    0x002dd80c ldr r3, [r4, 8]                                           |     r3 = *((r4 + 8));
    0x002dd80e cmp r3, r8                                                |     
                                                                         |     if (r3 > r8) {
    0x002dd810 bgt 0x2dd7ec                                              |         goto label_1;
                                                                         |     }
                                                                         | label_8:
    0x002dd812 ldr r3, [r4, 0x10]                                        |     r3 = *((r4 + 0x10));
    0x002dd814 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x002dd816 beq 0x2dd8a4                                              |         goto label_10;
                                                                         |     }
    0x002dd818 ldr r3, [pc, 0xc8]                                        |     
    0x002dd81a mov.w r2, -1                                              |     r2 = -1;
    0x002dd81e ldr r1, [pc, 0xc8]                                        |     
    0x002dd820 mov r0, r5                                                |     r0 = r5;
    0x002dd822 add r3, pc                                                |     r3 = 0x5bb10a;
    0x002dd824 str r3, [sp]                                              |     *(sp) = r3;
    0x002dd826 add r1, pc                                                |     r1 = 0x5bb114;
    0x002dd828 add.w r3, r4, 0x10                                        |     r3 = r4 + 0x10;
    0x002dd82c blx 0x1ca2e0                                              |     r0 = fcn_001ca2e0 ();
    0x002dd830 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002dd832 bne 0x2dd762                                              |         goto label_0;
                                                                         |     }
                                                                         | label_5:
    0x002dd834 ldr r3, [r4, 0x18]                                        |     r3 = *((r4 + 0x18));
                                                                         |     if (r3 == 0) {
    0x002dd836 cbz r3, 0x2dd876                                          |         goto label_11;
                                                                         |     }
    0x002dd838 ldr r2, [r4, 0x14]                                        |     r2 = *((r4 + 0x14));
    0x002dd83a cmp r2, 0                                                 |     
                                                                         |     if (r2 <= 0) {
    0x002dd83c ble 0x2dd876                                              |         goto label_11;
                                                                         |     }
    0x002dd83e ldr.w sl, [pc, 0xac]                                      |     sl = *(0x002dd8ec);
    0x002dd842 mov.w r8, 0                                               |     r8 = 0;
    0x002dd846 ldr.w sb, [pc, 0xa8]                                      |     sb = fcn.001f0f90;
    0x002dd84a add sl, pc                                                |     sl += pc;
    0x002dd84c add sb, pc                                                |     sb += pc;
    0x002dd84e b 0x2dd852                                                |     goto label_12;
                                                                         | label_2:
    0x002dd850 ldr r3, [r4, 0x18]                                        |     r3 = *((r4 + 0x18));
                                                                         | label_12:
    0x002dd852 add r3, r8                                                |     r3 += r8;
    0x002dd854 mov.w r2, -1                                              |     r2 = -1;
    0x002dd858 mov r1, sl                                                |     r1 = sl;
    0x002dd85a mov r0, r5                                                |     r0 = r5;
    0x002dd85c str.w sb, [sp]                                            |     __asm ("str.w sb, [sp]");
    0x002dd860 adds r7, 1                                                |     r7++;
    0x002dd862 add.w r8, r8, 0x34                                        |     r8 += 0x34;
    0x002dd866 blx 0x1d801c                                              |     r0 = fcn_001d801c ();
    0x002dd86a cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002dd86c bne.w 0x2dd762                                            |         goto label_0;
                                                                         |     }
    0x002dd870 ldr r3, [r4, 0x14]                                        |     r3 = *((r4 + 0x14));
    0x002dd872 cmp r3, r7                                                |     
                                                                         |     if (r3 > r7) {
    0x002dd874 bgt 0x2dd850                                              |         goto label_2;
                                                                         |     }
                                                                         | label_11:
    0x002dd876 mov r1, r6                                                |     r1 = r6;
    0x002dd878 mov r0, r5                                                |     r0 = r5;
    0x002dd87a add sp, 0xc                                               |     
    0x002dd87c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}                |     
    0x002dd880 b.w 0x1cd900                                              |     void (*0x1cd900)() ();
                                                                         | label_7:
    0x002dd884 ldr r1, [pc, 0x6c]                                        |     
    0x002dd886 mov r0, r5                                                |     r0 = r5;
    0x002dd888 add r1, pc                                                |     r1 = 0x5bb180;
    0x002dd88a blx 0x1dfd3c                                              |     r0 = fcn_001dfd3c ();
    0x002dd88e cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x002dd890 beq 0x2dd7ce                                              |         goto label_3;
                                                                         |     }
    0x002dd892 b 0x2dd762                                                |     goto label_0;
                                                                         | label_6:
    0x002dd894 ldr r1, [pc, 0x60]                                        |     
    0x002dd896 mov r0, r5                                                |     r0 = r5;
    0x002dd898 add r1, pc                                                |     r1 = 0x5bb194;
    0x002dd89a blx 0x1dfd3c                                              |     r0 = fcn_001dfd3c ();
    0x002dd89c orrs.w r8, r0, r0, lsl 8                                  |     r8 = r0 | (r0 << 8);
                                                                         |     if (r8 == r0) {
    0x002dd8a0 beq 0x2dd7ae                                              |         goto label_4;
                                                                         |     }
    0x002dd8a2 b 0x2dd762                                                |     goto label_0;
                                                                         | label_10:
    0x002dd8a4 ldr r1, [pc, 0x54]                                        |     
    0x002dd8a6 mov r0, r5                                                |     r0 = r5;
    0x002dd8a8 add r1, pc                                                |     r1 = 0x5bb1a8;
    0x002dd8aa blx 0x1dfd3c                                              |     r0 = fcn_001dfd3c ();
    0x002dd8ae cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x002dd8b0 beq 0x2dd834                                              |         goto label_5;
                                                                         |     }
    0x002dd8b2 b 0x2dd762                                                |     goto label_0;
                                                                         | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2445b4 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.soap_out_tt__VideoSourceConfigurationOptionsExtension2 ()        | void soap_out_tt_VideoSourceConfigurationOptionsExtension2 (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                                 |     int16_t var_0h;
                                                                                 |     r0 = arg1;
                                                                                 |     r1 = arg2;
                                                                                 |     r2 = arg3;
                                                                                 |     r3 = arg4;
    0x002445b4 push.w {r4, r5, r6, r7, r8, sb, sl, lr}                           |     
    0x002445b8 sub sp, 8                                                         |     
    0x002445ba ldr r5, [sp, 0x28]                                                |     r5 = *(arg_28h);
    0x002445bc mov r4, r3                                                        |     r4 = r3;
    0x002445be mov r7, r0                                                        |     r7 = r0;
    0x002445c0 mov r8, r1                                                        |     r8 = r1;
    0x002445c2 mov.w r3, 0x254                                                   |     r3 = 0x254;
    0x002445c6 mov r1, r2                                                        |     r1 = r2;
    0x002445c8 mov r2, r4                                                        |     r2 = r4;
    0x002445ca blx 0x1e6828                                                      |     fcn_001e6828 ();
    0x002445ce mov r3, r5                                                        |     r3 = r5;
    0x002445d0 mov r2, r0                                                        |     r2 = r0;
    0x002445d2 mov r1, r8                                                        |     r1 = r8;
    0x002445d4 mov r0, r7                                                        |     r0 = r7;
    0x002445d6 blx 0x1d9404                                                      |     r0 = fcn_001d9404 ();
                                                                                 |     if (r0 != 0) {
    0x002445da cbnz r0, 0x24461a                                                 |         goto label_0;
                                                                                 |     }
    0x002445dc ldr r3, [r4, 4]                                                   |     r3 = *((r4 + 4));
    0x002445de mov r6, r0                                                        |     r6 = r0;
                                                                                 |     if (r3 == 0) {
    0x002445e0 cbz r3, 0x244628                                                  |         goto label_1;
                                                                                 |     }
    0x002445e2 ldr r2, [r4]                                                      |     r2 = *(r4);
    0x002445e4 cmp r2, 0                                                         |     
                                                                                 |     if (r2 <= 0) {
    0x002445e6 ble 0x244628                                                      |         goto label_1;
                                                                                 |     }
    0x002445e8 ldr.w sl, [pc, 0x88]                                              |     sl = *(0x00244674);
    0x002445ec mov r5, r0                                                        |     r5 = r0;
    0x002445ee ldr.w sb, [pc, 0x88]                                              |     
    0x002445f2 add sl, pc                                                        |     sl += pc;
    0x002445f4 add sb, pc                                                        |     sb = 0x488c72;
    0x002445f6 b 0x244600                                                        |     
                                                                                 |     while (r0 == 0) {
    0x002445f8 ldr r3, [r4]                                                      |         r3 = *(r4);
    0x002445fa cmp r5, r3                                                        |         
                                                                                 |         if (r5 >= r3) {
    0x002445fc bge 0x244628                                                      |             goto label_1;
                                                                                 |         }
    0x002445fe ldr r3, [r4, 4]                                                   |         r3 = *((r4 + 4));
    0x00244600 add.w r3, r3, r5, lsl 2                                           |         r3 += (r5 << 2);
    0x00244604 mov.w r2, -1                                                      |         r2 = -1;
    0x00244608 mov r1, sl                                                        |         r1 = sl;
    0x0024460a str.w sb, [sp]                                                    |         __asm ("str.w sb, [sp]");
    0x0024460e mov r0, r7                                                        |         r0 = r7;
    0x00244610 adds r5, 1                                                        |         r5++;
    0x00244612 blx 0x1cc280                                                      |         r0 = fcn_001cc280 ();
    0x00244616 cmp r0, 0                                                         |         
    0x00244618 beq 0x2445f8                                                      |         
                                                                                 |     }
                                                                                 | label_0:
    0x0024461a add.w r7, r7, 0x16000                                             |     r7 += 0x16000;
    0x0024461e ldr.w r0, [r7, 0x184]                                             |     r0 = *((r7 + 0x184));
    0x00244622 add sp, 8                                                         |     
    0x00244624 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                            |     
                                                                                 | label_1:
    0x00244628 ldr r3, [r4, 0xc]                                                 |     r3 = *((r4 + 0xc));
                                                                                 |     if (r3 == 0) {
    0x0024462a cbz r3, 0x244666                                                  |         goto label_2;
                                                                                 |     }
    0x0024462c ldr r2, [r4, 8]                                                   |     r2 = *((r4 + 8));
    0x0024462e cmp r2, 0                                                         |     
                                                                                 |     if (r2 <= 0) {
    0x00244630 ble 0x244666                                                      |         goto label_2;
                                                                                 |     }
    0x00244632 ldr.w sl, [pc, 0x48]                                              |     
    0x00244636 movs r5, 0                                                        |     r5 = 0;
    0x00244638 ldr.w sb, [pc, 0x44]                                              |     sb = *(0x00244680);
    0x0024463c add sl, pc                                                        |     sl = 0x488cbe;
    0x0024463e add sb, pc                                                        |     sb += pc;
    0x00244640 b 0x24464a                                                        |     
                                                                                 |     while (r0 == 0) {
    0x00244642 ldr r3, [r4, 8]                                                   |         r3 = *((r4 + 8));
    0x00244644 cmp r6, r3                                                        |         
                                                                                 |         if (r6 >= r3) {
    0x00244646 bge 0x244666                                                      |             goto label_2;
                                                                                 |         }
    0x00244648 ldr r3, [r4, 0xc]                                                 |         r3 = *((r4 + 0xc));
    0x0024464a add r3, r5                                                        |         r3 += r5;
    0x0024464c mov.w r2, -1                                                      |         r2 = -1;
    0x00244650 mov r1, sl                                                        |         r1 = sl;
    0x00244652 mov r0, r7                                                        |         r0 = r7;
    0x00244654 str.w sb, [sp]                                                    |         __asm ("str.w sb, [sp]");
    0x00244658 adds r6, 1                                                        |         r6++;
    0x0024465a adds r5, 0x34                                                     |         r5 += 0x34;
    0x0024465c blx 0x1d801c                                                      |         r0 = fcn_001d801c ();
    0x00244660 cmp r0, 0                                                         |         
    0x00244662 beq 0x244642                                                      |         
                                                                                 |     }
    0x00244664 b 0x24461a                                                        |     goto label_0;
                                                                                 | label_2:
    0x00244666 mov r1, r8                                                        |     r1 = r8;
    0x00244668 mov r0, r7                                                        |     r0 = r7;
    0x0024466a add sp, 8                                                         |     
    0x0024466c pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                            |     
    0x00244670 b.w 0x1cd900                                                      |     return void (*0x1cd900)() ();
                                                                                 | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x264098 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.soap_out_tt__VideoSourceConfigurationOptionsExtension ()         | void soap_out_tt_VideoSourceConfigurationOptionsExtension (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                                 |     int16_t var_0h;
                                                                                 |     r0 = arg1;
                                                                                 |     r1 = arg2;
                                                                                 |     r2 = arg3;
                                                                                 |     r3 = arg4;
    0x00264098 push.w {r4, r5, r6, r7, r8, sb, sl, lr}                           |     
    0x0026409c sub sp, 8                                                         |     
    0x0026409e ldr r4, [sp, 0x28]                                                |     r4 = *(arg_28h);
    0x002640a0 mov r6, r3                                                        |     r6 = r3;
    0x002640a2 mov r7, r0                                                        |     r7 = r0;
    0x002640a4 mov sb, r1                                                        |     sb = r1;
    0x002640a6 mov.w r3, 0x250                                                   |     r3 = 0x250;
    0x002640aa mov r1, r2                                                        |     r1 = r2;
    0x002640ac mov r2, r6                                                        |     r2 = r6;
    0x002640ae blx 0x1e6828                                                      |     fcn_001e6828 ();
    0x002640b2 mov r3, r4                                                        |     r3 = r4;
    0x002640b4 mov r2, r0                                                        |     r2 = r0;
    0x002640b6 mov r1, sb                                                        |     r1 = sb;
    0x002640b8 mov r0, r7                                                        |     r0 = r7;
    0x002640ba blx 0x1d9404                                                      |     r0 = fcn_001d9404 ();
                                                                                 |     if (r0 != 0) {
    0x002640be cbnz r0, 0x2640fe                                                 |         goto label_0;
                                                                                 |     }
    0x002640c0 ldr r3, [r6, 4]                                                   |     r3 = *((r6 + 4));
                                                                                 |     if (r3 == 0) {
    0x002640c2 cbz r3, 0x26410c                                                  |         goto label_1;
                                                                                 |     }
    0x002640c4 ldr r2, [r6]                                                      |     r2 = *(r6);
    0x002640c6 cmp r2, 0                                                         |     
                                                                                 |     if (r2 <= 0) {
    0x002640c8 ble 0x26410c                                                      |         goto label_1;
                                                                                 |     }
    0x002640ca ldr.w sl, [pc, 0x84]                                              |     sl = *(0x00264150);
    0x002640ce mov r4, r0                                                        |     r4 = r0;
    0x002640d0 ldr.w r8, [pc, 0x80]                                              |     
    0x002640d4 mov r5, r0                                                        |     r5 = r0;
    0x002640d6 add sl, pc                                                        |     sl += pc;
    0x002640d8 add r8, pc                                                        |     r8 = 0x4c8230;
    0x002640da b 0x2640e4                                                        |     
                                                                                 |     while (r0 == 0) {
    0x002640dc ldr r3, [r6]                                                      |         r3 = *(r6);
    0x002640de cmp r4, r3                                                        |         
                                                                                 |         if (r4 >= r3) {
    0x002640e0 bge 0x26410c                                                      |             goto label_1;
                                                                                 |         }
    0x002640e2 ldr r3, [r6, 4]                                                   |         r3 = *((r6 + 4));
    0x002640e4 add r3, r5                                                        |         r3 += r5;
    0x002640e6 mov.w r2, -1                                                      |         r2 = -1;
    0x002640ea mov r1, sl                                                        |         r1 = sl;
    0x002640ec mov r0, r7                                                        |         r0 = r7;
    0x002640ee str.w r8, [sp]                                                    |         __asm ("str.w r8, [sp]");
    0x002640f2 adds r4, 1                                                        |         r4++;
    0x002640f4 adds r5, 0x34                                                     |         r5 += 0x34;
    0x002640f6 blx 0x1d801c                                                      |         r0 = fcn_001d801c ();
    0x002640fa cmp r0, 0                                                         |         
    0x002640fc beq 0x2640dc                                                      |         
                                                                                 |     }
                                                                                 |     do {
                                                                                 | label_0:
    0x002640fe add.w r7, r7, 0x16000                                             |         r7 += 0x16000;
    0x00264102 ldr.w r0, [r7, 0x184]                                             |         r0 = *((r7 + 0x184));
    0x00264104 lsls r4, r0, 6                                                    |         r4 = r0 << 6;
    0x00264106 add sp, 8                                                         |         
    0x00264108 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                            |         
                                                                                 | label_1:
    0x0026410c ldr r4, [pc, 0x48]                                                |         
    0x0026410e add.w r3, r6, 8                                                   |         r3 = r6 + 8;
    0x00264112 ldr r1, [pc, 0x48]                                                |         
    0x00264114 mov.w r2, -1                                                      |         r2 = -1;
    0x00264118 mov r0, r7                                                        |         r0 = r7;
    0x0026411a add r4, pc                                                        |         r4 = 0x4c8276;
    0x0026411c add r1, pc                                                        |         r1 = 0x4c827e;
    0x0026411e str r4, [sp]                                                      |         *(sp) = r4;
    0x00264120 blx 0x1bae60                                                      |         r0 = fcn_001bae60 ();
    0x00264124 cmp r0, 0                                                         |         
    0x00264126 bne 0x2640fe                                                      |         
                                                                                 |     } while (r0 != 0);
    0x00264128 ldr r1, [pc, 0x34]                                                |     
    0x0026412a add.w r3, r6, 0xc                                                 |     r3 = r6 + 0xc;
    0x0026412e mov.w r2, -1                                                      |     r2 = -1;
    0x00264132 mov r0, r7                                                        |     r0 = r7;
    0x00264134 str r4, [sp]                                                      |     *(sp) = r4;
    0x00264136 add r1, pc                                                        |     r1 = 0x4c829a;
    0x00264138 blx 0x1e2834                                                      |     r0 = fcn_001e2834 ();
    0x0026413c cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x0026413e bne 0x2640fe                                                      |         goto label_0;
                                                                                 |     }
    0x00264140 mov r1, sb                                                        |     r1 = sb;
    0x00264142 mov r0, r7                                                        |     r0 = r7;
    0x00264144 add sp, 8                                                         |     
    0x00264146 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                            |     
    0x0026414a b.w 0x1cd900                                                      |     return void (*0x1cd900)() ();
                                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2817e4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_tt__VideoSourceConfigurationOptions ()      | void soap_out_tt_VideoSourceConfigurationOptions (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x002817e4 push.w {r4, r5, r6, r7, r8, sb, lr}                   |     
    0x002817e8 mov r5, r3                                            |     r5 = r3;
    0x002817ea ldr r3, [r3, 0x10]                                    |     r3 = *((r3 + 0x10));
    0x002817ec sub sp, 0xc                                           |     
    0x002817ee mov r4, r0                                            |     r4 = r0;
    0x002817f0 mov r7, r1                                            |     r7 = r1;
    0x002817f2 ldr.w sb, [sp, 0x28]                                  |     sb = *(arg_28h);
    0x002817f6 mov r6, r2                                            |     r6 = r2;
                                                                     |     if (r3 != 0) {
    0x002817f8 cbz r3, 0x28180e                                      |         
    0x002817fa ldr r1, [r3]                                          |         r1 = *(r3);
    0x002817fc blx 0x1de5f4                                          |         fcn_001de5f4 ();
    0x00281800 ldr r1, [pc, 0xe8]                                    |         
    0x00281802 mov r2, r0                                            |         r2 = r0;
    0x00281804 movs r3, 1                                            |         r3 = 1;
    0x00281806 mov r0, r4                                            |         r0 = r4;
    0x00281808 add r1, pc                                            |         r1 = 0x5030f8;
    0x0028180a blx 0x1dd7bc                                          |         fcn_001dd7bc ();
                                                                     |     }
    0x0028180e ldr.w r8, [pc, 0xe0]                                  |     r8 = *(0x002818f0);
    0x00281812 add.w r3, r5, 0x14                                    |     r3 = r5 + 0x14;
    0x00281816 ldr r1, [pc, 0xdc]                                    |     
    0x00281818 mov.w r2, -1                                          |     r2 = -1;
    0x0028181c mov r0, r4                                            |     r0 = r4;
    0x0028181e add r8, pc                                            |     r8 += pc;
    0x00281820 add r1, pc                                            |     r1 = 0x50311a;
    0x00281822 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x00281826 blx 0x1dc3cc                                          |     r0 = fcn_001dc3cc ();
    0x0028182a cbz r0, 0x28183a                                      |     
                                                                     |     while (r0 != 0) {
                                                                     | label_0:
    0x0028182c add.w r4, r4, 0x16000                                 |         r4 += 0x16000;
    0x00281830 ldr.w r0, [r4, 0x184]                                 |         r0 = *((r4 + 0x184));
    0x00281834 add sp, 0xc                                           |         
    0x00281836 pop.w {r4, r5, r6, r7, r8, sb, pc}                    |         
    0x0028183a mov r1, r6                                            |         r1 = r6;
    0x0028183c movw r3, 0x1e9                                        |         r3 = 0x1e9;
    0x00281840 mov r2, r5                                            |         r2 = r5;
    0x00281842 mov r0, r4                                            |         r0 = r4;
    0x00281844 blx 0x1e6828                                          |         fcn_001e6828 ();
    0x00281848 mov r3, sb                                            |         r3 = sb;
    0x0028184a mov r2, r0                                            |         r2 = r0;
    0x0028184c mov r1, r7                                            |         r1 = r7;
    0x0028184e mov r0, r4                                            |         r0 = r4;
    0x00281850 blx 0x1d9404                                          |         r0 = fcn_001d9404 ();
    0x00281854 mov r6, r0                                            |         r6 = r0;
    0x00281856 cmp r0, 0                                             |         
    0x00281858 bne 0x28182c                                          |         
                                                                     |     }
    0x0028185a ldr r3, [r5]                                          |     r3 = *(r5);
    0x0028185c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0028185e beq 0x2818dc                                          |         goto label_3;
                                                                     |     }
    0x00281860 ldr r1, [pc, 0x94]                                    |     
    0x00281862 mov r3, r5                                            |     r3 = r5;
    0x00281864 mov.w r2, -1                                          |     r2 = -1;
    0x00281868 mov r0, r4                                            |     r0 = r4;
    0x0028186a str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x0028186e add r1, pc                                            |     r1 = 0x50316a;
    0x00281870 blx 0x1d7bf4                                          |     r0 = fcn_001d7bf4 ();
    0x00281874 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x00281876 bne 0x28182c                                          |         goto label_0;
                                                                     |     }
                                                                     | label_2:
    0x00281878 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
                                                                     |     if (r3 == 0) {
    0x0028187a cbz r3, 0x2818b2                                      |         goto label_4;
                                                                     |     }
    0x0028187c ldr r2, [r5, 4]                                       |     r2 = *((r5 + 4));
    0x0028187e cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x00281880 ble 0x2818b2                                          |         goto label_4;
                                                                     |     }
    0x00281882 ldr.w sb, [pc, 0x78]                                  |     sb = *(0x002818fc);
    0x00281886 ldr.w r8, [pc, 0x78]                                  |     
    0x0028188a add sb, pc                                            |     sb += pc;
    0x0028188c add r8, pc                                            |     r8 = 0x503192;
    0x0028188e b 0x281892                                            |     goto label_5;
                                                                     | label_1:
    0x00281890 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
                                                                     | label_5:
    0x00281892 add.w r3, r3, r6, lsl 2                               |     r3 += (r6 << 2);
    0x00281896 mov.w r2, -1                                          |     r2 = -1;
    0x0028189a mov r1, sb                                            |     r1 = sb;
    0x0028189c str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002818a0 mov r0, r4                                            |     r0 = r4;
    0x002818a2 adds r6, 1                                            |     r6++;
    0x002818a4 blx 0x1bb5d4                                          |     r0 = fcn_001bb5d4 ();
    0x002818a8 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002818aa bne 0x28182c                                          |         goto label_0;
                                                                     |     }
    0x002818ac ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x002818ae cmp r3, r6                                            |     
                                                                     |     if (r3 > r6) {
    0x002818b0 bgt 0x281890                                          |         goto label_1;
                                                                     |     }
                                                                     | label_4:
    0x002818b2 ldr r0, [pc, 0x50]                                    |     
    0x002818b4 add.w r3, r5, 0xc                                     |     r3 = r5 + 0xc;
    0x002818b8 ldr r1, [pc, 0x4c]                                    |     
    0x002818ba mov.w r2, -1                                          |     r2 = -1;
    0x002818be add r0, pc                                            |     r0 = 0x5031c8;
    0x002818c0 str r0, [sp]                                          |     *(sp) = r0;
    0x002818c2 add r1, pc                                            |     r1 = 0x5031ce;
    0x002818c4 mov r0, r4                                            |     r0 = r4;
    0x002818c6 blx 0x1c9a18                                          |     r0 = fcn_001c9a18 ();
    0x002818ca cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002818cc bne 0x28182c                                          |         goto label_0;
                                                                     |     }
    0x002818ce mov r1, r7                                            |     r1 = r7;
    0x002818d0 mov r0, r4                                            |     r0 = r4;
    0x002818d2 add sp, 0xc                                           |     
    0x002818d4 pop.w {r4, r5, r6, r7, r8, sb, lr}                    |     
    0x002818d8 b.w 0x1cd900                                          |     void (*0x1cd900)() ();
                                                                     | label_3:
    0x002818dc ldr r1, [pc, 0x2c]                                    |     
    0x002818de mov r0, r4                                            |     r0 = r4;
    0x002818e0 add r1, pc                                            |     r1 = 0x5031f0;
    0x002818e2 blx 0x1dfd3c                                          |     r0 = fcn_001dfd3c ();
    0x002818e6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x002818e8 beq 0x281878                                          |         goto label_2;
                                                                     |     }
    0x002818ea b 0x28182c                                            |     goto label_0;
                                                                     | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2ddae0 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.soap_out_tt__VideoSourceConfigurationExtension2 ()           | void soap_out_tt_VideoSourceConfigurationExtension2 (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                             |     int16_t var_0h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
                                                                             |     r2 = arg3;
                                                                             |     r3 = arg4;
    0x002ddae0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}                       |     
    0x002ddae4 sub sp, 8                                                     |     
    0x002ddae6 ldr r4, [sp, 0x28]                                            |     r4 = *(arg_28h);
    0x002ddae8 mov r5, r3                                                    |     r5 = r3;
    0x002ddaea mov r7, r0                                                    |     r7 = r0;
    0x002ddaec mov sb, r1                                                    |     sb = r1;
    0x002ddaee movw r3, 0x242                                                |     r3 = 0x242;
    0x002ddaf2 mov r1, r2                                                    |     r1 = r2;
    0x002ddaf4 mov r2, r5                                                    |     r2 = r5;
    0x002ddaf6 blx 0x1e6828                                                  |     fcn_001e6828 ();
    0x002ddafa mov r3, r4                                                    |     r3 = r4;
    0x002ddafc mov r2, r0                                                    |     r2 = r0;
    0x002ddafe mov r1, sb                                                    |     r1 = sb;
    0x002ddb00 mov r0, r7                                                    |     r0 = r7;
    0x002ddb02 blx 0x1d9404                                                  |     r0 = fcn_001d9404 ();
                                                                             |     if (r0 != 0) {
    0x002ddb06 cbnz r0, 0x2ddb46                                             |         goto label_0;
                                                                             |     }
    0x002ddb08 ldr r3, [r5, 4]                                               |     r3 = *((r5 + 4));
                                                                             |     if (r3 == 0) {
    0x002ddb0a cbz r3, 0x2ddb54                                              |         goto label_1;
                                                                             |     }
    0x002ddb0c ldr r2, [r5]                                                  |     r2 = *(r5);
    0x002ddb0e cmp r2, 0                                                     |     
                                                                             |     if (r2 <= 0) {
    0x002ddb10 ble 0x2ddb54                                                  |         goto label_1;
                                                                             |     }
    0x002ddb12 ldr.w sl, [pc, 0xb4]                                          |     sl = *(0x002ddbc8);
    0x002ddb16 mov r4, r0                                                    |     r4 = r0;
    0x002ddb18 ldr.w r8, [pc, 0xb0]                                          |     r8 = fcn.001f0cbc;
    0x002ddb1c mov r6, r0                                                    |     r6 = r0;
    0x002ddb1e add sl, pc                                                    |     sl += pc;
    0x002ddb20 add r8, pc                                                    |     r8 += pc;
    0x002ddb22 b 0x2ddb2c                                                    |     
                                                                             |     while (r0 == 0) {
    0x002ddb24 ldr r3, [r5]                                                  |         r3 = *(r5);
    0x002ddb26 cmp r4, r3                                                    |         
                                                                             |         if (r4 >= r3) {
    0x002ddb28 bge 0x2ddb54                                                  |             goto label_1;
                                                                             |         }
    0x002ddb2a ldr r3, [r5, 4]                                               |         r3 = *((r5 + 4));
    0x002ddb2c add r3, r6                                                    |         r3 += r6;
    0x002ddb2e mov.w r2, -1                                                  |         r2 = -1;
    0x002ddb32 mov r1, sl                                                    |         r1 = sl;
    0x002ddb34 mov r0, r7                                                    |         r0 = r7;
    0x002ddb36 str.w r8, [sp]                                                |         __asm ("str.w r8, [sp]");
    0x002ddb3a adds r4, 1                                                    |         r4++;
    0x002ddb3c adds r6, 0x34                                                 |         r6 += 0x34;
    0x002ddb3e blx 0x1c1dc4                                                  |         r0 = fcn_001c1dc4 ();
    0x002ddb42 cmp r0, 0                                                     |         
    0x002ddb44 beq 0x2ddb24                                                  |         
                                                                             |     }
                                                                             |     do {
                                                                             | label_0:
    0x002ddb46 add.w r7, r7, 0x16000                                         |         r7 += 0x16000;
    0x002ddb4a ldr.w r0, [r7, 0x184]                                         |         r0 = *((r7 + 0x184));
    0x002ddb4e add sp, 8                                                     |         
    0x002ddb50 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                        |         
                                                                             | label_1:
    0x002ddb54 ldr.w r8, [pc, 0x78]                                          |         
    0x002ddb58 add.w r3, r5, 8                                               |         r3 = r5 + 8;
    0x002ddb5c ldr r1, [pc, 0x74]                                            |         
    0x002ddb5e mov.w r2, -1                                                  |         r2 = -1;
    0x002ddb62 mov r0, r7                                                    |         r0 = r7;
    0x002ddb64 add r8, pc                                                    |         r8 = 0x5bb738;
    0x002ddb66 add r1, pc                                                    |         r1 = 0x5bb73e;
    0x002ddb68 str.w r8, [sp]                                                |         __asm ("str.w r8, [sp]");
    0x002ddb6c blx 0x1cb3a4                                                  |         r0 = fcn_001cb3a4 ();
    0x002ddb70 mov r4, r0                                                    |         r4 = r0;
    0x002ddb72 cmp r0, 0                                                     |         
    0x002ddb74 bne 0x2ddb46                                                  |         
                                                                             |     } while (r0 != 0);
    0x002ddb76 ldr r3, [r5, 0x10]                                            |     r3 = *((r5 + 0x10));
                                                                             |     if (r3 == 0) {
    0x002ddb78 cbz r3, 0x2ddbba                                              |         goto label_2;
                                                                             |     }
    0x002ddb7a ldr r2, [r5, 0xc]                                             |     r2 = *((r5 + 0xc));
    0x002ddb7c cmp r2, 0                                                     |     
                                                                             |     if (r2 <= 0) {
    0x002ddb7e ble 0x2ddbba                                                  |         goto label_2;
                                                                             |     }
    0x002ddb80 ldr.w sl, [pc, 0x54]                                          |     sl = *(0x002ddbd8);
    0x002ddb84 mov r6, r0                                                    |     r6 = r0;
    0x002ddb86 add sl, pc                                                    |     sl += pc;
    0x002ddb88 b 0x2ddb92                                                    |     
                                                                             |     while (r0 == 0) {
    0x002ddb8a ldr r3, [r5, 0xc]                                             |         r3 = *((r5 + 0xc));
    0x002ddb8c cmp r4, r3                                                    |         
                                                                             |         if (r4 >= r3) {
    0x002ddb8e bge 0x2ddbba                                                  |             goto label_2;
                                                                             |         }
    0x002ddb90 ldr r3, [r5, 0x10]                                            |         r3 = *((r5 + 0x10));
    0x002ddb92 add r3, r6                                                    |         r3 += r6;
    0x002ddb94 mov.w r2, -1                                                  |         r2 = -1;
    0x002ddb98 mov r1, sl                                                    |         r1 = sl;
    0x002ddb9a mov r0, r7                                                    |         r0 = r7;
    0x002ddb9c str.w r8, [sp]                                                |         __asm ("str.w r8, [sp]");
    0x002ddba0 adds r4, 1                                                    |         r4++;
    0x002ddba2 adds r6, 0x34                                                 |         r6 += 0x34;
    0x002ddba4 blx 0x1d801c                                                  |         r0 = fcn_001d801c ();
    0x002ddba8 cmp r0, 0                                                     |         
    0x002ddbaa beq 0x2ddb8a                                                  |         
                                                                             |     }
    0x002ddbac add.w r7, r7, 0x16000                                         |     r7 += 0x16000;
    0x002ddbb0 ldr.w r0, [r7, 0x184]                                         |     r0 = *((r7 + 0x184));
    0x002ddbb4 add sp, 8                                                     |     
    0x002ddbb6 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                        |     
                                                                             | label_2:
    0x002ddbba mov r1, sb                                                    |     r1 = sb;
    0x002ddbbc mov r0, r7                                                    |     r0 = r7;
    0x002ddbbe add sp, 8                                                     |     
    0x002ddbc0 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                        |     
    0x002ddbc4 b.w 0x1cd900                                                  |     return void (*0x1cd900)() ();
                                                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2ddc20 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_out_tt__VideoSourceConfigurationExtension ()        | void soap_out_tt_VideoSourceConfigurationExtension (int16_t arg_20h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                         |     int16_t var_0h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     r2 = arg3;
                                                                         |     r3 = arg4;
    0x002ddc20 push {r4, r5, r6, r7, lr}                                 |     
    0x002ddc22 sub sp, 0xc                                               |     
    0x002ddc24 ldr r7, [sp, 0x20]                                        |     r7 = *(arg_20h);
    0x002ddc26 mov r5, r3                                                |     r5 = r3;
    0x002ddc28 mov r4, r0                                                |     r4 = r0;
    0x002ddc2a mov r6, r1                                                |     r6 = r1;
    0x002ddc2c movw r3, 0x23f                                            |     r3 = 0x23f;
    0x002ddc30 mov r1, r2                                                |     r1 = r2;
    0x002ddc32 mov r2, r5                                                |     r2 = r5;
    0x002ddc34 blx 0x1e6828                                              |     fcn_001e6828 ();
    0x002ddc38 mov r3, r7                                                |     r3 = r7;
    0x002ddc3a mov r2, r0                                                |     r2 = r0;
    0x002ddc3c mov r1, r6                                                |     r1 = r6;
    0x002ddc3e mov r0, r4                                                |     r0 = r4;
    0x002ddc40 blx 0x1d9404                                              |     r0 = fcn_001d9404 ();
    0x002ddc44 cbz r0, 0x2ddc52                                          |     
                                                                         |     while (r0 != 0) {
                                                                         | label_0:
    0x002ddc46 add.w r4, r4, 0x16000                                     |         r4 += 0x16000;
    0x002ddc4a ldr.w r0, [r4, 0x184]                                     |         r0 = *((r4 + 0x184));
    0x002ddc4e add sp, 0xc                                               |         
    0x002ddc50 pop {r4, r5, r6, r7, pc}                                  |         
    0x002ddc52 ldr r7, [pc, 0x3c]                                        |         
    0x002ddc54 mov r3, r5                                                |         r3 = r5;
    0x002ddc56 ldr r1, [pc, 0x3c]                                        |         
    0x002ddc58 mov.w r2, -1                                              |         r2 = -1;
    0x002ddc5c mov r0, r4                                                |         r0 = r4;
    0x002ddc5e add r7, pc                                                |         r7 = 0x5bb8f4;
    0x002ddc60 add r1, pc                                                |         r1 = 0x5bb8fa;
    0x002ddc62 str r7, [sp]                                              |         *(sp) = r7;
    0x002ddc64 blx 0x1d62e8                                              |         r0 = fcn_001d62e8 ();
    0x002ddc68 cmp r0, 0                                                 |         
    0x002ddc6a bne 0x2ddc46                                              |         
                                                                         |     }
    0x002ddc6c ldr r1, [pc, 0x28]                                        |     
    0x002ddc6e adds r3, r5, 4                                            |     r3 = r5 + 4;
    0x002ddc70 mov.w r2, -1                                              |     r2 = -1;
    0x002ddc74 mov r0, r4                                                |     r0 = r4;
    0x002ddc76 str r7, [sp]                                              |     *(sp) = r7;
    0x002ddc78 add r1, pc                                                |     r1 = 0x5bb914;
    0x002ddc7a blx 0x1cece8                                              |     r0 = fcn_001cece8 ();
    0x002ddc7e cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002ddc80 bne 0x2ddc46                                              |         goto label_0;
                                                                         |     }
    0x002ddc82 mov r1, r6                                                |     r1 = r6;
    0x002ddc84 mov r0, r4                                                |     r0 = r4;
    0x002ddc86 add sp, 0xc                                               |     
    0x002ddc88 pop.w {r4, r5, r6, r7, lr}                                |     
    0x002ddc8c b.w 0x1cd900                                              |     return void (*0x1cd900)() ();
                                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2ddce0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_out_tt__VideoSourceConfiguration ()         | void soap_out_tt_VideoSourceConfiguration (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x002ddce0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x002ddce4 mov r7, r2                                        |     r7 = r2;
    0x002ddce6 ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x002ddce8 sub sp, 8                                         |     
    0x002ddcea mov r5, r3                                        |     r5 = r3;
    0x002ddcec mov r4, r0                                        |     r4 = r0;
    0x002ddcee ldr.w sb, [sp, 0x28]                              |     sb = *(arg_28h);
    0x002ddcf2 mov r6, r1                                        |     r6 = r1;
                                                                 |     if (r2 != 0) {
    0x002ddcf4 cbz r2, 0x2ddd00                                  |         
    0x002ddcf6 ldr r1, [pc, 0x180]                               |         
    0x002ddcf8 movs r3, 1                                        |         r3 = 1;
    0x002ddcfa add r1, pc                                        |         r1 = 0x5bbb78;
    0x002ddcfc blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x002ddd00 ldr r2, [r5, 0x20]                                |     r2 = *((r5 + 0x20));
                                                                 |     if (r2 != 0) {
    0x002ddd02 cbz r2, 0x2ddd10                                  |         
    0x002ddd04 ldr r1, [pc, 0x174]                               |         
    0x002ddd06 movs r3, 1                                        |         r3 = 1;
    0x002ddd08 mov r0, r4                                        |         r0 = r4;
    0x002ddd0a add r1, pc                                        |         r1 = 0x5bbb8a;
    0x002ddd0c blx 0x1dd7bc                                      |         fcn_001dd7bc ();
                                                                 |     }
    0x002ddd10 ldr.w r8, [pc, 0x16c]                             |     r8 = fcn.001f0abc;
    0x002ddd14 add.w r3, r5, 0x24                                |     r3 = r5 + 0x24;
    0x002ddd18 ldr r1, [pc, 0x168]                               |     
    0x002ddd1a mov.w r2, -1                                      |     r2 = -1;
    0x002ddd1e mov r0, r4                                        |     r0 = r4;
    0x002ddd20 add r8, pc                                        |     r8 += pc;
    0x002ddd22 add r1, pc                                        |     r1 = 0x5bbbaa;
    0x002ddd24 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002ddd28 blx 0x1dc3cc                                      |     r0 = fcn_001dc3cc ();
    0x002ddd2c cbz r0, 0x2ddd3c                                  |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x002ddd2e add.w r4, r4, 0x16000                             |         r4 += 0x16000;
    0x002ddd32 ldr.w r0, [r4, 0x184]                             |         r0 = *((r4 + 0x184));
    0x002ddd36 add sp, 8                                         |         
    0x002ddd38 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x002ddd3c mov r1, r7                                        |         r1 = r7;
    0x002ddd3e movw r3, 0x19d                                    |         r3 = 0x19d;
    0x002ddd42 mov r2, r5                                        |         r2 = r5;
    0x002ddd44 mov r0, r4                                        |         r0 = r4;
    0x002ddd46 blx 0x1e6828                                      |         fcn_001e6828 ();
    0x002ddd4a mov r3, sb                                        |         r3 = sb;
    0x002ddd4c mov r2, r0                                        |         r2 = r0;
    0x002ddd4e mov r1, r6                                        |         r1 = r6;
    0x002ddd50 mov r0, r4                                        |         r0 = r4;
    0x002ddd52 blx 0x1d9404                                      |         r0 = fcn_001d9404 ();
    0x002ddd56 cmp r0, 0                                         |         
    0x002ddd58 bne 0x2ddd2e                                      |         
                                                                 |     }
    0x002ddd5a ldr r3, [r5]                                      |     r3 = *(r5);
    0x002ddd5c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x002ddd5e beq 0x2dde46                                      |         goto label_5;
                                                                 |     }
    0x002ddd60 ldr r1, [pc, 0x124]                               |     
    0x002ddd62 mov r3, r5                                        |     r3 = r5;
    0x002ddd64 mov.w r2, -1                                      |     r2 = -1;
    0x002ddd68 mov r0, r4                                        |     r0 = r4;
    0x002ddd6a str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002ddd6e add r1, pc                                        |     r1 = 0x5bbbfa;
    0x002ddd70 blx 0x1c13a8                                      |     r0 = fcn_001c13a8 ();
    0x002ddd74 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002ddd76 bne 0x2ddd2e                                      |         goto label_0;
                                                                 |     }
                                                                 | label_2:
    0x002ddd78 ldr.w r8, [pc, 0x110]                             |     r8 = *(0x002dde8c);
    0x002ddd7c adds r3, r5, 4                                    |     r3 = r5 + 4;
    0x002ddd7e ldr r1, [pc, 0x110]                               |     
    0x002ddd80 mov.w r2, -1                                      |     r2 = -1;
    0x002ddd84 mov r0, r4                                        |     r0 = r4;
    0x002ddd86 add r8, pc                                        |     r8 += pc;
    0x002ddd88 add r1, pc                                        |     r1 = 0x5bbc1e;
    0x002ddd8a str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002ddd8e blx 0x1ede20                                      |     r0 = fcn_001ede20 ();
    0x002ddd92 mov r7, r0                                        |     r7 = r0;
    0x002ddd94 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002ddd96 bne 0x2ddd2e                                      |         goto label_0;
                                                                 |     }
    0x002ddd98 ldr r3, [r5, 0xc]                                 |     r3 = *((r5 + 0xc));
    0x002ddd9a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x002ddd9c beq 0x2dde56                                      |         goto label_6;
                                                                 |     }
    0x002ddd9e ldr r1, [pc, 0xf4]                                |     
    0x002ddda0 add.w r3, r5, 0xc                                 |     r3 = r5 + 0xc;
    0x002ddda4 mov.w r2, -1                                      |     r2 = -1;
    0x002ddda8 mov r0, r4                                        |     r0 = r4;
    0x002dddaa str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x002dddae add r1, pc                                        |     r1 = 0x5bbc48;
    0x002dddb0 blx 0x1bb5d4                                      |     r0 = fcn_001bb5d4 ();
    0x002dddb4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002dddb6 bne 0x2ddd2e                                      |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x002dddb8 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x002dddba cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x002dddbc beq 0x2dde66                                      |         goto label_7;
                                                                 |     }
    0x002dddbe ldr r3, [pc, 0xd8]                                |     
    0x002dddc0 mov.w r2, -1                                      |     r2 = -1;
    0x002dddc4 ldr r1, [pc, 0xd4]                                |     
    0x002dddc6 mov r0, r4                                        |     r0 = r4;
    0x002dddc8 add r3, pc                                        |     r3 = 0x5bbc66;
    0x002dddca str r3, [sp]                                      |     *(sp) = r3;
    0x002dddcc add r1, pc                                        |     r1 = 0x5bbc6c;
    0x002dddce add.w r3, r5, 0x10                                |     r3 = r5 + 0x10;
    0x002dddd2 blx 0x1e64e4                                      |     r0 = fcn_001e64e4 ();
    0x002dddd6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002dddd8 bne 0x2ddd2e                                      |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x002dddda ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 |     if (r3 == 0) {
    0x002ddddc cbz r3, 0x2dde1a                                  |         goto label_8;
                                                                 |     }
    0x002dddde ldr r2, [r5, 0x14]                                |     r2 = *((r5 + 0x14));
    0x002ddde0 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x002ddde2 ble 0x2dde1a                                      |         goto label_8;
                                                                 |     }
    0x002ddde4 ldr.w sl, [pc, 0xb8]                              |     
    0x002ddde8 mov.w r8, 0                                       |     r8 = 0;
    0x002dddec ldr.w sb, [pc, 0xb4]                              |     sb = *(0x002ddea4);
    0x002dddf0 add sl, pc                                        |     sl = 0x5bbc94;
    0x002dddf2 add sb, pc                                        |     sb += pc;
    0x002dddf4 b 0x2dddf8                                        |     goto label_9;
                                                                 | label_1:
    0x002dddf6 ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
                                                                 | label_9:
    0x002dddf8 add r3, r8                                        |     r3 += r8;
    0x002dddfa mov.w r2, -1                                      |     r2 = -1;
    0x002dddfe mov r1, sl                                        |     r1 = sl;
    0x002dde00 mov r0, r4                                        |     r0 = r4;
    0x002dde02 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x002dde06 adds r7, 1                                        |     r7++;
    0x002dde08 add.w r8, r8, 0x34                                |     r8 += 0x34;
    0x002dde0c blx 0x1d801c                                      |     r0 = fcn_001d801c ();
    0x002dde10 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002dde12 bne 0x2ddd2e                                      |         goto label_0;
                                                                 |     }
    0x002dde14 ldr r3, [r5, 0x14]                                |     r3 = *((r5 + 0x14));
    0x002dde16 cmp r3, r7                                        |     
                                                                 |     if (r3 > r7) {
    0x002dde18 bgt 0x2dddf6                                      |         goto label_1;
                                                                 |     }
                                                                 | label_8:
    0x002dde1a ldr r0, [pc, 0x8c]                                |     
    0x002dde1c add.w r3, r5, 0x1c                                |     r3 = r5 + 0x1c;
    0x002dde20 ldr r1, [pc, 0x88]                                |     
    0x002dde22 mov.w r2, -1                                      |     r2 = -1;
    0x002dde26 add r0, pc                                        |     r0 = 0x5bbcd4;
    0x002dde28 str r0, [sp]                                      |     *(sp) = r0;
    0x002dde2a add r1, pc                                        |     r1 = 0x5bbcda;
    0x002dde2c mov r0, r4                                        |     r0 = r4;
    0x002dde2e blx 0x1d7a1c                                      |     r0 = fcn_001d7a1c ();
    0x002dde32 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x002dde34 bne.w 0x2ddd2e                                    |         goto label_0;
                                                                 |     }
    0x002dde38 mov r1, r6                                        |     r1 = r6;
    0x002dde3a mov r0, r4                                        |     r0 = r4;
    0x002dde3c add sp, 8                                         |     
    0x002dde3e pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x002dde42 b.w 0x1cd900                                      |     void (*0x1cd900)() ();
                                                                 | label_5:
    0x002dde46 ldr r1, [pc, 0x68]                                |     
    0x002dde48 mov r0, r4                                        |     r0 = r4;
    0x002dde4a add r1, pc                                        |     r1 = 0x5bbd00;
    0x002dde4c blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x002dde50 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x002dde52 beq 0x2ddd78                                      |         goto label_2;
                                                                 |     }
    0x002dde54 b 0x2ddd2e                                        |     goto label_0;
                                                                 | label_6:
    0x002dde56 ldr r1, [pc, 0x5c]                                |     
    0x002dde58 mov r0, r4                                        |     r0 = r4;
    0x002dde5a add r1, pc                                        |     r1 = 0x5bbd14;
    0x002dde5c blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x002dde60 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x002dde62 beq 0x2dddb8                                      |         goto label_3;
                                                                 |     }
    0x002dde64 b 0x2ddd2e                                        |     goto label_0;
                                                                 | label_7:
    0x002dde66 ldr r1, [pc, 0x50]                                |     
    0x002dde68 mov r0, r4                                        |     r0 = r4;
    0x002dde6a add r1, pc                                        |     r1 = 0x5bbd28;
    0x002dde6c blx 0x1dfd3c                                      |     r0 = fcn_001dfd3c ();
    0x002dde70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x002dde72 beq 0x2dddda                                      |         goto label_4;
                                                                 |     }
    0x002dde74 b 0x2ddd2e                                        |     goto label_0;
                                                                 | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2e1890 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.soap_out_wsnt__TopicExpressionDialectUnknownFaultType ()         | void soap_out_wsnt_TopicExpressionDialectUnknownFaultType (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                                 |     int16_t var_0h;
                                                                                 |     r0 = arg1;
                                                                                 |     r1 = arg2;
                                                                                 |     r2 = arg3;
                                                                                 |     r3 = arg4;
    0x002e1890 push.w {r4, r5, r6, r7, r8, sb, sl, lr}                           |     
    0x002e1894 mov sb, r1                                                        |     sb = r1;
    0x002e1896 ldr.w r8, [pc, 0x134]                                             |     
    0x002e189a sub sp, 8                                                         |     
    0x002e189c mov r4, r3                                                        |     r4 = r3;
    0x002e189e mov r6, r2                                                        |     r6 = r2;
    0x002e18a0 ldr r1, [pc, 0x12c]                                               |     
    0x002e18a2 adds r3, 0x20                                                     |     r3 += 0x20;
    0x002e18a4 add r8, pc                                                        |     r8 = 0x5c3276;
    0x002e18a6 mov.w r2, -1                                                      |     r2 = -1;
    0x002e18aa str.w r8, [sp]                                                    |     __asm ("str.w r8, [sp]");
    0x002e18ae mov r5, r0                                                        |     r5 = r0;
    0x002e18b0 add r1, pc                                                        |     r1 = 0x5c3284;
    0x002e18b2 ldr r7, [sp, 0x28]                                                |     r7 = *(arg_28h);
    0x002e18b4 blx 0x1dc3cc                                                      |     r0 = fcn_001dc3cc ();
    0x002e18b8 cbz r0, 0x2e18c8                                                  |     
                                                                                 |     while (r0 != 0) {
                                                                                 | label_0:
    0x002e18ba add.w r5, r5, 0x16000                                             |         r5 += 0x16000;
    0x002e18be ldr.w r0, [r5, 0x184]                                             |         r0 = *((r5 + 0x184));
    0x002e18c2 add sp, 8                                                         |         
    0x002e18c4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                            |         
    0x002e18c8 mov r1, r6                                                        |         r1 = r6;
    0x002e18ca movw r3, 0xa92                                                    |         r3 = 0xa92;
    0x002e18ce mov r2, r4                                                        |         r2 = r4;
    0x002e18d0 mov r0, r5                                                        |         r0 = r5;
    0x002e18d2 blx 0x1e6828                                                      |         fcn_001e6828 ();
    0x002e18d6 mov r3, r7                                                        |         r3 = r7;
    0x002e18d8 mov r2, r0                                                        |         r2 = r0;
    0x002e18da mov r1, sb                                                        |         r1 = sb;
    0x002e18dc mov r0, r5                                                        |         r0 = r5;
    0x002e18de blx 0x1d9404                                                      |         r0 = fcn_001d9404 ();
    0x002e18e2 mov r6, r0                                                        |         r6 = r0;
    0x002e18e4 cmp r0, 0                                                         |         
    0x002e18e6 bne 0x2e18ba                                                      |         
                                                                                 |     }
    0x002e18e8 ldr r3, [r4, 4]                                                   |     r3 = *((r4 + 4));
                                                                                 |     if (r3 == 0) {
    0x002e18ea cbz r3, 0x2e191e                                                  |         goto label_3;
                                                                                 |     }
    0x002e18ec ldr r2, [r4]                                                      |     r2 = *(r4);
    0x002e18ee cmp r2, 0                                                         |     
                                                                                 |     if (r2 <= 0) {
    0x002e18f0 ble 0x2e191e                                                      |         goto label_3;
                                                                                 |     }
    0x002e18f2 ldr.w sl, [pc, 0xe0]                                              |     
    0x002e18f6 mov r7, r0                                                        |     r7 = r0;
    0x002e18f8 add sl, pc                                                        |     sl = 0x5c32d2;
    0x002e18fa b 0x2e18fe                                                        |     goto label_4;
                                                                                 | label_1:
    0x002e18fc ldr r3, [r4, 4]                                                   |     r3 = *((r4 + 4));
                                                                                 | label_4:
    0x002e18fe add r3, r7                                                        |     r3 += r7;
    0x002e1900 mov.w r2, -1                                                      |     r2 = -1;
    0x002e1904 mov r1, sl                                                        |     r1 = sl;
    0x002e1906 mov r0, r5                                                        |     r0 = r5;
    0x002e1908 str.w r8, [sp]                                                    |     __asm ("str.w r8, [sp]");
    0x002e190c adds r6, 1                                                        |     r6++;
    0x002e190e adds r7, 0x34                                                     |     r7 += 0x34;
    0x002e1910 blx 0x1d801c                                                      |     r0 = fcn_001d801c ();
    0x002e1914 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x002e1916 bne 0x2e18ba                                                      |         goto label_0;
                                                                                 |     }
    0x002e1918 ldr r3, [r4]                                                      |     r3 = *(r4);
    0x002e191a cmp r6, r3                                                        |     
                                                                                 |     if (r6 < r3) {
    0x002e191c blt 0x2e18fc                                                      |         goto label_1;
                                                                                 |     }
                                                                                 | label_3:
    0x002e191e ldr r7, [pc, 0xb8]                                                |     
    0x002e1920 add.w r3, r4, 8                                                   |     r3 = r4 + 8;
    0x002e1924 ldr r1, [pc, 0xb4]                                                |     
    0x002e1926 mov.w r2, -1                                                      |     r2 = -1;
    0x002e192a mov r0, r5                                                        |     r0 = r5;
    0x002e192c add r7, pc                                                        |     r7 = 0x5c330a;
    0x002e192e add r1, pc                                                        |     r1 = 0x5c330e;
    0x002e1930 str r7, [sp]                                                      |     *(sp) = r7;
    0x002e1932 blx 0x1be128                                                      |     r0 = fcn_001be128 ();
    0x002e1936 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x002e1938 bne 0x2e18ba                                                      |         goto label_0;
                                                                                 |     }
    0x002e193a ldr r1, [pc, 0xa4]                                                |     
    0x002e193c add.w r3, r4, 0xc                                                 |     r3 = r4 + 0xc;
    0x002e1940 mov.w r2, -1                                                      |     r2 = -1;
    0x002e1944 mov r0, r5                                                        |     r0 = r5;
    0x002e1946 str r7, [sp]                                                      |     *(sp) = r7;
    0x002e1948 add r1, pc                                                        |     r1 = 0x5c332e;
    0x002e194a blx 0x1cfdd0                                                      |     r0 = fcn_001cfdd0 ();
    0x002e194e cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x002e1950 bne 0x2e18ba                                                      |         goto label_0;
                                                                                 |     }
    0x002e1952 ldr r1, [pc, 0x90]                                                |     
    0x002e1954 add.w r3, r4, 0x10                                                |     r3 = r4 + 0x10;
    0x002e1958 mov.w r2, -1                                                      |     r2 = -1;
    0x002e195c mov r0, r5                                                        |     r0 = r5;
    0x002e195e str r7, [sp]                                                      |     *(sp) = r7;
    0x002e1960 add r1, pc                                                        |     r1 = 0x5c334a;
    0x002e1962 blx 0x1e27cc                                                      |     r0 = fcn_001e27cc ();
    0x002e1966 mov r6, r0                                                        |     r6 = r0;
    0x002e1968 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x002e196a bne 0x2e18ba                                                      |         goto label_0;
                                                                                 |     }
    0x002e196c ldr r3, [r4, 0x18]                                                |     r3 = *((r4 + 0x18));
                                                                                 |     if (r3 == 0) {
    0x002e196e cbz r3, 0x2e199e                                                  |         goto label_5;
                                                                                 |     }
    0x002e1970 ldr r2, [r4, 0x14]                                                |     r2 = *((r4 + 0x14));
    0x002e1972 cmp r2, 0                                                         |     
                                                                                 |     if (r2 <= 0) {
    0x002e1974 ble 0x2e199e                                                      |         goto label_5;
                                                                                 |     }
    0x002e1976 ldr.w r8, [pc, 0x70]                                              |     r8 = *(0x002e19e8);
    0x002e197a add r8, pc                                                        |     r8 += pc;
    0x002e197c b 0x2e1980                                                        |     goto label_6;
                                                                                 | label_2:
    0x002e197e ldr r3, [r4, 0x18]                                                |     r3 = *((r4 + 0x18));
                                                                                 | label_6:
    0x002e1980 add.w r3, r3, r6, lsl 3                                           |     r3 += (r6 << 3);
    0x002e1984 mov.w r2, -1                                                      |     r2 = -1;
    0x002e1988 mov r1, r8                                                        |     r1 = r8;
    0x002e198a str r7, [sp]                                                      |     *(sp) = r7;
    0x002e198c mov r0, r5                                                        |     r0 = r5;
    0x002e198e adds r6, 1                                                        |     r6++;
    0x002e1990 blx 0x1df8f0                                                      |     r0 = fcn_001df8f0 ();
    0x002e1994 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x002e1996 bne 0x2e18ba                                                      |         goto label_0;
                                                                                 |     }
    0x002e1998 ldr r3, [r4, 0x14]                                                |     r3 = *((r4 + 0x14));
    0x002e199a cmp r6, r3                                                        |     
                                                                                 |     if (r6 < r3) {
    0x002e199c blt 0x2e197e                                                      |         goto label_2;
                                                                                 |     }
                                                                                 | label_5:
    0x002e199e ldr r0, [pc, 0x4c]                                                |     
    0x002e19a0 add.w r3, r4, 0x1c                                                |     r3 = r4 + 0x1c;
    0x002e19a4 ldr r1, [pc, 0x48]                                                |     
    0x002e19a6 mov.w r2, -1                                                      |     r2 = -1;
    0x002e19aa add r0, pc                                                        |     r0 = 0x5c339c;
    0x002e19ac str r0, [sp]                                                      |     *(sp) = r0;
    0x002e19ae add r1, pc                                                        |     r1 = 0x5c33a2;
    0x002e19b0 mov r0, r5                                                        |     r0 = r5;
    0x002e19b2 blx 0x1e8cd8                                                      |     r0 = fcn_001e8cd8 ();
    0x002e19b6 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x002e19b8 bne.w 0x2e18ba                                                    |         goto label_0;
                                                                                 |     }
    0x002e19bc mov r1, sb                                                        |     r1 = sb;
    0x002e19be mov r0, r5                                                        |     r0 = r5;
    0x002e19c0 add sp, 8                                                         |     
    0x002e19c2 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                            |     
    0x002e19c6 b.w 0x1cd900                                                      |     return void (*0x1cd900)() ();
                                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2e1540 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_out_wsnt__TopicNotSupportedFaultType ()         | void soap_out_wsnt_TopicNotSupportedFaultType (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x002e1540 push.w {r4, r5, r6, r7, r8, sb, sl, lr}               |     
    0x002e1544 mov sb, r1                                            |     sb = r1;
    0x002e1546 ldr.w r8, [pc, 0x134]                                 |     r8 = fcn.001ed288;
    0x002e154a sub sp, 8                                             |     
    0x002e154c mov r4, r3                                            |     r4 = r3;
    0x002e154e mov r6, r2                                            |     r6 = r2;
    0x002e1550 ldr r1, [pc, 0x12c]                                   |     
    0x002e1552 adds r3, 0x20                                         |     r3 += 0x20;
    0x002e1554 add r8, pc                                            |     r8 += pc;
    0x002e1556 mov.w r2, -1                                          |     r2 = -1;
    0x002e155a str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002e155e mov r5, r0                                            |     r5 = r0;
    0x002e1560 add r1, pc                                            |     r1 = 0x5c2be4;
    0x002e1562 ldr r7, [sp, 0x28]                                    |     r7 = *(arg_28h);
    0x002e1564 blx 0x1dc3cc                                          |     r0 = fcn_001dc3cc ();
    0x002e1568 cbz r0, 0x2e1578                                      |     
                                                                     |     while (r0 != 0) {
                                                                     | label_0:
    0x002e156a add.w r5, r5, 0x16000                                 |         r5 += 0x16000;
    0x002e156e ldr.w r0, [r5, 0x184]                                 |         r0 = *((r5 + 0x184));
    0x002e1572 add sp, 8                                             |         
    0x002e1574 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                |         
    0x002e1578 mov r1, r6                                            |         r1 = r6;
    0x002e157a mov.w r3, 0xaa0                                       |         r3 = 0xaa0;
    0x002e157e mov r2, r4                                            |         r2 = r4;
    0x002e1580 mov r0, r5                                            |         r0 = r5;
    0x002e1582 blx 0x1e6828                                          |         fcn_001e6828 ();
    0x002e1586 mov r3, r7                                            |         r3 = r7;
    0x002e1588 mov r2, r0                                            |         r2 = r0;
    0x002e158a mov r1, sb                                            |         r1 = sb;
    0x002e158c mov r0, r5                                            |         r0 = r5;
    0x002e158e blx 0x1d9404                                          |         r0 = fcn_001d9404 ();
    0x002e1592 mov r6, r0                                            |         r6 = r0;
    0x002e1594 cmp r0, 0                                             |         
    0x002e1596 bne 0x2e156a                                          |         
                                                                     |     }
    0x002e1598 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
                                                                     |     if (r3 == 0) {
    0x002e159a cbz r3, 0x2e15ce                                      |         goto label_3;
                                                                     |     }
    0x002e159c ldr r2, [r4]                                          |     r2 = *(r4);
    0x002e159e cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002e15a0 ble 0x2e15ce                                          |         goto label_3;
                                                                     |     }
    0x002e15a2 ldr.w sl, [pc, 0xe0]                                  |     sl = loc.imp.X509_STORE_CTX_init;
    0x002e15a6 mov r7, r0                                            |     r7 = r0;
    0x002e15a8 add sl, pc                                            |     sl += pc;
    0x002e15aa b 0x2e15ae                                            |     goto label_4;
                                                                     | label_1:
    0x002e15ac ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
                                                                     | label_4:
    0x002e15ae add r3, r7                                            |     r3 += r7;
    0x002e15b0 mov.w r2, -1                                          |     r2 = -1;
    0x002e15b4 mov r1, sl                                            |     r1 = sl;
    0x002e15b6 mov r0, r5                                            |     r0 = r5;
    0x002e15b8 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x002e15bc adds r6, 1                                            |     r6++;
    0x002e15be adds r7, 0x34                                         |     r7 += 0x34;
    0x002e15c0 blx 0x1d801c                                          |     r0 = fcn_001d801c ();
    0x002e15c4 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002e15c6 bne 0x2e156a                                          |         goto label_0;
                                                                     |     }
    0x002e15c8 ldr r3, [r4]                                          |     r3 = *(r4);
    0x002e15ca cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x002e15cc blt 0x2e15ac                                          |         goto label_1;
                                                                     |     }
                                                                     | label_3:
    0x002e15ce ldr r7, [pc, 0xb8]                                    |     
    0x002e15d0 add.w r3, r4, 8                                       |     r3 = r4 + 8;
    0x002e15d4 ldr r1, [pc, 0xb4]                                    |     
    0x002e15d6 mov.w r2, -1                                          |     r2 = -1;
    0x002e15da mov r0, r5                                            |     r0 = r5;
    0x002e15dc add r7, pc                                            |     r7 = 0x5c2c6a;
    0x002e15de add r1, pc                                            |     r1 = 0x5c2c6e;
    0x002e15e0 str r7, [sp]                                          |     *(sp) = r7;
    0x002e15e2 blx 0x1be128                                          |     r0 = fcn_001be128 ();
    0x002e15e6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002e15e8 bne 0x2e156a                                          |         goto label_0;
                                                                     |     }
    0x002e15ea ldr r1, [pc, 0xa4]                                    |     
    0x002e15ec add.w r3, r4, 0xc                                     |     r3 = r4 + 0xc;
    0x002e15f0 mov.w r2, -1                                          |     r2 = -1;
    0x002e15f4 mov r0, r5                                            |     r0 = r5;
    0x002e15f6 str r7, [sp]                                          |     *(sp) = r7;
    0x002e15f8 add r1, pc                                            |     r1 = 0x5c2c8e;
    0x002e15fa blx 0x1cfdd0                                          |     r0 = fcn_001cfdd0 ();
    0x002e15fe cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002e1600 bne 0x2e156a                                          |         goto label_0;
                                                                     |     }
    0x002e1602 ldr r1, [pc, 0x90]                                    |     
    0x002e1604 add.w r3, r4, 0x10                                    |     r3 = r4 + 0x10;
    0x002e1608 mov.w r2, -1                                          |     r2 = -1;
    0x002e160c mov r0, r5                                            |     r0 = r5;
    0x002e160e str r7, [sp]                                          |     *(sp) = r7;
    0x002e1610 add r1, pc                                            |     r1 = 0x5c2caa;
    0x002e1612 blx 0x1c966c                                          |     r0 = fcn_001c966c ();
    0x002e1616 mov r6, r0                                            |     r6 = r0;
    0x002e1618 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002e161a bne 0x2e156a                                          |         goto label_0;
                                                                     |     }
    0x002e161c ldr r3, [r4, 0x18]                                    |     r3 = *((r4 + 0x18));
                                                                     |     if (r3 == 0) {
    0x002e161e cbz r3, 0x2e164e                                      |         goto label_5;
                                                                     |     }
    0x002e1620 ldr r2, [r4, 0x14]                                    |     r2 = *((r4 + 0x14));
    0x002e1622 cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x002e1624 ble 0x2e164e                                          |         goto label_5;
                                                                     |     }
    0x002e1626 ldr.w r8, [pc, 0x70]                                  |     r8 = *(0x002e1698);
    0x002e162a add r8, pc                                            |     r8 += pc;
    0x002e162c b 0x2e1630                                            |     goto label_6;
                                                                     | label_2:
    0x002e162e ldr r3, [r4, 0x18]                                    |     r3 = *((r4 + 0x18));
                                                                     | label_6:
    0x002e1630 add.w r3, r3, r6, lsl 3                               |     r3 += (r6 << 3);
    0x002e1634 mov.w r2, -1                                          |     r2 = -1;
    0x002e1638 mov r1, r8                                            |     r1 = r8;
    0x002e163a str r7, [sp]                                          |     *(sp) = r7;
    0x002e163c mov r0, r5                                            |     r0 = r5;
    0x002e163e adds r6, 1                                            |     r6++;
    0x002e1640 blx 0x1ec808                                          |     r0 = fcn_001ec808 ();
    0x002e1644 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002e1646 bne 0x2e156a                                          |         goto label_0;
                                                                     |     }
    0x002e1648 ldr r3, [r4, 0x14]                                    |     r3 = *((r4 + 0x14));
    0x002e164a cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x002e164c blt 0x2e162e                                          |         goto label_2;
                                                                     |     }
                                                                     | label_5:
    0x002e164e ldr r0, [pc, 0x4c]                                    |     
    0x002e1650 add.w r3, r4, 0x1c                                    |     r3 = r4 + 0x1c;
    0x002e1654 ldr r1, [pc, 0x48]                                    |     
    0x002e1656 mov.w r2, -1                                          |     r2 = -1;
    0x002e165a add r0, pc                                            |     r0 = 0x5c2cfc;
    0x002e165c str r0, [sp]                                          |     *(sp) = r0;
    0x002e165e add r1, pc                                            |     r1 = 0x5c2d02;
    0x002e1660 mov r0, r5                                            |     r0 = r5;
    0x002e1662 blx 0x1cdc24                                          |     r0 = fcn_001cdc24 ();
    0x002e1666 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x002e1668 bne.w 0x2e156a                                        |         goto label_0;
                                                                     |     }
    0x002e166c mov r1, sb                                            |     r1 = sb;
    0x002e166e mov r0, r5                                            |     r0 = r5;
    0x002e1670 add sp, 8                                             |     
    0x002e1672 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                |     
    0x002e1676 b.w 0x1cd900                                          |     return void (*0x1cd900)() ();
                                                                     | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2e03cc */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_out_wsnt__UnableToDestroyPullPointFaultType ()      | void soap_out_wsnt_UnableToDestroyPullPointFaultType (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                         |     int16_t var_0h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     r2 = arg3;
                                                                         |     r3 = arg4;
    0x002e03cc push.w {r4, r5, r6, r7, r8, sb, sl, lr}                   |     
    0x002e03d0 mov sb, r1                                                |     sb = r1;
    0x002e03d2 ldr.w r8, [pc, 0x134]                                     |     r8 = fcn.001ee3fc;
    0x002e03d6 sub sp, 8                                                 |     
    0x002e03d8 mov r4, r3                                                |     r4 = r3;
    0x002e03da mov r6, r2                                                |     r6 = r2;
    0x002e03dc ldr r1, [pc, 0x12c]                                       |     
    0x002e03de adds r3, 0x20                                             |     r3 += 0x20;
    0x002e03e0 add r8, pc                                                |     r8 += pc;
    0x002e03e2 mov.w r2, -1                                              |     r2 = -1;
    0x002e03e6 str.w r8, [sp]                                            |     __asm ("str.w r8, [sp]");
    0x002e03ea mov r5, r0                                                |     r5 = r0;
    0x002e03ec add r1, pc                                                |     r1 = 0x5c08fc;
    0x002e03ee ldr r7, [sp, 0x28]                                        |     r7 = *(arg_28h);
    0x002e03f0 blx 0x1dc3cc                                              |     r0 = fcn_001dc3cc ();
    0x002e03f4 cbz r0, 0x2e0404                                          |     
                                                                         |     while (r0 != 0) {
                                                                         | label_0:
    0x002e03f6 add.w r5, r5, 0x16000                                     |         r5 += 0x16000;
    0x002e03fa ldr.w r0, [r5, 0x184]                                     |         r0 = *((r5 + 0x184));
    0x002e03fe add sp, 8                                                 |         
    0x002e0400 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                    |         
    0x002e0404 mov r1, r6                                                |         r1 = r6;
    0x002e0406 movw r3, 0xae6                                            |         r3 = 0xae6;
    0x002e040a mov r2, r4                                                |         r2 = r4;
    0x002e040c mov r0, r5                                                |         r0 = r5;
    0x002e040e blx 0x1e6828                                              |         fcn_001e6828 ();
    0x002e0412 mov r3, r7                                                |         r3 = r7;
    0x002e0414 mov r2, r0                                                |         r2 = r0;
    0x002e0416 mov r1, sb                                                |         r1 = sb;
    0x002e0418 mov r0, r5                                                |         r0 = r5;
    0x002e041a blx 0x1d9404                                              |         r0 = fcn_001d9404 ();
    0x002e041e mov r6, r0                                                |         r6 = r0;
    0x002e0420 cmp r0, 0                                                 |         
    0x002e0422 bne 0x2e03f6                                              |         
                                                                         |     }
    0x002e0424 ldr r3, [r4, 4]                                           |     r3 = *((r4 + 4));
                                                                         |     if (r3 == 0) {
    0x002e0426 cbz r3, 0x2e045a                                          |         goto label_3;
                                                                         |     }
    0x002e0428 ldr r2, [r4]                                              |     r2 = *(r4);
    0x002e042a cmp r2, 0                                                 |     
                                                                         |     if (r2 <= 0) {
    0x002e042c ble 0x2e045a                                              |         goto label_3;
                                                                         |     }
    0x002e042e ldr.w sl, [pc, 0xe0]                                      |     sl = fcn.001df7cc;
    0x002e0432 mov r7, r0                                                |     r7 = r0;
    0x002e0434 add sl, pc                                                |     sl += pc;
    0x002e0436 b 0x2e043a                                                |     goto label_4;
                                                                         | label_1:
    0x002e0438 ldr r3, [r4, 4]                                           |     r3 = *((r4 + 4));
                                                                         | label_4:
    0x002e043a add r3, r7                                                |     r3 += r7;
    0x002e043c mov.w r2, -1                                              |     r2 = -1;
    0x002e0440 mov r1, sl                                                |     r1 = sl;
    0x002e0442 mov r0, r5                                                |     r0 = r5;
    0x002e0444 str.w r8, [sp]                                            |     __asm ("str.w r8, [sp]");
    0x002e0448 adds r6, 1                                                |     r6++;
    0x002e044a adds r7, 0x34                                             |     r7 += 0x34;
    0x002e044c blx 0x1d801c                                              |     r0 = fcn_001d801c ();
    0x002e0450 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002e0452 bne 0x2e03f6                                              |         goto label_0;
                                                                         |     }
    0x002e0454 ldr r3, [r4]                                              |     r3 = *(r4);
    0x002e0456 cmp r6, r3                                                |     
                                                                         |     if (r6 < r3) {
    0x002e0458 blt 0x2e0438                                              |         goto label_1;
                                                                         |     }
                                                                         | label_3:
    0x002e045a ldr r7, [pc, 0xb8]                                        |     
    0x002e045c add.w r3, r4, 8                                           |     r3 = r4 + 8;
    0x002e0460 ldr r1, [pc, 0xb4]                                        |     
    0x002e0462 mov.w r2, -1                                              |     r2 = -1;
    0x002e0466 mov r0, r5                                                |     r0 = r5;
    0x002e0468 add r7, pc                                                |     r7 = 0x5c0982;
    0x002e046a add r1, pc                                                |     r1 = 0x5c0986;
    0x002e046c str r7, [sp]                                              |     *(sp) = r7;
    0x002e046e blx 0x1be128                                              |     r0 = fcn_001be128 ();
    0x002e0472 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002e0474 bne 0x2e03f6                                              |         goto label_0;
                                                                         |     }
    0x002e0476 ldr r1, [pc, 0xa4]                                        |     
    0x002e0478 add.w r3, r4, 0xc                                         |     r3 = r4 + 0xc;
    0x002e047c mov.w r2, -1                                              |     r2 = -1;
    0x002e0480 mov r0, r5                                                |     r0 = r5;
    0x002e0482 str r7, [sp]                                              |     *(sp) = r7;
    0x002e0484 add r1, pc                                                |     r1 = 0x5c09a6;
    0x002e0486 blx 0x1cfdd0                                              |     r0 = fcn_001cfdd0 ();
    0x002e048a cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002e048c bne 0x2e03f6                                              |         goto label_0;
                                                                         |     }
    0x002e048e ldr r1, [pc, 0x90]                                        |     
    0x002e0490 add.w r3, r4, 0x10                                        |     r3 = r4 + 0x10;
    0x002e0494 mov.w r2, -1                                              |     r2 = -1;
    0x002e0498 mov r0, r5                                                |     r0 = r5;
    0x002e049a str r7, [sp]                                              |     *(sp) = r7;
    0x002e049c add r1, pc                                                |     r1 = 0x5c09c2;
    0x002e049e blx 0x1f0854                                              |     r0 = fcn_001f0854 ();
    0x002e04a2 mov r6, r0                                                |     r6 = r0;
    0x002e04a4 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002e04a6 bne 0x2e03f6                                              |         goto label_0;
                                                                         |     }
    0x002e04a8 ldr r3, [r4, 0x18]                                        |     r3 = *((r4 + 0x18));
                                                                         |     if (r3 == 0) {
    0x002e04aa cbz r3, 0x2e04da                                          |         goto label_5;
                                                                         |     }
    0x002e04ac ldr r2, [r4, 0x14]                                        |     r2 = *((r4 + 0x14));
    0x002e04ae cmp r2, 0                                                 |     
                                                                         |     if (r2 <= 0) {
    0x002e04b0 ble 0x2e04da                                              |         goto label_5;
                                                                         |     }
    0x002e04b2 ldr.w r8, [pc, 0x70]                                      |     r8 = *(0x002e0524);
    0x002e04b6 add r8, pc                                                |     r8 += pc;
    0x002e04b8 b 0x2e04bc                                                |     goto label_6;
                                                                         | label_2:
    0x002e04ba ldr r3, [r4, 0x18]                                        |     r3 = *((r4 + 0x18));
                                                                         | label_6:
    0x002e04bc add.w r3, r3, r6, lsl 3                                   |     r3 += (r6 << 3);
    0x002e04c0 mov.w r2, -1                                              |     r2 = -1;
    0x002e04c4 mov r1, r8                                                |     r1 = r8;
    0x002e04c6 str r7, [sp]                                              |     *(sp) = r7;
    0x002e04c8 mov r0, r5                                                |     r0 = r5;
    0x002e04ca adds r6, 1                                                |     r6++;
    0x002e04cc blx 0x1e6484                                              |     r0 = fcn_001e6484 ();
    0x002e04d0 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002e04d2 bne 0x2e03f6                                              |         goto label_0;
                                                                         |     }
    0x002e04d4 ldr r3, [r4, 0x14]                                        |     r3 = *((r4 + 0x14));
    0x002e04d6 cmp r6, r3                                                |     
                                                                         |     if (r6 < r3) {
    0x002e04d8 blt 0x2e04ba                                              |         goto label_2;
                                                                         |     }
                                                                         | label_5:
    0x002e04da ldr r0, [pc, 0x4c]                                        |     
    0x002e04dc add.w r3, r4, 0x1c                                        |     r3 = r4 + 0x1c;
    0x002e04e0 ldr r1, [pc, 0x48]                                        |     
    0x002e04e2 mov.w r2, -1                                              |     r2 = -1;
    0x002e04e6 add r0, pc                                                |     r0 = 0x5c0a14;
    0x002e04e8 str r0, [sp]                                              |     *(sp) = r0;
    0x002e04ea add r1, pc                                                |     r1 = 0x5c0a1a;
    0x002e04ec mov r0, r5                                                |     r0 = r5;
    0x002e04ee blx 0x1c9e54                                              |     r0 = fcn_001c9e54 ();
    0x002e04f2 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x002e04f4 bne.w 0x2e03f6                                            |         goto label_0;
                                                                         |     }
    0x002e04f8 mov r1, sb                                                |     r1 = sb;
    0x002e04fa mov r0, r5                                                |     r0 = r5;
    0x002e04fc add sp, 8                                                 |     
    0x002e04fe pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                    |     
    0x002e0502 b.w 0x1cd900                                              |     return void (*0x1cd900)() ();
                                                                         | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2dfedc */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.soap_out_wsnt__UnableToDestroySubscriptionFaultType ()       | void soap_out_wsnt_UnableToDestroySubscriptionFaultType (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                             |     int16_t var_0h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
                                                                             |     r2 = arg3;
                                                                             |     r3 = arg4;
    0x002dfedc push.w {r4, r5, r6, r7, r8, sb, sl, lr}                       |     
    0x002dfee0 mov sb, r1                                                    |     sb = r1;
    0x002dfee2 ldr.w r8, [pc, 0x134]                                         |     
    0x002dfee6 sub sp, 8                                                     |     
    0x002dfee8 mov r4, r3                                                    |     r4 = r3;
    0x002dfeea mov r6, r2                                                    |     r6 = r2;
    0x002dfeec ldr r1, [pc, 0x12c]                                           |     
    0x002dfeee adds r3, 0x20                                                 |     r3 += 0x20;
    0x002dfef0 add r8, pc                                                    |     r8 = 0x5bff0e;
    0x002dfef2 mov.w r2, -1                                                  |     r2 = -1;
    0x002dfef6 str.w r8, [sp]                                                |     __asm ("str.w r8, [sp]");
    0x002dfefa mov r5, r0                                                    |     r5 = r0;
    0x002dfefc add r1, pc                                                    |     r1 = 0x5bff1c;
    0x002dfefe ldr r7, [sp, 0x28]                                            |     r7 = *(arg_28h);
    0x002dff00 blx 0x1dc3cc                                                  |     r0 = fcn_001dc3cc ();
    0x002dff04 cbz r0, 0x2dff14                                              |     
                                                                             |     while (r0 != 0) {
                                                                             | label_0:
    0x002dff06 add.w r5, r5, 0x16000                                         |         r5 += 0x16000;
    0x002dff0a ldr.w r0, [r5, 0x184]                                         |         r0 = *((r5 + 0x184));
    0x002dff0e add sp, 8                                                     |         
    0x002dff10 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                        |         
    0x002dff14 mov r1, r6                                                    |         r1 = r6;
    0x002dff16 movw r3, 0xafb                                                |         r3 = 0xafb;
    0x002dff1a mov r2, r4                                                    |         r2 = r4;
    0x002dff1c mov r0, r5                                                    |         r0 = r5;
    0x002dff1e blx 0x1e6828                                                  |         fcn_001e6828 ();
    0x002dff22 mov r3, r7                                                    |         r3 = r7;
    0x002dff24 mov r2, r0                                                    |         r2 = r0;
    0x002dff26 mov r1, sb                                                    |         r1 = sb;
    0x002dff28 mov r0, r5                                                    |         r0 = r5;
    0x002dff2a blx 0x1d9404                                                  |         r0 = fcn_001d9404 ();
    0x002dff2e mov r6, r0                                                    |         r6 = r0;
    0x002dff30 cmp r0, 0                                                     |         
    0x002dff32 bne 0x2dff06                                                  |         
                                                                             |     }
    0x002dff34 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
                                                                             |     if (r3 == 0) {
    0x002dff36 cbz r3, 0x2dff6a                                              |         goto label_3;
                                                                             |     }
    0x002dff38 ldr r2, [r4]                                                  |     r2 = *(r4);
    0x002dff3a cmp r2, 0                                                     |     
                                                                             |     if (r2 <= 0) {
    0x002dff3c ble 0x2dff6a                                                  |         goto label_3;
                                                                             |     }
    0x002dff3e ldr.w sl, [pc, 0xe0]                                          |     sl = fcn.001dfcbc;
    0x002dff42 mov r7, r0                                                    |     r7 = r0;
    0x002dff44 add sl, pc                                                    |     sl += pc;
    0x002dff46 b 0x2dff4a                                                    |     goto label_4;
                                                                             | label_1:
    0x002dff48 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
                                                                             | label_4:
    0x002dff4a add r3, r7                                                    |     r3 += r7;
    0x002dff4c mov.w r2, -1                                                  |     r2 = -1;
    0x002dff50 mov r1, sl                                                    |     r1 = sl;
    0x002dff52 mov r0, r5                                                    |     r0 = r5;
    0x002dff54 str.w r8, [sp]                                                |     __asm ("str.w r8, [sp]");
    0x002dff58 adds r6, 1                                                    |     r6++;
    0x002dff5a adds r7, 0x34                                                 |     r7 += 0x34;
    0x002dff5c blx 0x1d801c                                                  |     r0 = fcn_001d801c ();
    0x002dff60 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002dff62 bne 0x2dff06                                                  |         goto label_0;
                                                                             |     }
    0x002dff64 ldr r3, [r4]                                                  |     r3 = *(r4);
    0x002dff66 cmp r6, r3                                                    |     
                                                                             |     if (r6 < r3) {
    0x002dff68 blt 0x2dff48                                                  |         goto label_1;
                                                                             |     }
                                                                             | label_3:
    0x002dff6a ldr r7, [pc, 0xb8]                                            |     
    0x002dff6c add.w r3, r4, 8                                               |     r3 = r4 + 8;
    0x002dff70 ldr r1, [pc, 0xb4]                                            |     
    0x002dff72 mov.w r2, -1                                                  |     r2 = -1;
    0x002dff76 mov r0, r5                                                    |     r0 = r5;
    0x002dff78 add r7, pc                                                    |     r7 = 0x5bffa2;
    0x002dff7a add r1, pc                                                    |     r1 = 0x5bffa6;
    0x002dff7c str r7, [sp]                                                  |     *(sp) = r7;
    0x002dff7e blx 0x1be128                                                  |     r0 = fcn_001be128 ();
    0x002dff82 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002dff84 bne 0x2dff06                                                  |         goto label_0;
                                                                             |     }
    0x002dff86 ldr r1, [pc, 0xa4]                                            |     
    0x002dff88 add.w r3, r4, 0xc                                             |     r3 = r4 + 0xc;
    0x002dff8c mov.w r2, -1                                                  |     r2 = -1;
    0x002dff90 mov r0, r5                                                    |     r0 = r5;
    0x002dff92 str r7, [sp]                                                  |     *(sp) = r7;
    0x002dff94 add r1, pc                                                    |     r1 = 0x5bffc6;
    0x002dff96 blx 0x1cfdd0                                                  |     r0 = fcn_001cfdd0 ();
    0x002dff9a cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002dff9c bne 0x2dff06                                                  |         goto label_0;
                                                                             |     }
    0x002dff9e ldr r1, [pc, 0x90]                                            |     
    0x002dffa0 add.w r3, r4, 0x10                                            |     r3 = r4 + 0x10;
    0x002dffa4 mov.w r2, -1                                                  |     r2 = -1;
    0x002dffa8 mov r0, r5                                                    |     r0 = r5;
    0x002dffaa str r7, [sp]                                                  |     *(sp) = r7;
    0x002dffac add r1, pc                                                    |     r1 = 0x5bffe2;
    0x002dffae blx 0x1cc7b8                                                  |     r0 = fcn_001cc7b8 ();
    0x002dffb2 mov r6, r0                                                    |     r6 = r0;
    0x002dffb4 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002dffb6 bne 0x2dff06                                                  |         goto label_0;
                                                                             |     }
    0x002dffb8 ldr r3, [r4, 0x18]                                            |     r3 = *((r4 + 0x18));
                                                                             |     if (r3 == 0) {
    0x002dffba cbz r3, 0x2dffea                                              |         goto label_5;
                                                                             |     }
    0x002dffbc ldr r2, [r4, 0x14]                                            |     r2 = *((r4 + 0x14));
    0x002dffbe cmp r2, 0                                                     |     
                                                                             |     if (r2 <= 0) {
    0x002dffc0 ble 0x2dffea                                                  |         goto label_5;
                                                                             |     }
    0x002dffc2 ldr.w r8, [pc, 0x70]                                          |     r8 = *(0x002e0034);
    0x002dffc6 add r8, pc                                                    |     r8 += pc;
    0x002dffc8 b 0x2dffcc                                                    |     goto label_6;
                                                                             | label_2:
    0x002dffca ldr r3, [r4, 0x18]                                            |     r3 = *((r4 + 0x18));
                                                                             | label_6:
    0x002dffcc add.w r3, r3, r6, lsl 3                                       |     r3 += (r6 << 3);
    0x002dffd0 mov.w r2, -1                                                  |     r2 = -1;
    0x002dffd4 mov r1, r8                                                    |     r1 = r8;
    0x002dffd6 str r7, [sp]                                                  |     *(sp) = r7;
    0x002dffd8 mov r0, r5                                                    |     r0 = r5;
    0x002dffda adds r6, 1                                                    |     r6++;
    0x002dffdc blx 0x1ca71c                                                  |     r0 = fcn_001ca71c ();
    0x002dffe0 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002dffe2 bne 0x2dff06                                                  |         goto label_0;
                                                                             |     }
    0x002dffe4 ldr r3, [r4, 0x14]                                            |     r3 = *((r4 + 0x14));
    0x002dffe6 cmp r6, r3                                                    |     
                                                                             |     if (r6 < r3) {
    0x002dffe8 blt 0x2dffca                                                  |         goto label_2;
                                                                             |     }
                                                                             | label_5:
    0x002dffea ldr r0, [pc, 0x4c]                                            |     
    0x002dffec add.w r3, r4, 0x1c                                            |     r3 = r4 + 0x1c;
    0x002dfff0 ldr r1, [pc, 0x48]                                            |     
    0x002dfff2 mov.w r2, -1                                                  |     r2 = -1;
    0x002dfff6 add r0, pc                                                    |     r0 = 0x5c0034;
    0x002dfff8 str r0, [sp]                                                  |     *(sp) = r0;
    0x002dfffa add r1, pc                                                    |     r1 = 0x5c003a;
    0x002dfffc mov r0, r5                                                    |     r0 = r5;
    0x002dfffe blx 0x1ea4c4                                                  |     r0 = fcn_001ea4c4 ();
    0x002e0002 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e0004 bne.w 0x2dff06                                                |         goto label_0;
                                                                             |     }
    0x002e0008 mov r1, sb                                                    |     r1 = sb;
    0x002e000a mov r0, r5                                                    |     r0 = r5;
    0x002e000c add sp, 8                                                     |     
    0x002e000e pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                        |     
    0x002e0012 b.w 0x1cd900                                                  |     return void (*0x1cd900)() ();
                                                                             | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2e0084 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.soap_out_wsnt__UnacceptableTerminationTimeFaultType ()       | void soap_out_wsnt_UnacceptableTerminationTimeFaultType (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                             |     int16_t var_0h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
                                                                             |     r2 = arg3;
                                                                             |     r3 = arg4;
    0x002e0084 push.w {r4, r5, r6, r7, r8, sb, sl, lr}                       |     
    0x002e0088 mov sb, r1                                                    |     sb = r1;
    0x002e008a ldr.w r8, [pc, 0x168]                                         |     
    0x002e008e sub sp, 8                                                     |     
    0x002e0090 mov r4, r3                                                    |     r4 = r3;
    0x002e0092 mov r6, r2                                                    |     r6 = r2;
    0x002e0094 ldr r1, [pc, 0x160]                                           |     
    0x002e0096 adds r3, 0x20                                                 |     r3 += 0x20;
    0x002e0098 add r8, pc                                                    |     r8 = 0x5c0292;
    0x002e009a mov.w r2, -1                                                  |     r2 = -1;
    0x002e009e str.w r8, [sp]                                                |     __asm ("str.w r8, [sp]");
    0x002e00a2 mov r5, r0                                                    |     r5 = r0;
    0x002e00a4 add r1, pc                                                    |     r1 = 0x5c02a0;
    0x002e00a6 ldr r7, [sp, 0x28]                                            |     r7 = *(arg_28h);
    0x002e00a8 blx 0x1dc3cc                                                  |     r0 = fcn_001dc3cc ();
    0x002e00ac cbz r0, 0x2e00bc                                              |     
                                                                             |     while (r0 != 0) {
                                                                             | label_0:
    0x002e00ae add.w r5, r5, 0x16000                                         |         r5 += 0x16000;
    0x002e00b2 ldr.w r0, [r5, 0x184]                                         |         r0 = *((r5 + 0x184));
    0x002e00b6 add sp, 8                                                     |         
    0x002e00b8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                        |         
    0x002e00bc mov r1, r6                                                    |         r1 = r6;
    0x002e00be movw r3, 0xaf4                                                |         r3 = 0xaf4;
    0x002e00c2 mov r2, r4                                                    |         r2 = r4;
    0x002e00c4 mov r0, r5                                                    |         r0 = r5;
    0x002e00c6 blx 0x1e6828                                                  |         fcn_001e6828 ();
    0x002e00ca mov r3, r7                                                    |         r3 = r7;
    0x002e00cc mov r2, r0                                                    |         r2 = r0;
    0x002e00ce mov r1, sb                                                    |         r1 = sb;
    0x002e00d0 mov r0, r5                                                    |         r0 = r5;
    0x002e00d2 blx 0x1d9404                                                  |         r0 = fcn_001d9404 ();
    0x002e00d6 mov r6, r0                                                    |         r6 = r0;
    0x002e00d8 cmp r0, 0                                                     |         
    0x002e00da bne 0x2e00ae                                                  |         
                                                                             |     }
    0x002e00dc ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
                                                                             |     if (r3 == 0) {
    0x002e00de cbz r3, 0x2e0112                                              |         goto label_3;
                                                                             |     }
    0x002e00e0 ldr r2, [r4]                                                  |     r2 = *(r4);
    0x002e00e2 cmp r2, 0                                                     |     
                                                                             |     if (r2 <= 0) {
    0x002e00e4 ble 0x2e0112                                                  |         goto label_3;
                                                                             |     }
    0x002e00e6 ldr.w sl, [pc, 0x114]                                         |     
    0x002e00ea mov r7, r0                                                    |     r7 = r0;
    0x002e00ec add sl, pc                                                    |     sl = 0x5c02ee;
    0x002e00ee b 0x2e00f2                                                    |     goto label_4;
                                                                             | label_1:
    0x002e00f0 ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
                                                                             | label_4:
    0x002e00f2 add r3, r7                                                    |     r3 += r7;
    0x002e00f4 mov.w r2, -1                                                  |     r2 = -1;
    0x002e00f8 mov r1, sl                                                    |     r1 = sl;
    0x002e00fa mov r0, r5                                                    |     r0 = r5;
    0x002e00fc str.w r8, [sp]                                                |     __asm ("str.w r8, [sp]");
    0x002e0100 adds r6, 1                                                    |     r6++;
    0x002e0102 adds r7, 0x34                                                 |     r7 += 0x34;
    0x002e0104 blx 0x1d801c                                                  |     r0 = fcn_001d801c ();
    0x002e0108 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e010a bne 0x2e00ae                                                  |         goto label_0;
                                                                             |     }
    0x002e010c ldr r3, [r4]                                                  |     r3 = *(r4);
    0x002e010e cmp r6, r3                                                    |     
                                                                             |     if (r6 < r3) {
    0x002e0110 blt 0x2e00f0                                                  |         goto label_1;
                                                                             |     }
                                                                             | label_3:
    0x002e0112 ldr r7, [pc, 0xec]                                            |     
    0x002e0114 add.w r3, r4, 8                                               |     r3 = r4 + 8;
    0x002e0118 ldr r1, [pc, 0xe8]                                            |     
    0x002e011a mov.w r2, -1                                                  |     r2 = -1;
    0x002e011e mov r0, r5                                                    |     r0 = r5;
    0x002e0120 add r7, pc                                                    |     r7 = 0x5c0326;
    0x002e0122 add r1, pc                                                    |     r1 = 0x5c032a;
    0x002e0124 str r7, [sp]                                                  |     *(sp) = r7;
    0x002e0126 blx 0x1be128                                                  |     r0 = fcn_001be128 ();
    0x002e012a cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e012c bne 0x2e00ae                                                  |         goto label_0;
                                                                             |     }
    0x002e012e ldr r1, [pc, 0xd8]                                            |     
    0x002e0130 add.w r3, r4, 0xc                                             |     r3 = r4 + 0xc;
    0x002e0134 mov.w r2, -1                                                  |     r2 = -1;
    0x002e0138 mov r0, r5                                                    |     r0 = r5;
    0x002e013a str r7, [sp]                                                  |     *(sp) = r7;
    0x002e013c add r1, pc                                                    |     r1 = 0x5c034a;
    0x002e013e blx 0x1cfdd0                                                  |     r0 = fcn_001cfdd0 ();
    0x002e0142 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e0144 bne 0x2e00ae                                                  |         goto label_0;
                                                                             |     }
    0x002e0146 ldr r1, [pc, 0xc4]                                            |     
    0x002e0148 add.w r3, r4, 0x10                                            |     r3 = r4 + 0x10;
    0x002e014c mov.w r2, -1                                                  |     r2 = -1;
    0x002e0150 mov r0, r5                                                    |     r0 = r5;
    0x002e0152 str r7, [sp]                                                  |     *(sp) = r7;
    0x002e0154 add r1, pc                                                    |     r1 = 0x5c0366;
    0x002e0156 blx 0x1c16b4                                                  |     r0 = fcn_001c16b4 ();
    0x002e015a mov r6, r0                                                    |     r6 = r0;
    0x002e015c cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e015e bne 0x2e00ae                                                  |         goto label_0;
                                                                             |     }
    0x002e0160 ldr r3, [r4, 0x18]                                            |     r3 = *((r4 + 0x18));
                                                                             |     if (r3 == 0) {
    0x002e0162 cbz r3, 0x2e0192                                              |         goto label_5;
                                                                             |     }
    0x002e0164 ldr r2, [r4, 0x14]                                            |     r2 = *((r4 + 0x14));
    0x002e0166 cmp r2, 0                                                     |     
                                                                             |     if (r2 <= 0) {
    0x002e0168 ble 0x2e0192                                                  |         goto label_5;
                                                                             |     }
    0x002e016a ldr.w r8, [pc, 0xa4]                                          |     r8 = *(0x002e0210);
    0x002e016e add r8, pc                                                    |     r8 += pc;
    0x002e0170 b 0x2e0174                                                    |     goto label_6;
                                                                             | label_2:
    0x002e0172 ldr r3, [r4, 0x18]                                            |     r3 = *((r4 + 0x18));
                                                                             | label_6:
    0x002e0174 add.w r3, r3, r6, lsl 3                                       |     r3 += (r6 << 3);
    0x002e0178 mov.w r2, -1                                                  |     r2 = -1;
    0x002e017c mov r1, r8                                                    |     r1 = r8;
    0x002e017e str r7, [sp]                                                  |     *(sp) = r7;
    0x002e0180 mov r0, r5                                                    |     r0 = r5;
    0x002e0182 adds r6, 1                                                    |     r6++;
    0x002e0184 blx 0x1d2e74                                                  |     r0 = fcn_001d2e74 ();
    0x002e0188 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e018a bne 0x2e00ae                                                  |         goto label_0;
                                                                             |     }
    0x002e018c ldr r3, [r4, 0x14]                                            |     r3 = *((r4 + 0x14));
    0x002e018e cmp r6, r3                                                    |     
                                                                             |     if (r6 < r3) {
    0x002e0190 blt 0x2e0172                                                  |         goto label_2;
                                                                             |     }
                                                                             | label_5:
    0x002e0192 ldr r6, [pc, 0x80]                                            |     
    0x002e0194 add.w r3, r4, 0x1c                                            |     r3 = r4 + 0x1c;
    0x002e0198 ldr r1, [pc, 0x7c]                                            |     
    0x002e019a mov.w r2, -1                                                  |     r2 = -1;
    0x002e019e mov r0, r5                                                    |     r0 = r5;
    0x002e01a0 add r6, pc                                                    |     r6 = 0x5c03ba;
    0x002e01a2 add r1, pc                                                    |     r1 = 0x5c03be;
    0x002e01a4 str r6, [sp]                                                  |     *(sp) = r6;
    0x002e01a6 blx 0x1e8e20                                                  |     r0 = fcn_001e8e20 ();
    0x002e01aa cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e01ac bne.w 0x2e00ae                                                |         goto label_0;
                                                                             |     }
    0x002e01b0 ldr r1, [pc, 0x68]                                            |     
    0x002e01b2 add.w r3, r4, 0x38                                            |     r3 = r4 + 0x38;
    0x002e01b6 mov.w r2, -1                                                  |     r2 = -1;
    0x002e01ba mov r0, r5                                                    |     r0 = r5;
    0x002e01bc str r6, [sp]                                                  |     *(sp) = r6;
    0x002e01be add r1, pc                                                    |     r1 = 0x5c03de;
    0x002e01c0 blx 0x1be128                                                  |     r0 = fcn_001be128 ();
    0x002e01c4 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e01c6 bne.w 0x2e00ae                                                |         goto label_0;
                                                                             |     }
    0x002e01ca ldr r1, [pc, 0x54]                                            |     
    0x002e01cc add.w r3, r4, 0x3c                                            |     r3 = r4 + 0x3c;
    0x002e01d0 mov.w r2, -1                                                  |     r2 = -1;
    0x002e01d4 mov r0, r5                                                    |     r0 = r5;
    0x002e01d6 str r6, [sp]                                                  |     *(sp) = r6;
    0x002e01d8 add r1, pc                                                    |     r1 = 0x5c03fe;
    0x002e01da blx 0x1cd120                                                  |     r0 = fcn_001cd120 ();
    0x002e01de cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x002e01e0 bne.w 0x2e00ae                                                |         goto label_0;
                                                                             |     }
    0x002e01e4 mov r1, sb                                                    |     r1 = sb;
    0x002e01e6 mov r0, r5                                                    |     r0 = r5;
    0x002e01e8 add sp, 8                                                     |     
    0x002e01ea pop.w {r4, r5, r6, r7, r8, sb, sl, lr}                        |     
    0x002e01ee b.w 0x1cd900                                                  |     return void (*0x1cd900)() ();
                                                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2579ec */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_serialize_PointerTott__PTZStreamExtension ()        | void soap_serialize_PointerTott_PTZStreamExtension (int16_t arg1, int16_t arg2) {
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     do {
    0x001c23b0 bx pc                                                     |         return void (*pc)() ();
    0x002579ec push {r3, r4, r5, lr}                                     |         
    0x002579ee movw r2, 0x596                                            |         r2 = 0x596;
    0x002579f2 mov r4, r1                                                |         r4 = r1;
    0x002579f4 ldr r1, [r1]                                              |         r1 = *(r1);
    0x002579f6 mov r5, r0                                                |         r5 = r0;
    0x002579f8 blx 0x1f08c0                                              |         r0 = fcn_001f08c0 ();
                                                                         |         if (r0 != 0) {
    0x002579fc cbz r0, 0x257a00                                          |             
    0x002579fe pop {r3, r4, r5, pc}                                      |             
                                                                         |         }
    0x00257a00 ldr r1, [r4]                                              |         r1 = *(r4);
    0x00257a02 mov r0, r5                                                |         r0 = r5;
    0x00257a04 pop.w {r3, r4, r5, lr}                                    |         
    0x00257a08 b.w 0x1c23b0                                              |         
                                                                         |     } while (1);
                                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x29ea58 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_serialize_PointerTott__PTZStream ()         | void soap_serialize_PointerTott_PTZStream (int16_t arg1, int16_t arg2) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     do {
    0x001eb0ac bx pc                                             |         return void (*pc)() ();
    0x0029ea58 push {r3, r4, r5, lr}                             |         
    0x0029ea5a movw r2, 0x57f                                    |         r2 = 0x57f;
    0x0029ea5e mov r4, r1                                        |         r4 = r1;
    0x0029ea60 ldr r1, [r1]                                      |         r1 = *(r1);
    0x0029ea62 mov r5, r0                                        |         r5 = r0;
    0x0029ea64 blx 0x1f08c0                                      |         r0 = fcn_001f08c0 ();
                                                                 |         if (r0 != 0) {
    0x0029ea68 cbz r0, 0x29ea6c                                  |             
    0x0029ea6a pop {r3, r4, r5, pc}                              |             
                                                                 |         }
    0x0029ea6c ldr r1, [r4]                                      |         r1 = *(r4);
    0x0029ea6e mov r0, r5                                        |         r0 = r5;
    0x0029ea70 pop.w {r3, r4, r5, lr}                            |         
    0x0029ea74 b.w 0x1eb0ac                                      |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                                                       | /* r2dec pseudo code output */
                                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x29cf08 */
                                                                                     | #include <stdint.h>
                                                                                     |  
    ; (fcn) sym.soap_serialize__tmd__GetAudioOutputConfigurationOptions ()           | void soap_serialize_tmd_GetAudioOutputConfigurationOptions (int16_t arg1, int16_t arg2) {
                                                                                     |     r0 = arg1;
                                                                                     |     r1 = arg2;
    0x0029cf08 push {r3, r4, r5, r6, r7, lr}                                         |     
    0x0029cf0a mov r6, r1                                                            |     r6 = r1;
    0x0029cf0c mov r7, r0                                                            |     r7 = r0;
    0x0029cf0e blx 0x1bd950                                                          |     fcn_001bd950 ();
    0x0029cf12 ldr r1, [r6, 8]                                                       |     r1 = *((r6 + 8));
                                                                                     |     if (r1 == 0) {
    0x0029cf14 cbz r1, 0x29cf36                                                      |         goto label_0;
                                                                                     |     }
    0x0029cf16 ldr r3, [r6, 4]                                                       |     r3 = *((r6 + 4));
    0x0029cf18 cmp r3, 0                                                             |     
                                                                                     |     if (r3 <= 0) {
    0x0029cf1a ble 0x29cf36                                                          |         goto label_0;
                                                                                     |     }
    0x0029cf1c movs r4, 0                                                            |     r4 = 0;
    0x0029cf1e mov r5, r4                                                            |     r5 = r4;
    0x0029cf20 b 0x29cf24                                                            |     
                                                                                     |     while (r5 < r3) {
    0x0029cf22 ldr r1, [r6, 8]                                                       |         r1 = *((r6 + 8));
    0x0029cf24 add r1, r4                                                            |         r1 += r4;
    0x0029cf26 mov r0, r7                                                            |         r0 = r7;
    0x0029cf28 blx 0x1f0ce4                                                          |         fcn_001f0ce4 ();
    0x0029cf2c ldr r3, [r6, 4]                                                       |         r3 = *((r6 + 4));
    0x0029cf2e adds r5, 1                                                            |         r5++;
    0x0029cf30 adds r4, 0x34                                                         |         r4 += 0x34;
    0x0029cf32 cmp r5, r3                                                            |         
    0x0029cf34 blt 0x29cf22                                                          |         
                                                                                     |     }
                                                                                     | label_0:
    0x0029cf36 pop {r3, r4, r5, r6, r7, pc}                                          |     
                                                                                     | }
    ; assembly                                                                               | /* r2dec pseudo code output */
                                                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2a2af4 */
                                                                                             | #include <stdint.h>
                                                                                             |  
    ; (fcn) sym.soap_serialize__tmd__GetAudioOutputConfigurationOptionsResponse ()           | void soap_serialize_tmd_GetAudioOutputConfigurationOptionsResponse (int16_t arg1, int16_t arg2) {
                                                                                             |     r0 = arg1;
                                                                                             |     r1 = arg2;
    0x002a2af4 push {r3, r4, r5, r6, r7, lr}                                                 |     
    0x002a2af6 mov r6, r1                                                                    |     r6 = r1;
    0x002a2af8 mov r7, r0                                                                    |     r7 = r0;
    0x002a2afa blx 0x1c14f0                                                                  |     fcn_001c14f0 ();
    0x002a2afe ldr r1, [r6, 8]                                                               |     r1 = *((r6 + 8));
                                                                                             |     if (r1 == 0) {
    0x002a2b00 cbz r1, 0x2a2b22                                                              |         goto label_0;
                                                                                             |     }
    0x002a2b02 ldr r3, [r6, 4]                                                               |     r3 = *((r6 + 4));
    0x002a2b04 cmp r3, 0                                                                     |     
                                                                                             |     if (r3 <= 0) {
    0x002a2b06 ble 0x2a2b22                                                                  |         goto label_0;
                                                                                             |     }
    0x002a2b08 movs r4, 0                                                                    |     r4 = 0;
    0x002a2b0a mov r5, r4                                                                    |     r5 = r4;
    0x002a2b0c b 0x2a2b10                                                                    |     
                                                                                             |     while (r5 < r3) {
    0x002a2b0e ldr r1, [r6, 8]                                                               |         r1 = *((r6 + 8));
    0x002a2b10 add r1, r4                                                                    |         r1 += r4;
    0x002a2b12 mov r0, r7                                                                    |         r0 = r7;
    0x002a2b14 blx 0x1f0ce4                                                                  |         fcn_001f0ce4 ();
    0x002a2b18 ldr r3, [r6, 4]                                                               |         r3 = *((r6 + 4));
    0x002a2b1a adds r5, 1                                                                    |         r5++;
    0x002a2b1c adds r4, 0x34                                                                 |         r4 += 0x34;
    0x002a2b1e cmp r5, r3                                                                    |         
    0x002a2b20 blt 0x2a2b0e                                                                  |         
                                                                                             |     }
                                                                                             | label_0:
    0x002a2b22 pop {r3, r4, r5, r6, r7, pc}                                                  |     
                                                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x2a80bc */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.soap_serialize_tt__AnalyticsEngineControl ()         | void soap_serialize_tt_AnalyticsEngineControl (int16_t arg1, int16_t arg2) {
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x002a80bc push {r3, r4, r5, r6, r7, lr}                         |     
    0x002a80be mov r4, r1                                            |     r4 = r1;
    0x002a80c0 mov r5, r0                                            |     r5 = r0;
    0x002a80c2 blx 0x1bd950                                          |     fcn_001bd950 ();
    0x002a80c6 movs r2, 1                                            |     r2 = 1;
    0x002a80c8 adds r1, r4, 4                                        |     r1 = r4 + 4;
    0x002a80ca mov r0, r5                                            |     r0 = r5;
    0x002a80cc blx 0x1b8f38                                          |     fcn_001b8f38 ();
    0x002a80d0 add.w r1, r4, 0xc                                     |     r1 = r4 + 0xc;
    0x002a80d4 mov r0, r5                                            |     r0 = r5;
    0x002a80d6 blx 0x1bd950                                          |     fcn_001bd950 ();
    0x002a80da add.w r1, r4, 0x10                                    |     r1 = r4 + 0x10;
    0x002a80de mov r0, r5                                            |     r0 = r5;
    0x002a80e0 blx 0x1bd950                                          |     fcn_001bd950 ();
    0x002a80e4 ldr r1, [r4, 0x18]                                    |     r1 = *((r4 + 0x18));
                                                                     |     if (r1 == 0) {
    0x002a80e6 cbz r1, 0x2a8106                                      |         goto label_0;
                                                                     |     }
    0x002a80e8 ldr r3, [r4, 0x14]                                    |     r3 = *((r4 + 0x14));
    0x002a80ea cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x002a80ec ble 0x2a8106                                          |         goto label_0;
                                                                     |     }
    0x002a80ee movs r6, 0                                            |     r6 = 0;
    0x002a80f0 b 0x2a80f4                                            |     
                                                                     |     while (r3 > r6) {
    0x002a80f2 ldr r1, [r4, 0x18]                                    |         r1 = *((r4 + 0x18));
    0x002a80f4 add.w r1, r1, r6, lsl 2                               |         r1 += (r6 << 2);
    0x002a80f8 mov r0, r5                                            |         r0 = r5;
    0x002a80fa adds r6, 1                                            |         r6++;
    0x002a80fc blx 0x1bd950                                          |         fcn_001bd950 ();
    0x002a8100 ldr r3, [r4, 0x14]                                    |         r3 = *((r4 + 0x14));
    0x002a8102 cmp r3, r6                                            |         
    0x002a8104 bgt 0x2a80f2                                          |         
                                                                     |     }
                                                                     | label_0:
    0x002a8106 ldr r1, [r4, 0x20]                                    |     r1 = *((r4 + 0x20));
                                                                     |     if (r1 == 0) {
    0x002a8108 cbz r1, 0x2a8128                                      |         goto label_1;
                                                                     |     }
    0x002a810a ldr r3, [r4, 0x1c]                                    |     r3 = *((r4 + 0x1c));
    0x002a810c cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x002a810e ble 0x2a8128                                          |         goto label_1;
                                                                     |     }
    0x002a8110 movs r6, 0                                            |     r6 = 0;
    0x002a8112 b 0x2a8116                                            |     
                                                                     |     while (r3 > r6) {
    0x002a8114 ldr r1, [r4, 0x20]                                    |         r1 = *((r4 + 0x20));
    0x002a8116 add.w r1, r1, r6, lsl 2                               |         r1 += (r6 << 2);
    0x002a811a mov r0, r5                                            |         r0 = r5;
    0x002a811c adds r6, 1                                            |         r6++;
    0x002a811e blx 0x1bd950                                          |         fcn_001bd950 ();
    0x002a8122 ldr r3, [r4, 0x1c]                                    |         r3 = *((r4 + 0x1c));
    0x002a8124 cmp r3, r6                                            |         
    0x002a8126 bgt 0x2a8114                                          |         
                                                                     |     }
                                                                     | label_1:
    0x002a8128 add.w r1, r4, 0x24                                    |     r1 = r4 + 0x24;
    0x002a812c mov r0, r5                                            |     r0 = r5;
    0x002a812e blx 0x1e16c0                                          |     fcn_001e16c0 ();
    0x002a8132 add.w r1, r4, 0x28                                    |     r1 = r4 + 0x28;
    0x002a8136 mov r0, r5                                            |     r0 = r5;
    0x002a8138 blx 0x1c6aa0                                          |     fcn_001c6aa0 ();
    0x002a813c ldr r1, [r4, 0x34]                                    |     r1 = *((r4 + 0x34));
                                                                     |     if (r1 == 0) {
    0x002a813e cbz r1, 0x2a8160                                      |         goto label_2;
                                                                     |     }
    0x002a8140 ldr r3, [r4, 0x30]                                    |     r3 = *((r4 + 0x30));
    0x002a8142 cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x002a8144 ble 0x2a8160                                          |         goto label_2;
                                                                     |     }
    0x002a8146 movs r6, 0                                            |     r6 = 0;
    0x002a8148 mov r7, r6                                            |     r7 = r6;
    0x002a814a b 0x2a814e                                            |     
                                                                     |     while (r3 > r7) {
    0x002a814c ldr r1, [r4, 0x34]                                    |         r1 = *((r4 + 0x34));
    0x002a814e add r1, r6                                            |         r1 += r6;
    0x002a8150 mov r0, r5                                            |         r0 = r5;
    0x002a8152 blx 0x1f0ce4                                          |         fcn_001f0ce4 ();
    0x002a8156 ldr r3, [r4, 0x30]                                    |         r3 = *((r4 + 0x30));
    0x002a8158 adds r7, 1                                            |         r7++;
    0x002a815a adds r6, 0x34                                         |         r6 += 0x34;
    0x002a815c cmp r3, r7                                            |         
    0x002a815e bgt 0x2a814c                                          |         
                                                                     |     }
                                                                     | label_2:
    0x002a8160 pop {r3, r4, r5, r6, r7, pc}                          |     
                                                                     | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x23b880 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.soap_serialize_tt__ShapeDescriptorExtension ()           | void soap_serialize_tt_ShapeDescriptorExtension (int16_t arg1, int16_t arg2) {
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x0023b880 push {r3, r4, r5, r6, r7, lr}                             |     
    0x0023b882 mov r6, r1                                                |     r6 = r1;
    0x0023b884 ldr r1, [r1, 4]                                           |     r1 = *((r1 + 4));
                                                                         |     if (r1 == 0) {
    0x0023b886 cbz r1, 0x23b8aa                                          |         goto label_0;
                                                                         |     }
    0x0023b888 ldr r3, [r6]                                              |     r3 = *(r6);
    0x0023b88a cmp r3, 0                                                 |     
                                                                         |     if (r3 <= 0) {
    0x0023b88c ble 0x23b8aa                                              |         goto label_0;
                                                                         |     }
    0x0023b88e movs r4, 0                                                |     r4 = 0;
    0x0023b890 mov r7, r0                                                |     r7 = r0;
    0x0023b892 mov r5, r4                                                |     r5 = r4;
    0x0023b894 b 0x23b898                                                |     
                                                                         |     while (r5 < r3) {
    0x0023b896 ldr r1, [r6, 4]                                           |         r1 = *((r6 + 4));
    0x0023b898 add r1, r4                                                |         r1 += r4;
    0x0023b89a mov r0, r7                                                |         r0 = r7;
    0x0023b89c blx 0x1f0ce4                                              |         fcn_001f0ce4 ();
    0x0023b8a0 ldr r3, [r6]                                              |         r3 = *(r6);
    0x0023b8a2 adds r5, 1                                                |         r5++;
    0x0023b8a4 adds r4, 0x34                                             |         r4 += 0x34;
    0x0023b8a6 cmp r5, r3                                                |         
    0x0023b8a8 blt 0x23b896                                              |         
                                                                         |     }
                                                                         | label_0:
    0x0023b8aa pop {r3, r4, r5, r6, r7, pc}                              |     
                                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x25ca68 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.soap_serialize_tt__ShapeDescriptor ()        | void soap_serialize_tt_ShapeDescriptor (int16_t arg1, int16_t arg2) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0025ca68 push {r3, r4, r5, r6, r7, lr}                 |     
    0x0025ca6a mov r4, r1                                    |     r4 = r1;
    0x0025ca6c mov r6, r0                                    |     r6 = r0;
    0x0025ca6e blx 0x1c84cc                                  |     fcn_001c84cc ();
    0x0025ca72 adds r1, r4, 4                                |     r1 = r4 + 4;
    0x0025ca74 mov r0, r6                                    |     r0 = r6;
    0x0025ca76 blx 0x1d57b4                                  |     fcn_001d57b4 ();
    0x0025ca7a ldr r1, [r4, 0xc]                             |     r1 = *((r4 + 0xc));
                                                             |     if (r1 == 0) {
    0x0025ca7c cbz r1, 0x25caaa                              |         goto label_0;
                                                             |     }
    0x0025ca7e ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x0025ca80 cmp r3, 0                                     |     
                                                             |     if (r3 <= 0) {
    0x0025ca82 ble 0x25caaa                                  |         goto label_0;
                                                             |     }
    0x0025ca84 movs r5, 0                                    |     r5 = 0;
    0x0025ca86 b 0x25ca8a                                    |     
                                                             |     while (r3 > r5) {
    0x0025ca88 ldr r1, [r4, 0xc]                             |         r1 = *((r4 + 0xc));
    0x0025ca8a lsls r7, r5, 3                                |         r7 = r5 << 3;
    0x0025ca8c movw r2, 0x47a                                |         r2 = 0x47a;
    0x0025ca90 mov r0, r6                                    |         r0 = r6;
    0x0025ca92 add r1, r7                                    |         r1 += r7;
    0x0025ca94 adds r5, 1                                    |         r5++;
    0x0025ca96 blx 0x1b8f38                                  |         fcn_001b8f38 ();
    0x0025ca9a ldr r1, [r4, 0xc]                             |         r1 = *((r4 + 0xc));
    0x0025ca9c mov r0, r6                                    |         r0 = r6;
    0x0025ca9e add r1, r7                                    |         r1 += r7;
    0x0025caa0 blx 0x1b8f9c                                  |         fcn_001b8f9c ();
    0x0025caa4 ldr r3, [r4, 8]                               |         r3 = *((r4 + 8));
    0x0025caa6 cmp r3, r5                                    |         
    0x0025caa8 bgt 0x25ca88                                  |         
                                                             |     }
                                                             | label_0:
    0x0025caaa add.w r1, r4, 0x10                            |     r1 = r4 + 0x10;
    0x0025caae mov r0, r6                                    |     r0 = r6;
    0x0025cab0 blx 0x1ddad4                                  |     fcn_001ddad4 ();
    0x0025cab4 ldr r1, [r4, 0x18]                            |     r1 = *((r4 + 0x18));
                                                             |     if (r1 == 0) {
    0x0025cab6 cbz r1, 0x25cad8                              |         goto label_1;
                                                             |     }
    0x0025cab8 ldr r3, [r4, 0x14]                            |     r3 = *((r4 + 0x14));
    0x0025caba cmp r3, 0                                     |     
                                                             |     if (r3 <= 0) {
    0x0025cabc ble 0x25cad8                                  |         goto label_1;
                                                             |     }
    0x0025cabe movs r5, 0                                    |     r5 = 0;
    0x0025cac0 mov r7, r5                                    |     r7 = r5;
    0x0025cac2 b 0x25cac6                                    |     
                                                             |     while (r3 > r7) {
    0x0025cac4 ldr r1, [r4, 0x18]                            |         r1 = *((r4 + 0x18));
    0x0025cac6 add r1, r5                                    |         r1 += r5;
    0x0025cac8 mov r0, r6                                    |         r0 = r6;
    0x0025caca blx 0x1f0ce4                                  |         fcn_001f0ce4 ();
    0x0025cace ldr r3, [r4, 0x14]                            |         r3 = *((r4 + 0x14));
    0x0025cad0 adds r7, 1                                    |         r7++;
    0x0025cad2 adds r5, 0x34                                 |         r5 += 0x34;
    0x0025cad4 cmp r3, r7                                    |         
    0x0025cad6 bgt 0x25cac4                                  |         
                                                             |     }
                                                             | label_1:
    0x0025cad8 pop {r3, r4, r5, r6, r7, pc}                  |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x4b3b7c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.soap_wsse_add_SignatureValue ()                  | void soap_wsse_add_SignatureValue (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int32_t var_0h_3;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x004b3b7c push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x004b3b80 mov r6, r2                                        |     r6 = r2;
    0x004b3b82 ldr r2, [pc, 0x130]                               |     
    0x004b3b84 mov r7, r3                                        |     r7 = r3;
    0x004b3b86 sub sp, 0x10                                      |     
    0x004b3b88 mov r5, r1                                        |     r5 = r1;
    0x004b3b8a ldr r3, [pc, 0x12c]                               |     r3 = *(0x4b3cba);
    0x004b3b8c mov r4, r0                                        |     r4 = r0;
    0x004b3b8e add r2, pc                                        |     r2 = 0x967848;
    0x004b3b90 ldr.w sl, [pc, 0x128]                             |     sl = *(0x004b3cbc);
    0x004b3b94 ldr r3, [r2, r3]                                  |     
    0x004b3b96 add sl, pc                                        |     sl += pc;
    0x004b3b98 ldr r3, [r3]                                      |     r3 = *(0x967848);
    0x004b3b9a str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x004b3b9c mov.w r3, 0                                       |     r3 = 0;
    0x004b3ba0 blx 0x1c8c70                                      |     fcn_001c8c70 ();
    0x004b3ba4 cmp r5, 0x21                                      |     
    0x004b3ba6 mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r5 != 0x21) {
    0x004b3ba8 beq 0x4b3bd6                                      |         
    0x004b3baa cmp r5, 0x61                                      |         
                                                                 |         if (r5 == 0x61) {
    0x004b3bac beq 0x4b3c6a                                      |             goto label_10;
                                                                 |         }
    0x004b3bae cmp r5, 1                                         |         
                                                                 |         if (r5 == 1) {
    0x004b3bb0 beq 0x4b3c60                                      |             goto label_11;
                                                                 |         }
    0x004b3bb2 ldr r2, [pc, 0x10c]                               |         
    0x004b3bb4 ldr r3, [pc, 0x100]                               |         r3 = *(0x4b3cb8);
    0x004b3bb6 add r2, pc                                        |         r2 = 0x96787c;
    0x004b3bb8 ldr r3, [r2, r3]                                  |         r3 = *(0x96787c);
    0x004b3bba ldr r2, [r3]                                      |         r2 = *(0x96787c);
    0x004b3bbc ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x004b3bbe eors r2, r3                                       |         r2 ^= r3;
    0x004b3bc0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x004b3bc4 bne 0x4b3cae                                      |             goto label_12;
                                                                 |         }
    0x004b3bc6 movs r2, 0                                        |         r2 = 0;
    0x004b3bc8 movs r1, 1                                        |         r1 = 1;
    0x004b3bca mov r0, r4                                        |         r0 = r4;
    0x004b3bcc add sp, 0x10                                      |         
    0x004b3bce pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x004b3bd2 b.w 0x1d8740                                      |         void (*0x1d8740)() ();
                                                                 |     }
    0x004b3bd6 ldr r3, [pc, 0xec]                                |     r3 = *(0x4b3cc6);
    0x004b3bd8 ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x004b3bdc ldr r1, [r3]                                      |     r1 = *(0x4b3cc6);
                                                                 |     do {
                                                                 | label_0:
    0x004b3bde ldr r2, [r4, 4]                                   |         r2 = *((r4 + 4));
    0x004b3be0 mov r0, r4                                        |         r0 = r4;
    0x004b3be2 and r2, r2, 0x10000                               |         r2 &= 0x10000;
    0x004b3be6 blx 0x1e29ec                                      |         fcn_001e29ec ();
    0x004b3bea mov r1, r6                                        |         r1 = r6;
    0x004b3bec mov r0, r5                                        |         r0 = r5;
    0x004b3bee blx 0x1e6958                                      |         fcn_001e6958 ();
    0x004b3bf2 movs r1, 0                                        |         r1 = 0;
    0x004b3bf4 mov r2, r0                                        |         r2 = r0;
    0x004b3bf6 mov r0, r4                                        |         r0 = r4;
    0x004b3bf8 blx 0x1f2498                                      |         r0 = fcn_001f2498 ();
    0x004b3bfc cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x004b3bfe bne 0x4b3caa                                      |             goto label_13;
                                                                 |         }
    0x004b3c00 ldr r2, [r4, 4]                                   |         r2 = *((r4 + 4));
    0x004b3c02 add.w r3, r4, 0x3000                              |         r3 = r4 + 0x3000;
    0x004b3c06 movs r1, 4                                        |         r1 = 4;
    0x004b3c08 ldr.w sb, [r3, 0xcc]                              |         sb = *((r3 + 0xcc));
    0x004b3c0c str.w r1, [r3, 0xc0]                              |         __asm ("str.w r1, [r3, 0xc0]");
    0x004b3c10 lsls r3, r2, 0xf                                  |         r3 = r2 << 0xf;
                                                                 |         if (r3 >= r2) {
    0x004b3c12 bpl 0x4b3c96                                      |             goto label_14;
                                                                 |         }
                                                                 | label_3:
    0x004b3c14 mov r2, r6                                        |         r2 = r6;
    0x004b3c16 mov r3, r7                                        |         r3 = r7;
    0x004b3c18 mov r1, r5                                        |         r1 = r5;
    0x004b3c1a mov r0, r4                                        |         r0 = r4;
    0x004b3c1c blx 0x1df048                                      |         r0 = fcn_001df048 ();
    0x004b3c20 mov r2, r0                                        |         r2 = r0;
                                                                 |         if (r0 == 0) {
    0x004b3c22 cbnz r0, 0x4b3c36                                 |             
    0x004b3c24 ldr r1, [pc, 0xa0]                                |             
    0x004b3c26 ldr.w r3, [r8]                                    |             r3 = *(r8);
    0x004b3c2a str r0, [sp]                                      |             *(sp) = r0;
    0x004b3c2c mov r0, r4                                        |             r0 = r4;
    0x004b3c2e add r1, pc                                        |             r1 = 0x9678fa;
    0x004b3c30 blx 0x1ede8c                                      |             r0 = fcn_001ede8c ();
                                                                 |             if (r0 == 0) {
    0x004b3c34 cbz r0, 0x4b3c74                                  |                 goto label_15;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x004b3c36 ldr r2, [pc, 0x94]                                |         
    0x004b3c38 movs r1, 2                                        |         r1 = 2;
    0x004b3c3a mov r0, r4                                        |         r0 = r4;
    0x004b3c3c add r2, pc                                        |         r2 = 0x96790e;
    0x004b3c3e blx 0x1d8744                                      |         r0 = fcn_001d8744 ();
    0x004b3c42 mov r5, r0                                        |         r5 = r0;
                                                                 | label_2:
    0x004b3c44 ldr r2, [pc, 0x88]                                |         
    0x004b3c46 ldr r3, [pc, 0x70]                                |         r3 = *(0x4b3cba);
    0x004b3c48 add r2, pc                                        |         r2 = 0x96791c;
    0x004b3c4a ldr r3, [r2, r3]                                  |         r3 = *(0x96791c);
    0x004b3c4c ldr r2, [r3]                                      |         r2 = *(0x96791c);
    0x004b3c4e ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x004b3c50 eors r2, r3                                       |         r2 ^= r3;
    0x004b3c52 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x004b3c56 bne 0x4b3cae                                      |             goto label_12;
                                                                 |         }
                                                                 | label_5:
    0x004b3c58 mov r0, r5                                        |         r0 = r5;
    0x004b3c5a add sp, 0x10                                      |         
    0x004b3c5c pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_11:
    0x004b3c60 ldr r3, [pc, 0x70]                                |         r3 = *(0x4b3cd4);
    0x004b3c62 ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x004b3c66 ldr r1, [r3]                                      |         r1 = *(0x4b3cd4);
    0x004b3c68 b 0x4b3bde                                        |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x004b3c6a ldr r3, [pc, 0x6c]                                |     r3 = *(0x4b3cda);
    0x004b3c6c ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x004b3c70 ldr r1, [r3]                                      |     r1 = *(0x4b3cda);
    0x004b3c72 b 0x4b3bde                                        |     goto label_0;
                                                                 | label_15:
    0x004b3c74 add r2, sp, 8                                     |     r2 += var_8h;
    0x004b3c76 mov r1, sb                                        |     r1 = sb;
    0x004b3c78 mov r0, r4                                        |     r0 = r4;
    0x004b3c7a blx 0x1d74e4                                      |     r0 = fcn_001d74e4 ();
    0x004b3c7e mov r5, r0                                        |     r5 = r0;
    0x004b3c80 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x004b3c82 bne 0x4b3c36                                      |         goto label_1;
                                                                 |     }
    0x004b3c84 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x004b3c86 mov r1, sb                                        |     r1 = sb;
    0x004b3c88 mov r0, r4                                        |     r0 = r4;
    0x004b3c8a mov r2, r5                                        |     r2 = r5;
    0x004b3c8c blx 0x1f2aa8                                      |     fcn_001f2aa8 ();
    0x004b3c90 str.w r0, [r8, 4]                                 |     __asm ("str.w r0, [r8, 4]");
                                                                 | label_4:
    0x004b3c94 b 0x4b3c44                                        |     goto label_2;
                                                                 | label_14:
    0x004b3c96 ldr r3, [pc, 0x44]                                |     r3 = *(0x4b3cde);
    0x004b3c98 mov r0, r4                                        |     r0 = r4;
    0x004b3c9a ldr r1, [pc, 0x44]                                |     r1 = *(0x4b3ce2);
                                                                 |     do {
    0x004b3c9c ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x004b3ca0 add r1, pc                                        |         r1 += pc;
    0x004b3ca2 ldr r2, [r3]                                      |         r2 = *(r3);
    0x004b3ca4 blx 0x1c1564                                      |         fcn_001c1564 ();
    0x004b3ca8 b 0x4b3c14                                        |         goto label_3;
                                                                 | label_13:
    0x004b3caa movs r5, 0x14                                     |         r5 = 0x14;
    0x004b3cac b 0x4b3c44                                        |         goto label_2;
                                                                 | label_12:
    0x004b3cae blx 0x1d8fac                                      |         fcn_001d8fac ();
    0x004b3cb2 nop                                               |         
    0x004b3cb4 bhs 0x4b3c9c                                      |         
                                                                 |     } while (r5 >= 0x14);
    0x004b3cb6 movs r2, r0                                       |     r2 = r0;
    0x004b3cb8 asrs r4, r5, 4                                    |     r4 = r5 >> 4;
    0x004b3cba movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 >= r0) {
    0x004b3cbc bhs 0x4b3c94                                      |         goto label_4;
                                                                 |     }
    0x004b3cbe movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x004b3cc0 bhs 0x4b3c58                                      |         goto label_5;
                                                                 |     }
    0x004b3cc2 movs r2, r0                                       |     r2 = r0;
    0x004b3cc4 asrs r4, r1, 5                                    |     r4 = r1 >> 5;
    0x004b3cc6 movs r1, r0                                       |     r1 = r0;
    0x004b3cc8 adds r6, 0xca                                     |     r6 += 0xca;
    0x004b3cca movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r4 != 0) {
    0x004b3ccc cbz r4, 0x4b3ce0                                  |         
    0x004b3cce movs r1, r0                                       |         r1 = r0;
                                                                 |         if (r1 >= r0) {
    0x004b3cd0 bhs 0x4b3d44                                      |             goto label_16;
                                                                 |         }
    0x004b3cd2 movs r2, r0                                       |         r2 = r0;
    0x004b3cd4 asrs r4, r6, 4                                    |         r4 = r6 >> 4;
    0x004b3cd6 movs r1, r0                                       |         r1 = r0;
    0x004b3cd8 asrs r4, r0, 5                                    |         r4 = r0 >> 5;
    0x004b3cda movs r1, r0                                       |         r1 = r0;
    0x004b3cdc asrs r0, r5, 4                                    |         r0 = r5 >> 4;
    0x004b3cde movs r1, r0                                       |         r1 = r0;
                                                                 |     }
    0x004b3ce0 sub sp, 0x170                                     |     
    0x004b3ce2 movs r1, r0                                       |     r1 = r0;
    0x004b3ce4 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x004b3ce8 sub sp, 8                                         |     
    0x004b3cea ldr r7, [pc, 0x18c]                               |     
    0x004b3cec mov r6, r0                                        |     r6 = r0;
    0x004b3cee ldr r3, [pc, 0x18c]                               |     r3 = *(0x4b3e7e);
    0x004b3cf0 add r7, pc                                        |     r7 = 0x967b6e;
    0x004b3cf2 ldr r1, [r7, r3]                                  |     r1 = *(0x967b6e);
    0x004b3cf4 blx 0x1ee6d4                                      |     r0 = fcn_001ee6d4 ();
    0x004b3cf8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x004b3cfa beq 0x4b3df0                                      |         goto label_17;
                                                                 |     }
    0x004b3cfc ldr r4, [r0, 0x18]                                |     r4 = *((r0 + 0x18));
    0x004b3cfe mov r5, r0                                        |     r5 = r0;
    0x004b3d00 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x004b3d02 beq 0x4b3da0                                      |         goto label_18;
                                                                 |     }
    0x004b3d04 mov r0, r6                                        |     r0 = r6;
    0x004b3d06 blx 0x1d2748                                      |     fcn_001d2748 ();
    0x004b3d0a ldr r2, [r6, 4]                                   |     r2 = *((r6 + 4));
    0x004b3d0c mov sb, r0                                        |     sb = r0;
    0x004b3d0e ands r8, r2, 0x10000                              |     r8 = r2 & 0x10000;
                                                                 |     if (r8 != r2) {
    0x004b3d12 bne 0x4b3d82                                      |         goto label_19;
                                                                 |     }
    0x004b3d14 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x004b3d18 beq 0x4b3d90                                      |         goto label_20;
                                                                 |     }
                                                                 | label_6:
    0x004b3d1a ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x004b3d1e mov sl, r3                                        |     sl = r3;
    0x004b3d20 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x004b3d22 bne 0x4b3df8                                      |         goto label_21;
                                                                 |     }
                                                                 | label_7:
    0x004b3d24 ldr r4, [r5, 0x18]                                |     r4 = *((r5 + 0x18));
                                                                 |     if (r4 == 0) {
    0x004b3d26 cbz r4, 0x4b3d42                                  |         goto label_22;
                                                                 |     }
                                                                 |     do {
    0x004b3d28 add.w r7, r4, 0x20                                |         r7 = r4 + 0x20;
    0x004b3d2c add.w r1, r4, 0x60                                |         r1 = r4 + 0x60;
    0x004b3d30 movs r3, 0                                        |         r3 = 0;
    0x004b3d32 mov r2, r8                                        |         r2 = r8;
    0x004b3d34 mov r0, r6                                        |         r0 = r6;
    0x004b3d36 str r7, [sp]                                      |         *(sp) = r7;
    0x004b3d38 blx 0x1d601c                                      |         fcn_001d601c ();
    0x004b3d3c ldr r4, [r4]                                      |         r4 = *(r4);
    0x004b3d3e cmp r4, 0                                         |         
    0x004b3d40 bne 0x4b3d28                                      |         
                                                                 |     } while (r4 != 0);
                                                                 | label_22:
    0x004b3d42 invalid                                           |     
                                                                 | label_16:
    0x004b3d44 movs r3, 1                                        |     r3 = 1;
    0x004b3d46 mov r0, r6                                        |     r0 = r6;
    0x004b3d48 ldr r1, [r5]                                      |     r1 = *(r5);
    0x004b3d4a blx 0x1be3b0                                      |     fcn_001be3b0 ();
    0x004b3d4e ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
    0x004b3d50 and r2, r3, 3                                     |     r2 = r3 & 3;
    0x004b3d54 cmp r2, 3                                         |     
                                                                 |     if (r2 == 3) {
    0x004b3d56 beq 0x4b3d9e                                      |         goto label_23;
                                                                 |     }
    0x004b3d58 lsls r2, r3, 0xf                                  |     r2 = r3 << 0xf;
    0x004b3d5a it pl                                             |     
                                                                 |     if (r2 < r3) {
    0x004b3d5c addpl r7, r6, 0x3000                              |         r7 = r6 + 0x3000;
                                                                 |     }
                                                                 |     if (r2 < r3) {
    0x004b3d60 bmi 0x4b3e0e                                      |         goto label_24;
                                                                 |     }
    0x004b3d62 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x004b3d66 beq 0x4b3e34                                      |         goto label_25;
                                                                 |     }
                                                                 | label_8:
    0x004b3d68 ldr r1, [pc, 0x114]                               |     
    0x004b3d6a movs r2, 3                                        |     r2 = 3;
    0x004b3d6c str.w r2, [r7, 0xc0]                              |     __asm ("str.w r2, [r7, 0xc0]");
    0x004b3d70 movs r2, 0                                        |     r2 = 0;
    0x004b3d72 mov r3, sb                                        |     r3 = sb;
    0x004b3d74 mov r0, r6                                        |     r0 = r6;
    0x004b3d76 add r1, pc                                        |     r1 = 0x967bfa;
    0x004b3d78 str r2, [sp]                                      |     *(sp) = r2;
    0x004b3d7a blx 0x1c46ec                                      |     fcn_001c46ec ();
    0x004b3d7e ldr r4, [r5, 0x18]                                |     r4 = *((r5 + 0x18));
    0x004b3d80 b 0x4b3da4                                        |     goto label_9;
                                                                 | label_19:
    0x004b3d82 ldr r3, [pc, 0x100]                               |     r3 = *(0x4b3e86);
    0x004b3d84 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x004b3d86 ldr.w r8, [r3]                                    |     r8 = *(0x4b3e86);
    0x004b3d8a cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x004b3d8e bne 0x4b3d1a                                      |         goto label_6;
                                                                 |     }
                                                                 | label_20:
    0x004b3d90 mov r0, r6                                        |     r0 = r6;
    0x004b3d92 mov.w sl, 1                                       |     sl = 1;
    0x004b3d96 blx 0x1c8c70                                      |     r0 = fcn_001c8c70 ();
    0x004b3d9a mov sb, r0                                        |     sb = r0;
    0x004b3d9c b 0x4b3d24                                        |     goto label_7;
                                                                 | label_23:
    0x004b3d9e ldr r4, [r5, 0x18]                                |     r4 = *((r5 + 0x18));
                                                                 | label_18:
    0x004b3da0 add.w r7, r6, 0x3000                              |     r7 = r6 + 0x3000;
                                                                 | label_9:
    0x004b3da4 movs r3, 0                                        |     r3 = 0;
    0x004b3da6 ldr r2, [r7, 0x58]                                |     r2 = *((r7 + 0x58));
    0x004b3da8 strd r3, r3, [r5]                                 |     __asm ("strd r3, r3, [r5]");
    0x004b3dac str r3, [r5, 8]                                   |     *((r5 + 8)) = r3;
    0x004b3dae ldr r3, [pc, 0xd8]                                |     
    0x004b3db0 add r3, pc                                        |     r3 = 0x967c3e;
    0x004b3db2 cmp r2, r3                                        |     
    0x004b3db4 ldr r2, [r7, 0x60]                                |     r2 = *((r7 + 0x60));
    0x004b3db6 itt eq                                            |     
                                                                 |     if (r2 != r3) {
    0x004b3db8 ldreq r3, [r5, 0x1c]                              |         r3 = *((r5 + 0x1c));
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x004b3dba streq r3, [r7, 0x58]                              |         *((r7 + 0x58)) = r3;
                                                                 |     }
    0x004b3dbc ldr r3, [pc, 0xcc]                                |     
    0x004b3dbe add r3, pc                                        |     r3 = 0x967c4e;
    0x004b3dc0 cmp r2, r3                                        |     
    0x004b3dc2 itt eq                                            |     
                                                                 |     if (r2 != r3) {
    0x004b3dc4 ldreq r3, [r5, 0x20]                              |         r3 = *((r5 + 0x20));
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x004b3dc6 streq r3, [r7, 0x60]                              |         *((r7 + 0x60)) = r3;
                                                                 |     }
    0x004b3dc8 movs r3, 0                                        |     r3 = 0;
    0x004b3dca strd r3, r3, [r5, 0x1c]                           |     __asm ("strd r3, r3, [r5, 0x1c]");
                                                                 |     if (r4 == 0) {
    0x004b3dce cbz r4, 0x4b3ddc                                  |         goto label_26;
                                                                 |     }
                                                                 |     do {
    0x004b3dd0 mov r0, r4                                        |         r0 = r4;
    0x004b3dd2 ldr r4, [r4]                                      |         r4 = *(r4);
    0x004b3dd4 blx 0x1bf08c                                      |         fcn_001bf08c ();
    0x004b3dd8 cmp r4, 0                                         |         
    0x004b3dda bne 0x4b3dd0                                      |         
                                                                 |     } while (r4 != 0);
                                                                 | label_26:
    0x004b3ddc ldr r3, [r7, 0x60]                                |     r3 = *((r7 + 0x60));
    0x004b3dde movs r2, 0                                        |     r2 = 0;
    0x004b3de0 str r2, [r5, 0x18]                                |     *((r5 + 0x18)) = r2;
    0x004b3de2 mov r0, r3                                        |     r0 = r3;
                                                                 |     if (r3 != 0) {
    0x004b3de4 cbz r3, 0x4b3df2                                  |         
    0x004b3de6 mov r0, r6                                        |         r0 = r6;
    0x004b3de8 add sp, 8                                         |         
    0x004b3dea pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x004b3dee bx r3                                             |         return uint32_t (*r3)() ();
                                                                 | label_17:
    0x004b3df0 movs r0, 0x28                                     |         r0 = 0x28;
                                                                 |     }
    0x004b3df2 add sp, 8                                         |     
    0x004b3df4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_21:
    0x004b3df8 ldr r2, [pc, 0x94]                                |     
    0x004b3dfa movs r3, 0x1e                                     |     r3 = 0x1e;
    0x004b3dfc ldr r1, [pc, 0x94]                                |     
    0x004b3dfe mov r0, r6                                        |     r0 = r6;
    0x004b3e00 add r2, pc                                        |     r2 = 0x967c94;
    0x004b3e02 add r1, pc                                        |     r1 = 0x967c9a;
    0x004b3e04 add sp, 8                                         |     
    0x004b3e06 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |     
    0x004b3e0a b.w 0x1dac00                                      |     void (*0x1dac00)() ();
                                                                 | label_24:
    0x004b3e0e lsls r3, r3, 0x12                                 |     r3 <<= 0x12;
    0x004b3e10 add.w r7, r6, 0x3000                              |     r7 = r6 + 0x3000;
    0x004b3e14 it mi                                             |     
                                                                 |     if (r3 >= r3) {
    0x004b3e16 ldrmi r3, [r7, 0xc4]                              |         r3 = *((r7 + 0xc4));
                                                                 |     }
    0x004b3e1a add.w r2, r6, 0x15000                             |     r2 = r6 + 0x15000;
    0x004b3e1e mov.w r1, 0                                       |     r1 = 0;
    0x004b3e22 strh.w r1, [r2, 0x52a]                            |     *((r2 + 0x52a)) = r1;
    0x004b3e26 itt mi                                            |     
                                                                 |     if (r3 >= r3) {
    0x004b3e28 addmi r3, 5                                       |         r3 += 5;
                                                                 |     }
                                                                 |     if (r3 >= r3) {
    0x004b3e2a strmi r3, [r7, 0xc4]                              |         *((r7 + 0xc4)) = r3;
                                                                 |     }
    0x004b3e2e cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x004b3e32 bne 0x4b3d68                                      |         goto label_8;
                                                                 |     }
                                                                 | label_25:
    0x004b3e34 add.w r4, r6, 0x17000                             |     r4 = r6 + 0x17000;
    0x004b3e38 movs r1, 4                                        |     r1 = 4;
    0x004b3e3a ldr r2, [pc, 0x5c]                                |     
    0x004b3e3c mov r0, r6                                        |     r0 = r6;
    0x004b3e3e ldr r3, [sb], 4                                   |     r3 = *(sb);
                                                                 |     sb += 4;
    0x004b3e42 str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x004b3e46 ldr.w r8, [r4, 0x1f8]                             |     r8 = *((r4 + 0x1f8));
    0x004b3e4a add r2, pc                                        |     r2 = 0x967ce8;
    0x004b3e4c str.w r1, [r7, 0xc0]                              |     __asm ("str.w r1, [r7, 0xc0]");
    0x004b3e50 ldr r1, [pc, 0x48]                                |     
    0x004b3e52 str.w r2, [r4, 0x1f8]                             |     __asm ("str.w r2, aav.0x000000ff");
    0x004b3e56 mov r2, sl                                        |     r2 = sl;
    0x004b3e58 add r1, pc                                        |     r1 = 0x967cf8;
    0x004b3e5a blx 0x1ede8c                                      |     fcn_001ede8c ();
    0x004b3e5e ldr r1, [pc, 0x40]                                |     
    0x004b3e60 mov r3, sb                                        |     r3 = sb;
    0x004b3e62 mov r2, sl                                        |     r2 = sl;
    0x004b3e64 mov r0, r6                                        |     r0 = r6;
    0x004b3e66 strd sl, sl, [sp]                                 |     __asm ("strd sl, sl, [sp]");
    0x004b3e6a add r1, pc                                        |     r1 = 0x967d10;
    0x004b3e6c blx 0x1e4f74                                      |     fcn_001e4f74 ();
    0x004b3e70 str.w r8, [r4, 0x1f8]                             |     __asm ("str.w r8, aav.0x000000ff");
    0x004b3e74 ldr r4, [r5, 0x18]                                |     r4 = *((r5 + 0x18));
    0x004b3e76 b 0x4b3da4                                        |     goto label_9;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x4b4954 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.soap_wsse_sign ()                        | void soap_wsse_sign (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x004b4954 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x004b4958 mov r8, r3                                |     r8 = r3;
    0x004b495a ldr r3, [pc, 0xa8]                        |     
    0x004b495c mov r6, r2                                |     r6 = r2;
    0x004b495e mov r7, r1                                |     r7 = r1;
    0x004b4960 mov r4, r0                                |     r4 = r0;
    0x004b4962 ldr r2, [pc, 0xa4]                        |     r2 = *(0x4b4a0a);
    0x004b4964 add r3, pc                                |     r3 = 0x96936e;
    0x004b4966 ldr r1, [r3, r2]                          |     r1 = *(0x96936e);
    0x004b4968 blx 0x1ee6d4                              |     r0 = fcn_001ee6d4 ();
    0x004b496c cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x004b496e beq 0x4b49ee                              |         goto label_1;
                                                         |     }
    0x004b4970 cmp r6, 0                                 |     
    0x004b4972 it ne                                     |     
                                                         |     if (r6 != 0) {
    0x004b4974 cmpne r7, 0                               |         __asm ("cmpne r7, 0");
                                                         |     }
                                                         |     if (r6 == 0) {
    0x004b4976 beq 0x4b49de                              |         goto label_2;
                                                         |     }
    0x004b4978 mov r5, r0                                |     r5 = r0;
    0x004b497a add.w r3, r4, 0x3000                      |     r3 = r4 + 0x3000;
    0x004b497e str r7, [r0]                              |     *(r0) = r7;
    0x004b4980 strd r6, r8, [r0, 4]                      |     __asm ("strd r6, r8, [r0, 4]");
    0x004b4984 ldr r0, [pc, 0x84]                        |     
    0x004b4986 ldr r1, [r3, 0x58]                        |     r1 = *((r3 + 0x58));
    0x004b4988 ldr r2, [r3, 0x60]                        |     r2 = *((r3 + 0x60));
    0x004b498a add r0, pc                                |     r0 = 0x96939a;
    0x004b498c cmp r1, r0                                |     
    0x004b498e it ne                                     |     
                                                         |     if (r1 != r0) {
    0x004b4990 strdne r1, r2, [r5, 0x1c]                 |         __asm ("strdne r1, r2, [r5, 0x1c]");
                                                         |     }
    0x004b4994 ldr r1, [pc, 0x78]                        |     
    0x004b4996 add r1, pc                                |     r1 = 0x9693aa;
    0x004b4998 cmp r2, r1                                |     
                                                         |     if (r2 != r1) {
    0x004b499a beq 0x4b49a4                              |         
    0x004b499c ldr r2, [pc, 0x74]                        |         
    0x004b499e str r1, [r3, 0x60]                        |         *((r3 + 0x60)) = r1;
    0x004b49a0 add r2, pc                                |         r2 = 0x9693b8;
    0x004b49a2 str r2, [r3, 0x58]                        |         *((r3 + 0x58)) = r2;
                                                         |     }
    0x004b49a4 ldr r3, [r4, 0xc]                         |     r3 = *((r4 + 0xc));
    0x004b49a6 lsls r2, r3, 0x15                         |     r2 = r3 << 0x15;
    0x004b49a8 itt mi                                    |     
                                                         |     if (r2 >= r3) {
    0x004b49aa orrmi r3, r3, 3                           |         r3 |= 3;
                                                         |     }
                                                         |     if (r2 < r3) {
    0x004b49ae str r3, [r4, 0xc]                         |         *((r4 + 0xc)) = r3;
                                                         |     }
                                                         |     if (r2 >= r3) {
    0x004b49b0 bpl 0x4b49ca                              |         goto label_3;
                                                         |     }
                                                         | label_0:
    0x004b49b2 ldr r4, [r5, 0x18]                        |     r4 = *((r5 + 0x18));
                                                         |     if (r4 == 0) {
    0x004b49b4 cbz r4, 0x4b49c2                          |         goto label_4;
                                                         |     }
                                                         |     do {
    0x004b49b6 mov r0, r4                                |         r0 = r4;
    0x004b49b8 ldr r4, [r4]                              |         r4 = *(r4);
    0x004b49ba blx 0x1bf08c                              |         fcn_001bf08c ();
    0x004b49be cmp r4, 0                                 |         
    0x004b49c0 bne 0x4b49b6                              |         
                                                         |     } while (r4 != 0);
                                                         | label_4:
    0x004b49c2 movs r0, 0                                |     r0 = 0;
    0x004b49c4 str r0, [r5, 0x18]                        |     *((r5 + 0x18)) = r0;
    0x004b49c6 pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | label_3:
    0x004b49ca and r2, r3, 3                             |     r2 = r3 & 3;
    0x004b49ce cmp r2, 2                                 |     
    0x004b49d0 ittt eq                                   |     
                                                         |     if (r2 == 2) {
    0x004b49d2 biceq r3, r3, 3                           |         __asm ("biceq r3, r3, 3");
                                                         |     }
                                                         |     if (r2 != 2) {
    0x004b49d6 orreq r3, r3, 1                           |         r3 |= 1;
                                                         |     }
                                                         |     if (r2 == 2) {
    0x004b49da str r3, [r4, 0xc]                         |         *((r4 + 0xc)) = r3;
                                                         |     }
    0x004b49dc b 0x4b49b2                                |     goto label_0;
                                                         | label_2:
    0x004b49de ldr r2, [pc, 0x38]                        |     
    0x004b49e0 mov r0, r4                                |     r0 = r4;
    0x004b49e2 movs r1, 2                                |     r1 = 2;
    0x004b49e4 pop.w {r4, r5, r6, r7, r8, lr}            |     
    0x004b49e8 add r2, pc                                |     r2 = 0x969406;
    0x004b49ea b.w 0x1d8740                              |     void (*0x1d8740)() ();
                                                         | label_1:
    0x004b49ee ldr r2, [pc, 0x2c]                        |     
    0x004b49f0 mov r0, r4                                |     r0 = r4;
    0x004b49f2 ldr r1, [pc, 0x2c]                        |     
    0x004b49f4 movs r3, 0x28                             |     r3 = 0x28;
    0x004b49f6 pop.w {r4, r5, r6, r7, r8, lr}            |     
    0x004b49fa add r2, pc                                |     r2 = 0x96941c;
    0x004b49fc add r1, pc                                |     r1 = 0x969422;
    0x004b49fe b.w 0x1dac00                              |     return void (*0x1dac00)() ();
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsoap_wsd.so @ 0x4b4a24 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.soap_wsse_sign_body ()                   | void soap_wsse_sign_body (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
                                                         |     do {
    0x001db3ac bx pc                                     |         return void (*pc)() ();
    0x004b4a24 push.w {r4, r5, r6, r7, r8, lr}           |         
    0x004b4a28 mov r4, r0                                |         r4 = r0;
    0x004b4a2a mov r5, r1                                |         r5 = r1;
    0x004b4a2c mov r6, r2                                |         r6 = r2;
    0x004b4a2e mov r7, r3                                |         r7 = r3;
    0x004b4a30 blx 0x1d8778                              |         fcn_001d8778 ();
    0x004b4a34 ldr r0, [r4, 0xc]                         |         r0 = *((r4 + 0xc));
    0x004b4a36 mov r3, r7                                |         r3 = r7;
    0x004b4a38 mov r2, r6                                |         r2 = r6;
    0x004b4a3a mov r1, r5                                |         r1 = r5;
    0x004b4a3c orr r0, r0, 0x80000000                    |         r0 |= 0x80000000;
    0x004b4a40 str r0, [r4, 0xc]                         |         *((r4 + 0xc)) = r0;
    0x004b4a42 mov r0, r4                                |         r0 = r4;
    0x004b4a44 pop.w {r4, r5, r6, r7, r8, lr}            |         
    0x004b4a48 b.w 0x1db3ac                              |         
                                                         |     } while (1);
                                                         | }

[*] Function sprintf used 1 times libsoap_wsd.so