[*] Binary protection state of xmlwf

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


[*] Function fprintf tear down of xmlwf

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x12508 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012508 ()                                  | void fcn_00012508 (int32_t arg1, int32_t arg2) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00012508 push {r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0001250c ldr r8, [pc, 0xf8]                            |     r8 = *(0x12608);
    0x00012510 ldr r4, [r0]                                  |     r4 = *(r0);
    0x00012514 ldr sb, [pc, 0xf4]                            |     sb = "&lt;";
    0x00012518 ldr sl, [pc, 0xf4]                            |     sl = "_gt_";
    0x0001251c mov r6, r1                                    |     r6 = r1;
    0x00012520 mov r7, r2                                    |     r7 = r2;
    0x00012524 mov r5, r1                                    |     r5 = r1;
                                                             | label_0:
    0x00012528 add r3, r6, r7                                |     r3 = r6 + r7;
    0x0001252c sub r3, r3, r5                                |     r3 -= r5;
    0x00012530 cmp r3, 0                                     |     
                                                             |     if (r3 > 0) {
    0x00012534 pople {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             |     }
    0x00012538 ldrb r0, [r5]                                 |     r0 = *(r5);
    0x0001253c cmp r0, 0x22                                  |     
                                                             |     if (r0 == 0x22) {
    0x00012540 beq 0x125d4                                   |         goto label_3;
                                                             |     }
                                                             |     if (r0 > 0x22) {
    0x00012544 bhi 0x12590                                   |         goto label_4;
                                                             |     }
    0x00012548 cmp r0, 9                                     |     
                                                             |     if (r0 <= 9) {
    0x0001254c blo 0x12560                                   |         goto label_5;
                                                             |     }
    0x00012550 cmp r0, 0xa                                   |     
                                                             |     if (r0 < 0xa) {
    0x00012554 bls 0x125e0                                   |         goto label_6;
                                                             |     }
    0x00012558 cmp r0, 0xd                                   |     
                                                             |     if (r0 == 0xd) {
    0x0001255c beq 0x125e0                                   |         goto label_6;
                                                             |     }
                                                             |     do {
                                                             | label_5:
    0x00012560 ldr r3, [r4, 0x34]                            |         r3 = *((r4 + 0x34));
    0x00012564 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00012568 beq 0x12600                                   |             goto label_7;
                                                             |         }
    0x0001256c ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x00012570 ldr r2, [r4, 0x1c]                            |         r2 = *((r4 + 0x1c));
    0x00012574 cmp r3, r2                                    |         
                                                             |         if (r3 >= r2) {
    0x00012578 bhs 0x125f4                                   |             goto label_8;
                                                             |         }
    0x0001257c add r2, r3, 1                                 |         r2 = r3 + 1;
    0x00012580 str r2, [r4, 0x10]                            |         *((r4 + 0x10)) = r2;
    0x00012584 ldrb r2, [r5]                                 |         r2 = *(r5);
    0x00012588 strb r2, [r3]                                 |         *(r3) = r2;
    0x0001258c b 0x125b4                                     |         goto label_2;
                                                             | label_4:
    0x00012590 cmp r0, 0x3c                                  |         
                                                             |         if (r0 == 0x3c) {
    0x00012594 beq 0x125bc                                   |             goto label_9;
                                                             |         }
    0x00012598 cmp r0, 0x3e                                  |         
                                                             |         if (r0 == 0x3e) {
    0x0001259c beq 0x125c8                                   |             goto label_10;
                                                             |         }
    0x000125a0 cmp r0, 0x26                                  |         
                                                             |         if (r0 != 0x26) {
    0x000125a4 moveq r1, r4                                  |             r1 = r4;
                                                             |         }
                                                             |         if (r0 != 0x26) {
    0x000125a8 ldreq r0, [pc, 0x68]                          |             r0 = "&amp;";
                                                             |         }
    0x000125ac bne 0x12560                                   |         
                                                             |     } while (r0 != 0x26);
                                                             |     do {
                                                             | label_1:
    0x000125b0 bl 0x114c8                                    |         fputs (r0, r1);
                                                             | label_2:
    0x000125b4 add r5, r5, 1                                 |         r5++;
    0x000125b8 b 0x12528                                     |         goto label_0;
                                                             | label_9:
    0x000125bc mov r1, r4                                    |         r1 = r4;
    0x000125c0 mov r0, sb                                    |         r0 = sb;
    0x000125c4 b 0x125b0                                     |         
                                                             |     } while (1);
                                                             | label_10:
    0x000125c8 mov r1, r4                                    |     r1 = r4;
    0x000125cc mov r0, sl                                    |     r0 = sl;
    0x000125d0 b 0x125b0                                     |     goto label_1;
                                                             | label_3:
    0x000125d4 mov r1, r4                                    |     r1 = r4;
    0x000125d8 mov r0, r8                                    |     r0 = r8;
    0x000125dc b 0x125b0                                     |     goto label_1;
                                                             | label_6:
    0x000125e0 mov r2, r0                                    |     r2 = r0;
    0x000125e4 ldr r1, [pc, 0x30]                            |     r1 = "&amp;";
    0x000125e8 mov r0, r4                                    |     r0 = r4;
    0x000125ec bl 0x1145c                                    |     fprintf (r0, "&amp;", r2)
    0x000125f0 b 0x125b4                                     |     goto label_2;
                                                             | label_8:
    0x000125f4 mov r1, r4                                    |     r1 = r4;
    0x000125f8 bl 0x11450                                    |     fputc_unlocked ();
    0x000125fc b 0x125b4                                     |     goto label_2;
                                                             | label_7:
    0x00012600 mov r1, r4                                    |     r1 = r4;
    0x00012604 bl 0x114a4                                    |     fputc (r0, r1);
    0x00012608 b 0x125b4                                     |     goto label_2;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x126e8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000126e8 ()                      | void fcn_000126e8 (int32_t arg1, int32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000126e8 push {r4, r5, r6, r7, r8, lr}     |     
    0x000126ec ldr r3, [r0, 0x34]                |     r3 = *((r0 + 0x34));
    0x000126f0 mov r4, r0                        |     r4 = r0;
    0x000126f4 cmp r3, 0                         |     
    0x000126f8 mov r5, r1                        |     r5 = r1;
                                                 |     if (r3 == 0) {
    0x000126fc beq 0x127ac                       |         goto label_4;
                                                 |     }
    0x00012700 ldr r3, [r0, 0x10]                |     r3 = *((r0 + 0x10));
    0x00012704 ldr r2, [r0, 0x1c]                |     r2 = *((r0 + 0x1c));
    0x00012708 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0001270c bhs 0x1279c                       |         goto label_5;
                                                 |     }
    0x00012710 add r2, r3, 1                     |     r2 = r3 + 1;
    0x00012714 str r2, [r0, 0x10]                |     *((r0 + 0x10)) = r2;
    0x00012718 mov r2, 0x3d                      |     r2 = 0x3d;
    0x0001271c strb r2, [r3]                     |     *(r3) = r2;
                                                 | label_0:
    0x00012720 ldr r3, [r4, 0x34]                |     r3 = *((r4 + 0x34));
    0x00012724 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x00012728 beq 0x127cc                       |         goto label_6;
                                                 |     }
    0x0001272c ldr r3, [r4, 0x10]                |     r3 = *((r4 + 0x10));
    0x00012730 ldr r2, [r4, 0x1c]                |     r2 = *((r4 + 0x1c));
    0x00012734 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x00012738 bhs 0x127bc                       |         goto label_7;
                                                 |     }
    0x0001273c add r2, r3, 1                     |     r2 = r3 + 1;
    0x00012740 str r2, [r4, 0x10]                |     *((r4 + 0x10)) = r2;
    0x00012744 mov r2, 0x22                      |     r2 = 0x22;
    0x00012748 strb r2, [r3]                     |     *(r3) = r2;
                                                 | label_1:
    0x0001274c cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x00012750 beq 0x127dc                       |         goto label_8;
                                                 |     }
    0x00012754 ldr r6, [pc, 0x180]               |     r6 = *(0x128d8);
    0x00012758 ldr r7, [pc, 0x180]               |     r7 = "__d_";
    0x0001275c ldr r8, [pc, 0x180]               |     r8 = "&amp;";
    0x00012760 sub r5, r5, 1                     |     r5--;
                                                 |     do {
                                                 | label_2:
    0x00012764 ldrb r0, [r5, 1]!                 |         r0 = *((r5 += 1));
    0x00012768 cmp r0, 0xd                       |         
                                                 |         if (r0 != 0xd) {
    0x0001276c beq 0x12788                       |             
                                                 |             if (r0 > 0xd) {
    0x00012770 bhi 0x127f0                       |                 goto label_9;
                                                 |             }
    0x00012774 cmp r0, 1                         |             
                                                 |             if (r0 < 1) {
    0x00012778 bls 0x1285c                       |                 goto label_10;
                                                 |             }
    0x0001277c sub r3, r0, 9                     |             r3 = r0 - 9;
    0x00012780 cmp r3, 1                         |             
                                                 |             if (r3 > 1) {
    0x00012784 bhi 0x1280c                       |                 goto label_11;
                                                 |             }
                                                 |         }
    0x00012788 mov r2, r0                        |         r2 = r0;
    0x0001278c mov r1, r6                        |         r1 = r6;
    0x00012790 mov r0, r4                        |         r0 = r4;
    0x00012794 bl 0x1145c                        |         fprintf (r0, r1, r2)
    0x00012798 b 0x12764                         |         
                                                 |     } while (1);
                                                 | label_5:
    0x0001279c mov r1, r0                        |     r1 = r0;
    0x000127a0 mov r0, 0x3d                      |     r0 = 0x3d;
    0x000127a4 bl 0x11450                        |     fputc_unlocked ();
    0x000127a8 b 0x12720                         |     goto label_0;
                                                 | label_4:
    0x000127ac mov r1, r0                        |     r1 = r0;
    0x000127b0 mov r0, 0x3d                      |     r0 = 0x3d;
    0x000127b4 bl 0x114a4                        |     fputc (r0, r1);
    0x000127b8 b 0x12720                         |     goto label_0;
                                                 | label_7:
    0x000127bc mov r1, r4                        |     r1 = r4;
    0x000127c0 mov r0, 0x22                      |     r0 = 0x22;
    0x000127c4 bl 0x11450                        |     fputc_unlocked ();
    0x000127c8 b 0x1274c                         |     goto label_1;
                                                 | label_6:
    0x000127cc mov r1, r4                        |     r1 = r4;
    0x000127d0 mov r0, 0x22                      |     r0 = 0x22;
    0x000127d4 bl 0x114a4                        |     fputc (r0, r1);
    0x000127d8 b 0x1274c                         |     goto label_1;
                                                 | label_8:
    0x000127dc ldr r3, [pc, 0x104]               |     r3 = "&lt;";
    0x000127e0 mov r2, 0x71                      |     r2 = 0x71;
    0x000127e4 ldr r1, [pc, 0x100]               |     r1 = "attributeValue";
    0x000127e8 ldr r0, [pc, 0x100]               |     r0 = "xmlwf.c";
    0x000127ec bl 0x114d4                        |     r0 = assert ();
                                                 | label_9:
    0x000127f0 cmp r0, 0x26                      |     
                                                 |     if (r0 == 0x26) {
    0x000127f4 beq 0x128ac                       |         goto label_12;
                                                 |     }
                                                 |     if (r0 > 0x26) {
    0x000127f8 bhi 0x1283c                       |         goto label_13;
                                                 |     }
    0x000127fc cmp r0, 0x22                      |     
                                                 |     if (r0 != 0x22) {
    0x00012800 moveq r1, r4                      |         r1 = r4;
                                                 |     }
                                                 |     if (r0 != 0x22) {
    0x00012804 ldreq r0, [pc, 0xe8]              |         r0 = "&quot;";
                                                 |     }
                                                 |     if (r0 == 0x22) {
    0x00012808 beq 0x12854                       |         goto label_3;
                                                 |     }
                                                 |     do {
                                                 | label_11:
    0x0001280c ldr r3, [r4, 0x34]                |         r3 = *((r4 + 0x34));
    0x00012810 cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x00012814 beq 0x128d0                       |             goto label_14;
                                                 |         }
    0x00012818 ldr r3, [r4, 0x10]                |         r3 = *((r4 + 0x10));
    0x0001281c ldr r2, [r4, 0x1c]                |         r2 = *((r4 + 0x1c));
    0x00012820 cmp r3, r2                        |         
                                                 |         if (r3 >= r2) {
    0x00012824 bhs 0x128c4                       |             goto label_15;
                                                 |         }
    0x00012828 add r2, r3, 1                     |         r2 = r3 + 1;
    0x0001282c str r2, [r4, 0x10]                |         *((r4 + 0x10)) = r2;
    0x00012830 ldrb r2, [r5]                     |         r2 = *(r5);
    0x00012834 strb r2, [r3]                     |         *(r3) = r2;
    0x00012838 b 0x12764                         |         goto label_2;
                                                 | label_13:
    0x0001283c cmp r0, 0x3c                      |         
                                                 |         if (r0 == 0x3c) {
    0x00012840 beq 0x128b8                       |             goto label_16;
                                                 |         }
    0x00012844 cmp r0, 0x3e                      |         
                                                 |         if (r0 != 0x3e) {
    0x00012848 moveq r1, r4                      |             r1 = r4;
                                                 |         }
                                                 |         if (r0 != 0x3e) {
    0x0001284c ldreq r0, [pc, 0xa4]              |             r0 = "_gt_";
                                                 |         }
    0x00012850 bne 0x1280c                       |         
                                                 |     } while (r0 != 0x3e);
                                                 |     do {
                                                 | label_3:
    0x00012854 bl 0x114c8                        |         fputs (r0, r1);
    0x00012858 b 0x12764                         |         goto label_2;
                                                 | label_10:
    0x0001285c ldr r3, [r4, 0x34]                |         r3 = *((r4 + 0x34));
    0x00012860 cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x00012864 beq 0x1289c                       |             
    0x00012868 ldr r3, [r4, 0x10]                |             r3 = *((r4 + 0x10));
    0x0001286c ldr r2, [r4, 0x1c]                |             r2 = *((r4 + 0x1c));
    0x00012870 cmp r3, r2                        |             
                                                 |             if (r3 < r2) {
    0x00012874 bhs 0x1288c                       |                 
    0x00012878 add r2, r3, 1                     |                 r2 = r3 + 1;
    0x0001287c str r2, [r4, 0x10]                |                 *((r4 + 0x10)) = r2;
    0x00012880 mov r2, 0x22                      |                 r2 = 0x22;
    0x00012884 strb r2, [r3]                     |                 *(r3) = r2;
    0x00012888 pop {r4, r5, r6, r7, r8, pc}      |                 
                                                 |             }
    0x0001288c mov r1, r4                        |             r1 = r4;
    0x00012890 mov r0, 0x22                      |             r0 = 0x22;
    0x00012894 pop {r4, r5, r6, r7, r8, lr}      |             
    0x00012898 b 0x11450                         |             void (*0x11450)() ();
                                                 |         }
    0x0001289c mov r1, r4                        |         r1 = r4;
    0x000128a0 mov r0, 0x22                      |         r0 = 0x22;
    0x000128a4 pop {r4, r5, r6, r7, r8, lr}      |         
    0x000128a8 b 0x114a4                         |         void (*0x114a4)() ();
                                                 | label_12:
    0x000128ac mov r1, r4                        |         r1 = r4;
    0x000128b0 mov r0, r7                        |         r0 = r7;
    0x000128b4 b 0x12854                         |         
                                                 |     } while (1);
                                                 | label_16:
    0x000128b8 mov r1, r4                        |     r1 = r4;
    0x000128bc mov r0, r8                        |     r0 = r8;
    0x000128c0 b 0x12854                         |     goto label_3;
                                                 | label_15:
    0x000128c4 mov r1, r4                        |     r1 = r4;
    0x000128c8 bl 0x11450                        |     fputc_unlocked ();
    0x000128cc b 0x12764                         |     goto label_2;
                                                 | label_14:
    0x000128d0 mov r1, r4                        |     r1 = r4;
    0x000128d4 bl 0x114a4                        |     fputc (r0, r1);
    0x000128d8 b 0x12764                         |     goto label_2;
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x12ca4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012ca4 ()                                  | void fcn_00012ca4 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
    0x00012ca4 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x00012ca8 mov r4, r0                                    |     r4 = r0;
    0x00012cac bl 0x113c0                                    |     XML_GetBase ();
    0x00012cb0 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00012cb4 ldr r5, [r3]                                  |     r5 = *(r3);
    0x00012cb8 subs r2, r0, 0                                |     r2 = r0 - 0;
                                                             |     if (r2 != r0) {
    0x00012cbc beq 0x12ccc                                   |         
    0x00012cc0 ldr r1, [pc, 0x54]                            |         r1 = *(0x12d18);
    0x00012cc4 mov r0, r5                                    |         r0 = r5;
    0x00012cc8 bl 0x1145c                                    |         fprintf (r0, r1)
                                                             |     }
    0x00012ccc mov r0, r4                                    |     r0 = r4;
    0x00012cd0 bl 0x11360                                    |     r0 = XML_GetCurrentByteIndex ();
    0x00012cd4 mov r6, r0                                    |     r6 = r0;
    0x00012cd8 mov r0, r4                                    |     r0 = r4;
    0x00012cdc bl 0x11570                                    |     r0 = XML_GetCurrentByteCount ();
    0x00012ce0 mov r7, r0                                    |     r7 = r0;
    0x00012ce4 mov r0, r4                                    |     r0 = r4;
    0x00012ce8 bl 0x11468                                    |     r0 = XML_GetCurrentLineNumber ();
    0x00012cec mov r8, r0                                    |     r8 = r0;
    0x00012cf0 mov r0, r4                                    |     r0 = r4;
    0x00012cf4 bl 0x112b8                                    |     XML_GetCurrentColumnNumber ();
    0x00012cf8 str r8, [sp]                                  |     *(sp) = r8;
    0x00012cfc mov r3, r7                                    |     r3 = r7;
    0x00012d00 mov r2, r6                                    |     r2 = r6;
    0x00012d04 ldr r1, [pc, 0x14]                            |     r1 = "uri__s_";
    0x00012d08 str r0, [sp, 4]                               |     var_4h = r0;
    0x00012d0c mov r0, r5                                    |     r0 = r5;
    0x00012d10 bl 0x1145c                                    |     fprintf (r0, "uri__s_", r2, r3)
    0x00012d14 add sp, sp, 8                                 |     
    0x00012d18 pop {r4, r5, r6, r7, r8, pc}                  |     
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x137e4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000137e4 ()                              | void fcn_000137e4 (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000137e4 push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x000137e8 mov r4, r1                                |     r4 = r1;
    0x000137ec mov r5, r0                                |     r5 = r0;
    0x000137f0 bl 0x114e0                                |     r0 = XML_GetErrorCode ();
    0x000137f4 mov r6, r0                                |     r6 = r0;
    0x000137f8 bl 0x113b4                                |     r0 = XML_ErrorString ();
    0x000137fc subs r8, r0, 0                            |     r8 = r0 - 0;
                                                         |     if (r8 != r0) {
    0x00013800 beq 0x13840                               |         
    0x00013804 ldr r3, [pc, 0x54]                        |         r3 = *(0x1385c);
    0x00013808 mov r0, r5                                |         r0 = r5;
    0x0001380c ldr r6, [r3]                              |         r6 = *(0x1385c);
    0x00013810 bl 0x11468                                |         r0 = XML_GetCurrentLineNumber ();
    0x00013814 mov r7, r0                                |         r7 = r0;
    0x00013818 mov r0, r5                                |         r0 = r5;
    0x0001381c bl 0x112b8                                |         XML_GetCurrentColumnNumber ();
    0x00013820 mov r3, r7                                |         r3 = r7;
    0x00013824 mov r2, r4                                |         r2 = r4;
    0x00013828 ldr r1, [pc, 0x34]                        |         r1 = stdout;
    0x0001382c stm sp, {r0, r8}                          |         *(sp) = r0;
                                                         |         *((sp + 4)) = r8;
    0x00013830 mov r0, r6                                |         r0 = r6;
    0x00013834 bl 0x1145c                                |         fprintf (r0, r1, r2, r3)
    0x00013838 add sp, sp, 8                             |         
    0x0001383c pop {r4, r5, r6, r7, r8, pc}              |         
                                                         |     }
    0x00013840 ldr r0, [pc, 0x20]                        |     
    0x00013844 ldr r1, [pc, 0x20]                        |     r1 = stderr;
    0x00013848 ldr r0, [r0]                              |     r0 = "_s:_lu:_lu:__s";
    0x0001384c mov r3, r6                                |     r3 = r6;
    0x00013850 mov r2, r4                                |     r2 = r4;
    0x00013854 add sp, sp, 8                             |     
    0x00013858 pop {r4, r5, r6, r7, r8, lr}              |     
    0x0001385c b 0x1145c                                 |     return void (*0x1145c)() ();
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x138bc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000138bc ()                      | void fcn_000138bc (int32_t arg1, int32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000138bc push {r4, r5, r6, r7, r8, lr}     |     
    0x000138c0 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x000138c4 mov r7, r1                        |     r7 = r1;
                                                 |     if (r4 == r0) {
    0x000138c8 beq 0x138ec                       |         goto label_3;
                                                 |     }
    0x000138cc mov r1, 0                         |     r1 = 0;
    0x000138d0 bl 0x11534                        |     r0 = open64 ();
    0x000138d4 subs r6, r0, 0                    |     r6 = r0 - 0;
                                                 |     if (r6 >= r0) {
    0x000138d8 bge 0x138f0                       |         goto label_2;
                                                 |     }
    0x000138dc mov r0, r4                        |     r0 = r4;
    0x000138e0 bl 0x11408                        |     perror (r0);
                                                 |     do {
                                                 | label_0:
    0x000138e4 mov r0, 0                         |         r0 = 0;
    0x000138e8 pop {r4, r5, r6, r7, r8, pc}      |         
                                                 | label_3:
    0x000138ec mov r6, r4                        |         r6 = r4;
                                                 | label_2:
    0x000138f0 mov r1, 0x2000                    |         r1 = 0x2000;
    0x000138f4 mov r0, r7                        |         r0 = r7;
    0x000138f8 bl 0x11354                        |         r0 = XML_GetBuffer ();
    0x000138fc subs r1, r0, 0                    |         r1 = r0 - 0;
                                                 |         if (r1 != r0) {
    0x00013900 bne 0x13934                       |             goto label_4;
                                                 |         }
    0x00013904 cmp r4, 0                         |         
                                                 |         if (r4 != 0) {
    0x00013908 beq 0x13914                       |             
    0x0001390c mov r0, r6                        |             r0 = r6;
    0x00013910 bl 0x11474                        |             close (r0);
                                                 |         }
    0x00013914 ldr r3, [pc, 0xa4]                |         r3 = *(0x139bc);
    0x00013918 cmp r4, 0                         |         
    0x0001391c ldr r2, [pc, 0xa0]                |         r2 = stderr;
    0x00013920 ldr r1, [pc, 0xa0]                |         r1 = "xmlwf";
                                                 |         if (r4 == 0) {
    0x00013924 movne r2, r4                      |             r2 = r4;
                                                 |         }
    0x00013928 ldr r0, [r3]                      |         r0 = *(0x139bc);
    0x0001392c bl 0x1145c                        |         fprintf (r0, "xmlwf", r2, r3, r4)
    0x00013930 b 0x138e4                         |         
                                                 |     } while (1);
                                                 | label_4:
    0x00013934 mov r2, 0x2000                    |     r2 = 0x2000;
    0x00013938 mov r0, r6                        |     r0 = r6;
    0x0001393c bl 0x1148c                        |     r0 = read (r0, r1, r2);
    0x00013940 subs r8, r0, 0                    |     r8 = r0 - 0;
                                                 |     if (r8 >= r0) {
    0x00013944 bge 0x1396c                       |         goto label_5;
                                                 |     }
    0x00013948 cmp r4, 0                         |     
    0x0001394c ldr r0, [pc, 0x78]                |     r0 = "_s:_out_of_memory";
                                                 |     if (r4 == 0) {
    0x00013950 movne r0, r4                      |         r0 = r4;
                                                 |     }
    0x00013954 bl 0x11408                        |     perror (r0);
                                                 | label_1:
    0x00013958 cmp r4, 0                         |     
                                                 |     if (r4 == 0) {
    0x0001395c beq 0x138e4                       |         goto label_0;
                                                 |     }
    0x00013960 mov r0, r6                        |     r0 = r6;
    0x00013964 bl 0x11474                        |     close (r0);
    0x00013968 b 0x138e4                         |     goto label_0;
                                                 |     if (r4 != 0) {
                                                 | label_5:
    0x0001396c moveq r2, 1                       |         r2 = 1;
                                                 |     }
                                                 |     if (r4 == 0) {
    0x00013970 movne r2, 0                       |         r2 = 0;
                                                 |     }
    0x00013974 mov r1, r8                        |     r1 = r8;
    0x00013978 mov r0, r7                        |     r0 = r7;
    0x0001397c bl 0x1154c                        |     r0 = XML_ParseBuffer ();
    0x00013980 subs r5, r0, 0                    |     r5 = r0 - 0;
                                                 |     if (r5 == r0) {
    0x00013984 bne 0x139a0                       |         
    0x00013988 cmp r4, 0                         |         
    0x0001398c ldr r1, [pc, 0x38]                |         r1 = "_s:_out_of_memory";
    0x00013990 mov r0, r7                        |         r0 = r7;
                                                 |         if (r4 == 0) {
    0x00013994 movne r1, r4                      |             r1 = r4;
                                                 |         }
    0x00013998 bl 0x137e4                        |         fcn_000137e4 (r0, r1);
    0x0001399c b 0x13958                         |         goto label_1;
                                                 |     }
    0x000139a0 cmp r8, 0                         |     
                                                 |     if (r8 != 0) {
    0x000139a4 bne 0x138f0                       |         goto label_2;
                                                 |     }
    0x000139a8 cmp r4, 0                         |     
                                                 |     if (r4 != 0) {
    0x000139ac beq 0x139b8                       |         
    0x000139b0 mov r0, r6                        |         r0 = r6;
    0x000139b4 bl 0x11474                        |         close (r0);
                                                 |     }
    0x000139b8 mov r0, 1                         |     r0 = 1;
    0x000139bc pop {r4, r5, r6, r7, r8, pc}      |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x13b8c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00013b8c ()                      | void fcn_00013b8c (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_10h;
                                                 |     int32_t var_14h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00013b8c push {r4, r5, r6, r7, lr}         |     
    0x00013b90 sub sp, sp, 0x14                  |     
    0x00013b94 mov r5, r0                        |     r5 = r0;
    0x00013b98 mov r4, r1                        |     r4 = r1;
    0x00013b9c mov r7, r2                        |     r7 = r2;
    0x00013ba0 bl 0x114b0                        |     r0 = XML_SetBase ();
    0x00013ba4 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00013ba8 bne 0x13bc8                       |         
    0x00013bac ldr r3, [pc, 0xa0]                |         r3 = *(0x13c50);
    0x00013bb0 mov r2, r4                        |         r2 = r4;
    0x00013bb4 ldr r1, [pc, 0x9c]                |         r1 = stderr;
    0x00013bb8 ldr r0, [r3]                      |         r0 = *(0x13c50);
    0x00013bbc bl 0x1145c                        |         fprintf (r0, r1, r2, r3)
    0x00013bc0 mov r0, 1                         |         r0 = 1;
    0x00013bc4 bl 0x11444                        |         exit (r0);
                                                 |     }
    0x00013bc8 tst r7, 2                         |     
    0x00013bcc and r6, r7, 1                     |     r6 = r7 & 1;
                                                 |     if ((r7 & 2) != 0) {
    0x00013bd0 beq 0x13bec                       |         
    0x00013bd4 ldr r3, [pc, 0x80]                |         r3 = "_s:_out_of_memory";
    0x00013bd8 cmp r6, 0                         |         
    0x00013bdc ldr r1, [pc, 0x7c]                |         r1 = *(0x13c5c);
    0x00013be0 mov r0, r5                        |         r0 = r5;
                                                 |         if (r6 == 0) {
    0x00013be4 movne r1, r3                      |             r1 = r3;
                                                 |         }
    0x00013be8 bl 0x11564                        |         XML_SetExternalEntityRefHandler ();
                                                 |     }
    0x00013bec cmp r6, 0                         |     
                                                 |     if (r6 == 0) {
    0x00013bf0 beq 0x13c40                       |         goto label_0;
                                                 |     }
    0x00013bf4 add r2, sp, 0x10                  |     r2 += var_10h;
    0x00013bf8 add r3, sp, 4                     |     r3 += var_4h;
    0x00013bfc str r5, [r2, -8]!                 |     *((r2 -= 8)) = r5;
    0x00013c00 ldr r1, [pc, 0x5c]                |     r1 = *(0x13c60);
    0x00013c04 mov r0, r4                        |     r0 = r4;
    0x00013c08 str r3, [sp, 0xc]                 |     var_ch = r3;
    0x00013c0c bl 0x13c7c                        |     r0 = fcn_00013c7c (r0, r1);
    0x00013c10 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00013c14 beq 0x13c4c                       |         goto label_1;
                                                 |     }
    0x00013c18 cmp r0, 2                         |     
    0x00013c1c beq 0x13c2c                       |     
                                                 |     while (1) {
    0x00013c20 ldr r0, [sp, 4]                   |         r0 = var_4h;
    0x00013c24 add sp, sp, 0x14                  |         
    0x00013c28 pop {r4, r5, r6, r7, pc}          |         
    0x00013c2c ldr r3, [pc, 0x20]                |         r3 = *(0x13c50);
    0x00013c30 mov r2, r4                        |         r2 = r4;
    0x00013c34 ldr r1, [pc, 0x2c]                |         r1 = *(0x13c64);
    0x00013c38 ldr r0, [r3]                      |         r0 = *(0x13c50);
    0x00013c3c bl 0x1145c                        |         fprintf (r0, r1, r2, r3)
                                                 | label_0:
    0x00013c40 mov r1, r5                        |         r1 = r5;
    0x00013c44 mov r0, r4                        |         r0 = r4;
    0x00013c48 bl 0x138bc                        |         fcn_000138bc (r0, r1);
                                                 | label_1:
    0x00013c4c str r0, [sp, 4]                   |         var_4h = r0;
    0x00013c50 b 0x13c20                         |         
                                                 |     }
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x13c7c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00013c7c ()                                  | void fcn_00013c7c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_40h_2;
                                                             |     int32_t var_78h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00013c7c push {r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x00013c80 mov r8, r1                                    |     r8 = r1;
    0x00013c84 sub sp, sp, 0x78                              |     
    0x00013c88 mov r1, 0                                     |     r1 = 0;
    0x00013c8c mov r5, r0                                    |     r5 = r0;
    0x00013c90 mov sb, r2                                    |     sb = r2;
    0x00013c94 bl 0x11534                                    |     r0 = open64 ();
    0x00013c98 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 >= r0) {
    0x00013c9c bge 0x13cb0                                   |         goto label_3;
                                                             |     }
    0x00013ca0 mov r0, r5                                    |     r0 = r5;
    0x00013ca4 bl 0x11408                                    |     perror (r0);
                                                             |     do {
                                                             | label_0:
    0x00013ca8 mov r0, 0                                     |         r0 = 0;
    0x00013cac b 0x13d20                                     |         goto label_4;
                                                             | label_3:
    0x00013cb0 add r1, sp, 0x10                              |         r1 += var_10h;
    0x00013cb4 bl 0x11528                                    |         r0 = fstat64 ();
    0x00013cb8 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x00013cbc bge 0x13cd4                                   |             goto label_5;
                                                             |         }
                                                             | label_1:
    0x00013cc0 mov r0, r5                                    |         r0 = r5;
    0x00013cc4 bl 0x11408                                    |         perror (r0);
    0x00013cc8 mov r0, r4                                    |         r0 = r4;
    0x00013ccc bl 0x11474                                    |         close (r0);
    0x00013cd0 b 0x13ca8                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x00013cd4 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00013cd8 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00013cdc cmp r3, 0x8000                                |     
                                                             |     if (r3 != 0x8000) {
    0x00013ce0 beq 0x13d04                                   |         
    0x00013ce4 mov r0, r4                                    |         r0 = r4;
    0x00013ce8 bl 0x11474                                    |         close (r0);
    0x00013cec ldr r3, [pc, 0xb0]                            |         r3 = *(0x13da0);
    0x00013cf0 mov r2, r5                                    |         r2 = r5;
    0x00013cf4 ldr r1, [pc, 0xac]                            |         r1 = stderr;
    0x00013cf8 ldr r0, [r3]                                  |         r0 = *(0x13da0);
    0x00013cfc bl 0x1145c                                    |         fprintf (r0, r1, r2, r3)
    0x00013d00 b 0x13ca8                                     |         goto label_0;
                                                             |     }
    0x00013d04 ldrd r6, r7, [sp, 0x40]                       |     __asm ("ldrd r6, r7, [var_40h]");
    0x00013d08 cmp r6, 0x40000001                            |     
    0x00013d0c sbcs r3, r7, 0                                |     __asm ("sbcs r3, r7, 0");
                                                             |     if (r6 < 0x40000001) {
    0x00013d10 blt 0x13d28                                   |         goto label_6;
                                                             |     }
    0x00013d14 mov r0, r4                                    |     r0 = r4;
    0x00013d18 bl 0x11474                                    |     close (r0);
    0x00013d1c mov r0, 2                                     |     r0 = 2;
                                                             |     do {
                                                             | label_4:
    0x00013d20 add sp, sp, 0x78                              |         
    0x00013d24 pop {r4, r5, r6, r7, r8, sb, sl, pc}          |         
                                                             | label_6:
    0x00013d28 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x00013d2c bne 0x13d54                                   |             goto label_7;
                                                             |         }
    0x00013d30 mov r3, sb                                    |         r3 = sb;
    0x00013d34 mov r2, r5                                    |         r2 = r5;
    0x00013d38 mov r1, r6                                    |         r1 = r6;
    0x00013d3c ldr r0, [pc, 0x68]                            |         r0 = "%s: not a regular file\n";
    0x00013d40 blx r8                                        |         uint32_t (*r8)(char*, uint32_t, uint32_t, uint32_t) ("%s: not a regular file\n", r1, r2, r3);
                                                             | label_2:
    0x00013d44 mov r0, r4                                    |         r0 = r4;
    0x00013d48 bl 0x11474                                    |         close (r0);
    0x00013d4c mov r0, 1                                     |         r0 = 1;
    0x00013d50 b 0x13d20                                     |         
                                                             |     } while (1);
                                                             | label_7:
    0x00013d54 mov r2, 0                                     |     r2 = 0;
    0x00013d58 mov r3, 0                                     |     r3 = 0;
    0x00013d5c strd r2, r3, [sp, 8]                          |     __asm ("strd r2, r3, [var_8h]");
    0x00013d60 str r4, [sp]                                  |     *(sp) = r4;
    0x00013d64 mov r3, 2                                     |     r3 = 2;
    0x00013d68 mov r2, 1                                     |     r2 = 1;
    0x00013d6c mov r1, r6                                    |     r1 = r6;
    0x00013d70 mov r0, 0                                     |     r0 = 0;
    0x00013d74 bl 0x1151c                                    |     r0 = mmap64 ();
    0x00013d78 cmn r0, 1                                     |     
    0x00013d7c mov sl, r0                                    |     sl = r0;
                                                             |     if (r0 == 1) {
    0x00013d80 beq 0x13cc0                                   |         goto label_1;
                                                             |     }
    0x00013d84 mov r1, r6                                    |     r1 = r6;
    0x00013d88 mov r3, sb                                    |     r3 = sb;
    0x00013d8c mov r2, r5                                    |     r2 = r5;
    0x00013d90 blx r8                                        |     uint32_t (*r8)(uint32_t, uint32_t, uint32_t) (r1, r2, r3);
    0x00013d94 mov r1, r6                                    |     r1 = r6;
    0x00013d98 mov r0, sl                                    |     r0 = sl;
    0x00013d9c bl 0x113f0                                    |     munmap (r0, r1);
    0x00013da0 b 0x13d44                                     |     goto label_2;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/xmlwf @ 0x115f0 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) main ()                                          | int32_t main (int32_t argc, char ** argv) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     char * s2;
                                                             |     FILE * stream;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_34h;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
    0x000115f0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000115f4 mov r7, 0                                     |     r7 = 0;
    0x000115f8 mov fp, 1                                     |     
    0x000115fc sub sp, sp, 0x34                              |     
    0x00011600 mov sb, r1                                    |     sb = r1;
    0x00011604 mov r8, r7                                    |     r8 = r7;
    0x00011608 mov r4, r7                                    |     r4 = r7;
    0x0001160c mov r6, fp                                    |     r6 = fp;
    0x00011610 str r0, [sp, 4]                               |     var_4h = r0;
    0x00011614 str r7, [sp, 0x24]                            |     stream = r7;
    0x00011618 str r7, [sp, 0x28]                            |     var_28h = r7;
    0x0001161c str r7, [sp, 0x2c]                            |     var_2ch = r7;
    0x00011620 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00011624 str r7, [sp, 0x14]                            |     var_14h = r7;
    0x00011628 str r7, [sp, 8]                               |     var_8h = r7;
    0x0001162c str r7, [sp]                                  |     *(sp) = r7;
    0x00011630 str r7, [sp, 0x18]                            |     var_18h = r7;
    0x00011634 str r7, [sp, 0xc]                             |     var_ch = r7;
                                                             | label_0:
    0x00011638 ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x0001163c cmp r6, r3                                    |     
                                                             |     if (r6 < r3) {
    0x00011640 bge 0x1167c                                   |         
    0x00011644 cmp r4, 0                                     |         
    0x00011648 lsl r1, r6, 2                                 |         r1 = r6 << 2;
    0x0001164c ldr r2, [sb, r6, lsl 2]                       |         offset_0 = r6 << 2;
                                                             |         r2 = *((sb + offset_0));
                                                             |         if (r4 != 0) {
    0x00011650 bne 0x1169c                                   |             goto label_8;
                                                             |         }
    0x00011654 ldrb r3, [r2]                                 |         r3 = *(r2);
    0x00011658 cmp r3, 0x2d                                  |         
                                                             |         if (r3 != 0x2d) {
    0x0001165c bne 0x11c0c                                   |             goto label_9;
                                                             |         }
    0x00011660 ldrb r3, [r2, 1]                              |         r3 = *((r2 + 1));
    0x00011664 cmp r3, 0x2d                                  |         
                                                             |         if (r3 != 0x2d) {
    0x00011668 bne 0x11698                                   |             goto label_10;
                                                             |         }
    0x0001166c ldrb r3, [r2, 2]                              |         r3 = *((r2 + 2));
    0x00011670 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011674 bne 0x11698                                   |             goto label_10;
                                                             |         }
    0x00011678 add r6, r6, 1                                 |         r6++;
                                                             |     }
    0x0001167c ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00011680 cmp r6, r3                                    |     
    0x00011684 biceq fp, fp, 1                               |     __asm ("biceq fp, fp, 1");
                                                             |     if (r6 != r3) {
    0x00011688 subeq r6, r6, 1                               |         r6--;
                                                             |     }
                                                             |     if (r6 != r3) {
    0x0001168c moveq r4, 1                                   |         r4 = 1;
                                                             |     }
                                                             |     if (r6 == r3) {
    0x00011690 movne r4, 0                                   |         r4 = 0;
                                                             |     }
    0x00011694 b 0x11c0c                                     |     goto label_9;
                                                             | label_10:
    0x00011698 mov r4, 1                                     |     r4 = 1;
                                                             | label_8:
    0x0001169c ldrb r3, [r2, r4]                             |     r3 = *((r2 + r4));
    0x000116a0 cmp r3, 0x6e                                  |     
                                                             |     if (r3 == 0x6e) {
    0x000116a4 beq 0x11830                                   |         goto label_11;
                                                             |     }
                                                             |     if (r3 <= 0x6e) {
    0x000116a8 bhi 0x1172c                                   |         
    0x000116ac cmp r3, 0x64                                  |         
                                                             |         if (r3 == 0x64) {
    0x000116b0 beq 0x1188c                                   |             goto label_12;
                                                             |         }
                                                             |         if (r3 <= 0x64) {
    0x000116b4 bhi 0x116dc                                   |             
    0x000116b8 cmp r3, 0x4e                                  |             
                                                             |             if (r3 == 0x4e) {
    0x000116bc beq 0x1187c                                   |                 goto label_13;
                                                             |             }
    0x000116c0 cmp r3, 0x63                                  |             
                                                             |             if (r3 == 0x63) {
    0x000116c4 beq 0x11860                                   |                 goto label_14;
                                                             |             }
    0x000116c8 cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x000116cc bne 0x11750                                   |                 goto label_1;
                                                             |             }
    0x000116d0 cmp r4, 1                                     |             
                                                             |             if (r4 != 1) {
    0x000116d4 bne 0x118b8                                   |                 goto label_15;
                                                             |             }
    0x000116d8 b 0x11750                                     |             goto label_1;
                                                             |         }
    0x000116dc cmp r3, 0x68                                  |         
                                                             |         if (r3 == 0x68) {
    0x000116e0 beq 0x118c4                                   |             goto label_16;
                                                             |         }
    0x000116e4 cmp r3, 0x6d                                  |         
    0x000116e8 add r4, r4, 1                                 |         r4++;
                                                             |         if (r3 == 0x6d) {
    0x000116ec beq 0x1186c                                   |             goto label_17;
                                                             |         }
    0x000116f0 cmp r3, 0x65                                  |         
                                                             |         if (r3 != 0x65) {
    0x000116f4 bne 0x11750                                   |             goto label_1;
                                                             |         }
    0x000116f8 add r3, r2, r4                                |         r3 = r2 + r4;
    0x000116fc str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00011700 ldrb r3, [r2, r4]                             |         r3 = *((r2 + r4));
    0x00011704 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011708 bne 0x118b8                                   |             goto label_15;
                                                             |         }
    0x0001170c ldr r3, [sp, 4]                               |         r3 = var_4h;
    0x00011710 add r6, r6, 1                                 |         r6++;
    0x00011714 cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x00011718 beq 0x11750                                   |             goto label_1;
                                                             |         }
    0x0001171c add r1, sb, r1                                |         r1 = sb + r1;
    0x00011720 ldr r3, [r1, 4]                               |         r3 = *((r1 + 4));
    0x00011724 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00011728 b 0x118b8                                     |         goto label_15;
                                                             |     }
    0x0001172c cmp r3, 0x74                                  |     
                                                             |     if (r3 == 0x74) {
    0x00011730 beq 0x11874                                   |         goto label_18;
                                                             |     }
                                                             |     if (r3 > 0x74) {
    0x00011734 bhi 0x11758                                   |         goto label_19;
                                                             |     }
    0x00011738 cmp r3, 0x72                                  |     
    0x0001173c add r2, r4, 1                                 |     r2 = r4 + 1;
                                                             |     if (r3 == 0x72) {
    0x00011740 beq 0x11814                                   |         goto label_20;
                                                             |     }
                                                             |     if (r3 > 0x72) {
    0x00011744 bhi 0x11820                                   |         goto label_21;
                                                             |     }
    0x00011748 cmp r3, 0x70                                  |     
                                                             |     if (r3 == 0x70) {
    0x0001174c beq 0x11840                                   |         goto label_22;
                                                             |     }
                                                             |     do {
                                                             | label_1:
    0x00011750 mov r1, 2                                     |         r1 = 2;
    0x00011754 b 0x118c8                                     |         goto label_23;
                                                             | label_19:
    0x00011758 cmp r3, 0x77                                  |         
                                                             |         if (r3 == 0x77) {
    0x0001175c beq 0x11850                                   |             goto label_24;
                                                             |         }
    0x00011760 cmp r3, 0x78                                  |         
                                                             |         if (r3 == 0x78) {
    0x00011764 beq 0x11844                                   |             goto label_25;
                                                             |         }
    0x00011768 cmp r3, 0x76                                  |         
    0x0001176c bne 0x11750                                   |         
                                                             |     } while (r3 != 0x76);
    0x00011770 ldr r6, [sb]                                  |     r6 = *(sb);
    0x00011774 bl 0x11480                                    |     XML_GetFeatureList ();
    0x00011778 mov r3, r6                                    |     r3 = r6;
    0x0001177c mov r4, r0                                    |     r4 = r0;
                                                             | label_2:
    0x00011780 ldrb r2, [r3], 1                              |     r2 = *(r3);
                                                             |     r3++;
    0x00011784 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00011788 bne 0x118d0                                   |         goto label_26;
                                                             |     }
    0x0001178c ldr r5, [pc, 0x4b8]                           |     r5 = *(0x11c48);
    0x00011790 ldr r7, [r5]                                  |     r7 = *(0x11c48);
    0x00011794 bl 0x11324                                    |     XML_ExpatVersion ();
    0x00011798 mov r2, r6                                    |     r2 = r6;
    0x0001179c ldr r1, [pc, 0x4ac]                           |     r1 = stdout;
    0x000117a0 mov r3, r0                                    |     r3 = r0;
    0x000117a4 mov r0, r7                                    |     r0 = r7;
    0x000117a8 bl 0x1145c                                    |     fprintf (r0, r1, r2, r3)
    0x000117ac cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000117b0 beq 0x11808                                   |         
    0x000117b4 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000117b8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000117bc beq 0x11808                                   |             goto label_5;
                                                             |         }
    0x000117c0 ldr r1, [r5]                                  |         r1 = *(r5);
    0x000117c4 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x000117c8 bl 0x114c8                                    |         fputs (r0, r1);
    0x000117cc ldr r2, [r4, 8]                               |         r2 = *((r4 + 8));
    0x000117d0 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x000117d4 beq 0x117e4                                   |             
    0x000117d8 ldr r1, [pc, 0x474]                           |             r1 = "_s_using__s";
    0x000117dc ldr r0, [r5]                                  |             r0 = *(r5);
    0x000117e0 bl 0x1145c                                    |             fprintf (r0, "_s_using__s")
                                                             |         }
    0x000117e4 ldr r6, [pc, 0x46c]                           |         r6 = "=%ld";
    0x000117e8 ldr r7, [pc, 0x464]                           |         r7 = "_s_using__s";
                                                             | label_3:
    0x000117ec ldr r3, [r4, 0xc]                             |         r3 = *((r4 + 0xc));
    0x000117f0 ldr r0, [r5]                                  |         r0 = *(r5);
    0x000117f4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000117f8 bne 0x118dc                                   |             goto label_27;
                                                             |         }
    0x000117fc mov r1, r0                                    |         r1 = r0;
    0x00011800 mov r0, 0xa                                   |         r0 = 0xa;
    0x00011804 bl 0x114a4                                    |         fputc (r0, r1);
                                                             |     }
                                                             | label_5:
    0x00011808 mov r0, 0                                     |     r0 = 0;
    0x0001180c add sp, sp, 0x34                              |     
    0x00011810 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_20:
    0x00011814 bic fp, fp, 1                                 |     fp = BIT_MASK (fp, 1);
    0x00011818 mov r4, r2                                    |     r4 = r2;
    0x0001181c b 0x11638                                     |     goto label_0;
                                                             | label_21:
    0x00011820 mov r3, 1                                     |     r3 = 1;
    0x00011824 mov r4, r2                                    |     r4 = r2;
    0x00011828 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x0001182c b 0x11638                                     |     goto label_0;
                                                             | label_11:
    0x00011830 mov r3, 1                                     |     r3 = 1;
    0x00011834 add r4, r4, 1                                 |     r4++;
    0x00011838 str r3, [sp, 8]                               |     var_8h = r3;
    0x0001183c b 0x11638                                     |     goto label_0;
                                                             | label_22:
    0x00011840 mov r7, 2                                     |     r7 = 2;
                                                             | label_25:
    0x00011844 orr fp, fp, 2                                 |     
    0x00011848 add r4, r4, 1                                 |     r4++;
    0x0001184c b 0x11638                                     |     goto label_0;
                                                             | label_24:
    0x00011850 mov r3, 1                                     |     r3 = 1;
    0x00011854 add r4, r4, 1                                 |     r4++;
    0x00011858 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0001185c b 0x11638                                     |     goto label_0;
                                                             | label_14:
    0x00011860 mov r2, 0                                     |     r2 = 0;
    0x00011864 add r4, r4, 1                                 |     r4++;
    0x00011868 str r2, [sp, 8]                               |     var_8h = r2;
                                                             |     do {
                                                             | label_17:
    0x0001186c str r3, [sp]                                  |         *(sp) = r3;
    0x00011870 b 0x11638                                     |         goto label_0;
                                                             | label_18:
    0x00011874 add r4, r4, 1                                 |         r4++;
    0x00011878 b 0x1186c                                     |         
                                                             |     } while (1);
                                                             | label_13:
    0x0001187c mov r3, 1                                     |     r3 = 1;
    0x00011880 add r4, r4, 1                                 |     r4++;
    0x00011884 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00011888 b 0x11638                                     |     goto label_0;
                                                             | label_12:
    0x0001188c add r4, r4, 1                                 |     r4++;
    0x00011890 ldrb r3, [r2, r4]                             |     r3 = *((r2 + r4));
    0x00011894 add r8, r2, r4                                |     r8 = r2 + r4;
    0x00011898 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001189c bne 0x118b8                                   |         goto label_15;
                                                             |     }
    0x000118a0 ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x000118a4 add r6, r6, 1                                 |     r6++;
    0x000118a8 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000118ac beq 0x11750                                   |         goto label_1;
                                                             |     }
    0x000118b0 add r1, sb, r1                                |     r1 = sb + r1;
    0x000118b4 ldr r8, [r1, 4]                               |     r8 = *((r1 + 4));
                                                             | label_15:
    0x000118b8 add r6, r6, 1                                 |     r6++;
    0x000118bc mov r4, 0                                     |     r4 = 0;
    0x000118c0 b 0x11638                                     |     goto label_0;
                                                             | label_16:
    0x000118c4 mov r1, 0                                     |     r1 = 0;
                                                             | label_23:
    0x000118c8 ldr r0, [sb]                                  |     r0 = *(sb);
    0x000118cc bl 0x115c4                                    |     fcn_000115c4 (r0, r1);
                                                             | label_26:
    0x000118d0 cmp r2, 0x2f                                  |     
                                                             |     if (r2 != 0x2f) {
    0x000118d4 moveq r6, r3                                  |         r6 = r3;
                                                             |     }
    0x000118d8 b 0x11780                                     |     goto label_2;
                                                             | label_27:
    0x000118dc ldr r2, [r4, 0x10]                            |     r2 = *((r4 + 0x10));
    0x000118e0 mov r1, r6                                    |     r1 = r6;
    0x000118e4 bl 0x1145c                                    |     fprintf (r0, r1, r2)
    0x000118e8 ldr r2, [r4, 0x14]                            |     r2 = *((r4 + 0x14));
    0x000118ec cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x000118f0 beq 0x11900                                   |         
    0x000118f4 mov r1, r7                                    |         r1 = r7;
    0x000118f8 ldr r0, [r5]                                  |         r0 = *(r5);
    0x000118fc bl 0x1145c                                    |         fprintf (r0, r1)
                                                             |     }
    0x00011900 add r4, r4, 0xc                               |     r4 += 0xc;
    0x00011904 b 0x117ec                                     |     goto label_3;
                                                             | label_6:
    0x00011908 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x0001190c bl 0x113a8                                    |     XML_ParserCreate ();
    0x00011910 b 0x11c30                                     |     goto label_28;
                                                             | label_7:
    0x00011914 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00011918 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001191c beq 0x11928                                   |         
    0x00011920 ldr r1, [pc, 0x334]                           |         r1 = "___s";
    0x00011924 bl 0x113e4                                    |         XML_SetNotStandaloneHandler ();
                                                             |     }
    0x00011928 mov r1, r7                                    |     r1 = r7;
    0x0001192c mov r0, r5                                    |     r0 = r5;
    0x00011930 bl 0x114bc                                    |     XML_SetParamEntityParsing ();
    0x00011934 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00011938 cmp r3, 0x74                                  |     
                                                             |     if (r3 != 0x74) {
    0x0001193c bne 0x11974                                   |         goto label_29;
                                                             |     }
    0x00011940 ldr r2, [pc, 0x318]                           |     r2 = *(0x11c5c);
    0x00011944 ldr r1, [pc, 0x318]                           |     r1 = *(0x11c60);
    0x00011948 mov r0, r5                                    |     r0 = r5;
    0x0001194c bl 0x114f8                                    |     XML_SetElementHandler ();
    0x00011950 ldr r1, [pc, 0x310]                           |     r1 = *(0x11c64);
    0x00011954 mov r0, r5                                    |     r0 = r5;
    0x00011958 bl 0x112a0                                    |     XML_SetCharacterDataHandler ();
    0x0001195c ldr r1, [pc, 0x308]                           |     r1 = *(0x11c68);
    0x00011960 mov r0, r5                                    |     r0 = r5;
    0x00011964 bl 0x1130c                                    |     XML_SetProcessingInstructionHandler ();
    0x00011968 mov r8, 0                                     |     r8 = 0;
                                                             |     do {
    0x0001196c mov sl, r8                                    |         sl = r8;
    0x00011970 b 0x11ad8                                     |         goto label_4;
                                                             | label_29:
    0x00011974 cmp r8, 0                                     |         
    0x00011978 beq 0x1196c                                   |         
                                                             |     } while (r8 == 0);
    0x0001197c cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00011980 ldrne r3, [pc, 0x2e8]                         |         r3 = "STDIN";
                                                             |     }
                                                             |     if (r4 == 0) {
    0x00011984 bne 0x119a8                                   |         
    0x00011988 ldr r3, [sb, r6, lsl 2]                       |         offset_1 = r6 << 2;
                                                             |         r3 = *((sb + offset_1));
    0x0001198c mov r1, 0x2f                                  |         r1 = 0x2f;
    0x00011990 mov r0, r3                                    |         r0 = r3;
    0x00011994 str r3, [sp, 0x1c]                            |         s2 = r3;
    0x00011998 bl 0x11378                                    |         strrchr (r0, r1);
    0x0001199c ldr r3, [sp, 0x1c]                            |         r3 = s2;
    0x000119a0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000119a4 addne r3, r0, 1                               |             r3 = r0 + 1;
                                                             |             goto label_30;
                                                             |         }
                                                             |     }
                                                             | label_30:
    0x000119a8 mov r0, r8                                    |     r0 = r8;
    0x000119ac str r3, [sp, 0x1c]                            |     s2 = r3;
    0x000119b0 bl 0x11588                                    |     strlen (r0);
    0x000119b4 ldr r3, [sp, 0x1c]                            |     r3 = s2;
    0x000119b8 mov sl, r0                                    |     sl = r0;
    0x000119bc mov r0, r3                                    |     r0 = r3;
    0x000119c0 bl 0x11588                                    |     r0 = strlen (r0);
    0x000119c4 add r0, sl, r0                                |     r0 = sl + r0;
    0x000119c8 add r0, r0, 2                                 |     r0 += 2;
    0x000119cc bl 0x11330                                    |     malloc (r0);
    0x000119d0 mov r1, r8                                    |     r1 = r8;
    0x000119d4 mov sl, r0                                    |     sl = r0;
    0x000119d8 bl 0x1136c                                    |     strcpy (r0, r1);
    0x000119dc ldr r1, [pc, 0x290]                           |     r1 = "STDIN";
    0x000119e0 mov r0, sl                                    |     r0 = sl;
    0x000119e4 bl 0x11348                                    |     strcat (r0, "STDIN");
    0x000119e8 ldr r3, [sp, 0x1c]                            |     r3 = s2;
    0x000119ec mov r0, sl                                    |     r0 = sl;
    0x000119f0 mov r1, r3                                    |     r1 = r3;
    0x000119f4 bl 0x11348                                    |     strcat (r0, r1);
    0x000119f8 ldr r1, [pc, 0x278]                           |     r1 = *(0x11c74);
    0x000119fc mov r0, sl                                    |     r0 = sl;
    0x00011a00 bl 0x11420                                    |     r0 = fopen64 ();
    0x00011a04 cmp r0, 0                                     |     
    0x00011a08 str r0, [sp, 0x24]                            |     stream = r0;
                                                             |     if (r0 != 0) {
    0x00011a0c moveq r0, sl                                  |         r0 = sl;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00011a10 beq 0x11c40                                   |         goto label_31;
                                                             |     }
    0x00011a14 mov r2, 0                                     |     r2 = 0;
    0x00011a18 mov r3, 0x4000                                |     r3 = 0x4000;
    0x00011a1c mov r1, r2                                    |     r1 = r2;
    0x00011a20 bl 0x112ac                                    |     setvbuf (r0, r1, r2, r3);
    0x00011a24 add r1, sp, 0x24                              |     r1 += stream;
    0x00011a28 mov r0, r5                                    |     r0 = r5;
    0x00011a2c bl 0x11438                                    |     XML_SetUserData ();
    0x00011a30 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00011a34 cmp r3, 0x63                                  |     
                                                             |     if (r3 == 0x63) {
    0x00011a38 beq 0x11b58                                   |         goto label_32;
                                                             |     }
    0x00011a3c cmp r3, 0x6d                                  |     
                                                             |     if (r3 != 0x6d) {
    0x00011a40 bne 0x11b98                                   |         goto label_33;
                                                             |     }
    0x00011a44 mov r0, r5                                    |     r0 = r5;
    0x00011a48 bl 0x11390                                    |     XML_UseParserAsHandlerArg ();
    0x00011a4c ldr r2, [pc, 0x228]                           |     r2 = "wb";
    0x00011a50 ldr r1, [pc, 0x228]                           |     r1 = *(0x11c7c);
    0x00011a54 mov r0, r5                                    |     r0 = r5;
    0x00011a58 bl 0x114f8                                    |     XML_SetElementHandler ();
    0x00011a5c ldr r1, [pc, 0x220]                           |     r1 = *(0x11c80);
    0x00011a60 mov r0, r5                                    |     r0 = r5;
    0x00011a64 bl 0x1130c                                    |     XML_SetProcessingInstructionHandler ();
    0x00011a68 ldr r1, [pc, 0x218]                           |     r1 = *(0x11c84);
    0x00011a6c mov r0, r5                                    |     r0 = r5;
    0x00011a70 bl 0x1133c                                    |     XML_SetCommentHandler ();
    0x00011a74 ldr r2, [pc, 0x210]                           |     r2 = *(0x11c88);
    0x00011a78 ldr r1, [pc, 0x210]                           |     r1 = *(0x11c8c);
    0x00011a7c mov r0, r5                                    |     r0 = r5;
    0x00011a80 bl 0x11498                                    |     XML_SetCdataSectionHandler ();
    0x00011a84 ldr r1, [pc, 0x208]                           |     r1 = *(0x11c90);
    0x00011a88 mov r0, r5                                    |     r0 = r5;
    0x00011a8c bl 0x112a0                                    |     XML_SetCharacterDataHandler ();
    0x00011a90 ldr r2, [pc, 0x200]                           |     r2 = *(0x11c94);
    0x00011a94 ldr r1, [pc, 0x200]                           |     r1 = *(0x11c98);
    0x00011a98 mov r0, r5                                    |     r0 = r5;
    0x00011a9c bl 0x115ac                                    |     XML_SetDoctypeDeclHandler ();
    0x00011aa0 ldr r1, [pc, 0x1f8]                           |     r1 = *(0x11c9c);
    0x00011aa4 mov r0, r5                                    |     r0 = r5;
    0x00011aa8 bl 0x113d8                                    |     XML_SetEntityDeclHandler ();
    0x00011aac ldr r1, [pc, 0x1f0]                           |     r1 = *(0x11ca0);
    0x00011ab0 mov r0, r5                                    |     r0 = r5;
    0x00011ab4 bl 0x1157c                                    |     XML_SetNotationDeclHandler ();
    0x00011ab8 ldr r1, [pc, 0x1e8]                           |     r1 = *(0x11ca4);
    0x00011abc mov r0, r5                                    |     r0 = r5;
    0x00011ac0 ldr r2, [pc, 0x1e4]                           |     r2 = *(0x11ca8);
    0x00011ac4 bl 0x11504                                    |     XML_SetNamespaceDeclHandler ();
    0x00011ac8 ldr r3, [r5]                                  |     r3 = *(r5);
    0x00011acc ldr r0, [pc, 0x1dc]                           |     r0 = *(0x11cac);
    0x00011ad0 ldr r1, [r3]                                  |     r1 = *(r3);
    0x00011ad4 bl 0x114c8                                    |     fputs (r0, r1);
                                                             |     do {
                                                             | label_4:
    0x00011ad8 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00011adc cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011ae0 beq 0x11af4                                   |             
    0x00011ae4 mov r2, 0                                     |             r2 = 0;
    0x00011ae8 ldr r1, [pc, 0x1c4]                           |             r1 = "<document>\n";
    0x00011aec mov r0, r5                                    |             r0 = r5;
    0x00011af0 bl 0x11510                                    |             XML_SetUnknownEncodingHandler ();
                                                             |         }
    0x00011af4 cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x00011af8 ldreq r1, [sb, r6, lsl 2]                     |             offset_2 = r6 << 2;
                                                             |             r1 = *((sb + offset_2));
                                                             |         }
                                                             |         if (r4 == 0) {
    0x00011afc movne r1, 0                                   |             r1 = 0;
                                                             |         }
    0x00011b00 mov r2, fp                                    |         r2 = fp;
    0x00011b04 mov r0, r5                                    |         r0 = r5;
    0x00011b08 bl 0x13b8c                                    |         fcn_00013b8c (r0, r1);
    0x00011b0c cmp r8, 0                                     |         
    0x00011b10 str r0, [sp, 0x1c]                            |         s2 = r0;
                                                             |         if (r8 == 0) {
    0x00011b14 beq 0x11c00                                   |             goto label_34;
                                                             |         }
    0x00011b18 ldr r3, [sp]                                  |         r3 = *(sp);
    0x00011b1c cmp r3, 0x6d                                  |         
                                                             |         if (r3 == 0x6d) {
    0x00011b20 bne 0x11b34                                   |             
    0x00011b24 ldr r3, [r5]                                  |             r3 = *(r5);
    0x00011b28 ldr r0, [pc, 0x188]                           |             r0 = *(0x11cb4);
    0x00011b2c ldr r1, [r3]                                  |             r1 = *(r3);
    0x00011b30 bl 0x114c8                                    |             fputs (r0, r1);
                                                             |         }
    0x00011b34 ldr r0, [sp, 0x24]                            |         r0 = stream;
    0x00011b38 bl 0x1139c                                    |         fclose (r0);
    0x00011b3c ldr r3, [sp, 0x1c]                            |         r3 = s2;
    0x00011b40 mov r0, sl                                    |         r0 = sl;
    0x00011b44 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011b48 bne 0x11bfc                                   |             goto label_35;
                                                             |         }
    0x00011b4c bl 0x112d0                                    |         remove (r0);
    0x00011b50 mov r0, 2                                     |         r0 = 2;
    0x00011b54 b 0x11c48                                     |         goto label_36;
                                                             | label_32:
    0x00011b58 mov r0, r5                                    |         r0 = r5;
    0x00011b5c bl 0x11390                                    |         XML_UseParserAsHandlerArg ();
    0x00011b60 mov r0, r5                                    |         r0 = r5;
    0x00011b64 ldr r1, [pc, 0x150]                           |         r1 = "</document>\n";
    0x00011b68 bl 0x113fc                                    |         XML_SetDefaultHandler ();
    0x00011b6c ldr r2, [pc, 0x14c]                           |         r2 = *(0x11cbc);
    0x00011b70 mov r0, r5                                    |         r0 = r5;
    0x00011b74 ldr r1, [pc, 0x148]                           |         r1 = *(0x11cc0);
    0x00011b78 bl 0x114f8                                    |         XML_SetElementHandler ();
    0x00011b7c mov r0, r5                                    |         r0 = r5;
    0x00011b80 ldr r1, [pc, 0x140]                           |         r1 = *(0x11cc4);
    0x00011b84 bl 0x112a0                                    |         XML_SetCharacterDataHandler ();
    0x00011b88 ldr r1, [pc, 0x13c]                           |         r1 = *(0x11cc8);
    0x00011b8c mov r0, r5                                    |         r0 = r5;
    0x00011b90 bl 0x1130c                                    |         XML_SetProcessingInstructionHandler ();
    0x00011b94 b 0x11ad8                                     |         
                                                             |     } while (1);
                                                             | label_33:
    0x00011b98 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00011b9c mov r0, r5                                    |     r0 = r5;
    0x00011ba0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011ba4 ldrne r1, [pc, 0x124]                         |         r1 = *((pc + 0x124));
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00011ba8 ldreq r1, [pc, 0x124]                         |         r1 = *((pc + 0x124));
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00011bac ldrne r2, [pc, 0x124]                         |         r2 = *((pc + 0x124));
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00011bb0 ldreq r2, [pc, 0x124]                         |         r2 = *((pc + 0x124));
                                                             |     }
    0x00011bb4 bl 0x114f8                                    |     XML_SetElementHandler ();
    0x00011bb8 ldr r1, [pc, 0x120]                           |     r1 = *(0x11cdc);
    0x00011bbc mov r0, r5                                    |     r0 = r5;
    0x00011bc0 bl 0x112a0                                    |     XML_SetCharacterDataHandler ();
    0x00011bc4 ldr r1, [pc, 0x118]                           |     r1 = *(0x11ce0);
    0x00011bc8 mov r0, r5                                    |     r0 = r5;
    0x00011bcc bl 0x1130c                                    |     XML_SetProcessingInstructionHandler ();
    0x00011bd0 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00011bd4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011bd8 beq 0x11ad8                                   |         goto label_4;
                                                             |     }
    0x00011bdc mov r0, r5                                    |     r0 = r5;
    0x00011be0 ldr r2, [pc, 0x100]                           |     r2 = *(0x11ce4);
    0x00011be4 ldr r1, [pc, 0x100]                           |     r1 = *(0x11ce8);
    0x00011be8 bl 0x115ac                                    |     XML_SetDoctypeDeclHandler ();
    0x00011bec ldr r1, [pc, 0xfc]                            |     r1 = *(0x11cec);
    0x00011bf0 mov r0, r5                                    |     r0 = r5;
    0x00011bf4 bl 0x1157c                                    |     XML_SetNotationDeclHandler ();
    0x00011bf8 b 0x11ad8                                     |     goto label_4;
                                                             | label_35:
    0x00011bfc bl 0x114ec                                    |     free (r0);
                                                             | label_34:
    0x00011c00 mov r0, r5                                    |     r0 = r5;
    0x00011c04 bl 0x115b8                                    |     XML_ParserFree ();
    0x00011c08 add r6, r6, 1                                 |     r6++;
                                                             | label_9:
    0x00011c0c ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00011c10 cmp r6, r3                                    |     
                                                             |     if (r6 >= r3) {
    0x00011c14 bge 0x11808                                   |         goto label_5;
                                                             |     }
    0x00011c18 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00011c1c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011c20 beq 0x11908                                   |         goto label_6;
                                                             |     }
    0x00011c24 mov r1, 1                                     |     r1 = 1;
    0x00011c28 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x00011c2c bl 0x115a0                                    |     r0 = XML_ParserCreateNS ();
                                                             | label_28:
    0x00011c30 cmp r0, 0                                     |     
    0x00011c34 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 != 0) {
    0x00011c38 bne 0x11914                                   |         goto label_7;
                                                             |     }
    0x00011c3c ldr r0, [pc, 0xb0]                            |     r0 = *(0x11cf0);
                                                             | label_31:
    0x00011c40 bl 0x11408                                    |     perror (r0);
    0x00011c44 mov r0, 1                                     |     r0 = 1;
                                                             | label_36:
    0x00011c48 bl 0x11444                                    |     exit (r0);
                                                             |     if (r0 != 0) {
    0x00011c4c andeq r5, r2, r4, lsr 2                       |         r5 = r2 & (r4 >> 2);
                                                             |     }
    0x00011c50 strheq r4, [r1], -r8                          |     __asm ("strheq r4, [r1], -r8");
                                                             |     if (r0 != 0) {
    0x00011c54 andeq r4, r1, r5, asr 1                       |         r4 = r1 & (r5 >> 1);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c58 andeq r4, r1, sl, asr 1                       |         r4 = r1 & (sl >> 1);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c5c andeq r1, r1, r0, lsl 29                      |         r1 &= (r0 << 29);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c60 andeq r1, r1, ip, ror lr                      |         r1 &= (ip >>> lr);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c64 andeq r1, r1, r8, ror lr                      |         r1 &= (r8 >>> lr);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c68 andeq r1, r1, r4, ror lr                      |         r1 &= (r4 >>> lr);
                                                             |     }
    0x00011c6c ldrdeq r3, r4, [r1], -ip                      |     __asm ("ldrdeq r3, r4, [r1], -ip");
    0x00011c70 strheq r4, [r1], -r2                          |     __asm ("strheq r4, [r1], -r2");
                                                             |     if (r0 != 0) {
    0x00011c74 andeq r4, r1, ip, ror 1                       |         r4 = r1 & (ip >>> 1);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c78 andeq r4, r1, lr, ror 1                       |         r4 = r1 & (lr >>> 1);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c7c andeq r3, r1, r8, ror 5                       |         r3 = r1 & (r8 >>> 5);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c80 andeq r3, r1, r8, lsr 6                       |         r3 = r1 & (r8 >> 6);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c84 andeq r3, r1, r0, asr 4                       |         r3 = r1 & (r0 >> 4);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c88 muleq r1, ip, r1                              |         r1 = ip * r1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c8c andeq r3, r1, r4, lsr 2                       |         r3 = r1 & (r4 >> 2);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c90 andeq r3, r1, r0, ror 2                       |         r3 = r1 & (r0 >>> 2);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c94 andeq r3, r1, r4, lsl 1                       |         r3 = r1 & (r4 << 1);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c98 andeq r3, r1, r8                              |         r3 = r1 & r8;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011c9c andeq r3, r1, r4, asr 32                      |         r3 = r1 & (r4 >> 32);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ca0 andeq r2, r1, r4, lsl 28                      |         r2 = r1 & (r4 << 28);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ca4 andeq r2, r1, r4, lsr 26                      |         r2 = r1 & (r4 >> 26);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ca8 andeq r2, r1, ip, asr 12                      |         r2 = r1 & (ip >> 12);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cac andeq r2, r1, r0, lsr 12                      |         r2 = r1 & (r0 >> 12);
                                                             |     }
    0x00011cb0 strdeq r4, r5, [r1], -r1                      |     __asm ("strdeq r4, r5, [r1], -r1");
                                                             |     if (r0 != 0) {
    0x00011cb4 andeq r1, r1, r8, lsl 29                      |         r1 &= (r8 << 29);
                                                             |     }
    0x00011cb8 strdeq r4, r5, [r1], -sp                      |     __asm ("strdeq r4, r5, [r1], -sp");
                                                             |     if (r0 != 0) {
    0x00011cbc muleq r1, r4, r4                              |         r1 = r4 * r4;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cc0 muleq r1, ip, ip                              |         r1 = ip * ip;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cc4 andeq r2, r1, r0, lsr 25                      |         r2 = r1 & (r0 >> 25);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cc8 muleq r1, r8, ip                              |         r1 = r8 * ip;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ccc andeq r3, r1, r0, ror 15                      |         r3 = r1 & (r0 >>> 15);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cd0 andeq r2, r1, r8, ror 20                      |         r2 = r1 & (r8 >>> 20);
                                                             |     }
    0x00011cd4 strdeq r2, r3, [r1], -ip                      |     __asm ("strdeq r2, r3, [r1], -ip");
                                                             |     if (r0 != 0) {
    0x00011cd8 andeq r2, r1, ip, ror 6                       |         r2 = r1 & (ip >>> 6);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cdc andeq r2, r1, ip, ror 4                       |         r2 = r1 & (ip >>> 4);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ce0 andeq r2, r1, r8, lsl 10                      |         r2 = r1 & (r8 << 10);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ce4 andeq r2, r1, r4, asr 1                       |         r2 = r1 & (r4 >> 1);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011ce8 andeq r3, r1, r8, ror r4                      |         r3 = r1 & (r8 >>> r4);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011cec andeq r2, r1, ip, lsr 1                       |         r2 = r1 & (ip >> 1);
                                                             |     }
    0x00011cf0 strheq r1, [r1], -r4                          |     __asm ("strheq r1, [r1], -r4");
                                                             |     /* Beware that this jump is a conditional jump.
                                                             |      * r2dec transformed it as a return, due being the
                                                             |      * last instruction. Please, check 'pdda' output
                                                             |      * for more hints. */
    0x00011cf4 andeq r4, r1, pc, asr 1                       |     return r4 = r1 & (pc >> 1);
                                                             | }

[*] Function fprintf used 14 times xmlwf