[*] Binary protection state of libstdc++.so.6.0.24

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


[*] Function sprintf tear down of libstdc++.so.6.0.24

    ; 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/lib/libstdc++.so.6.0.24 @ 0x9444c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0009444c ()                  | void fcn_0009444c (int32_t arg1, int32_t arg2) {
                                             |     char * s;
                                             |     int32_t var_44h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0009444c push {r4, r5, r6, r7, lr}     |     
    0x00094450 sub sp, sp, 0x44              |     
    0x00094454 mov r5, r0                    |     r5 = r0;
    0x00094458 mov r7, r1                    |     r7 = r1;
    0x0009445c mov r6, r2                    |     r6 = r2;
    0x00094460 bl 0x9439c                    |     r0 = fcn_0009439c (r0, r1);
    0x00094464 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 == r0) {
    0x00094468 bne 0x944b0                   |         
    0x0009446c ldr r1, [pc, 0x48]            |         r1 = *(0x944b8);
    0x00094470 mov r0, r7                    |         r0 = r7;
    0x00094474 add r1, pc, r1                |         r1 = pc + r1;
    0x00094478 bl 0x7804c                    |         r0 = strcmp (r0, r1);
    0x0009447c cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x00094480 bne 0x944b0                   |             goto label_0;
                                             |         }
    0x00094484 ldr r1, [pc, 0x34]            |         r1 = "treambufIcS1_E";
    0x00094488 mov r4, sp                    |         r4 = sp;
    0x0009448c ldr r2, [r6, 8]               |         r2 = *((r6 + 8));
    0x00094490 add r1, pc, r1                |         r1 = pc + r1;
    0x00094494 mov r0, r4                    |         r0 = r4;
    0x00094498 bl 0x77698                    |         sprintf (r0, r1, r2)
    0x0009449c mov r1, r4                    |         r1 = r4;
    0x000944a0 mov r4, 1                     |         r4 = 1;
    0x000944a4 mov r2, r0                    |         r2 = r0;
    0x000944a8 mov r0, r5                    |         r0 = r5;
    0x000944ac bl 0x94194                    |         fcn_00094194 (r0, r1);
                                             |     }
                                             | label_0:
    0x000944b0 mov r0, r4                    |     r0 = r4;
    0x000944b4 add sp, sp, 0x44              |     
    0x000944b8 pop {r4, r5, r6, r7, pc}      |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libstdc++.so.6.0.24 @ 0x944c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000944c4 ()                  | void fcn_000944c4 (int32_t arg1, int32_t arg2) {
                                             |     char * s;
                                             |     int32_t var_40h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000944c4 ldr r3, [r1]                  |     r3 = *(r1);
    0x000944c8 push {r4, r5, r6, lr}         |     
    0x000944cc cmp r3, 0                     |     
    0x000944d0 sub sp, sp, 0x40              |     
                                             |     if (r3 == 0) {
    0x000944d4 bne 0x944f8                   |         
    0x000944d8 ldr r3, [pc, 0x360]           |         r3 = *(0x9483c);
    0x000944dc ldr r1, [pc, 0x360]           |         r1 = *(0x94840);
    0x000944e0 ldr r0, [pc, 0x360]           |         r0 = "RKSt6locale";
    0x000944e4 ldr r2, [pc, 0x360]           |         r2 = *(0x94848);
    0x000944e8 add r3, pc, r3                |         r3 = pc + r3;
    0x000944ec add r1, pc, r1                |         r1 = pc + r1;
    0x000944f0 add r0, pc, r0                |         r0 = pc + r0;
                                             | label_0:
    0x000944f4 bl 0x7552c                    |         assert ();
                                             |     }
    0x000944f8 sub r3, r3, 1                 |     r3--;
    0x000944fc mov r4, r0                    |     r4 = r0;
    0x00094500 mov r5, r1                    |     r5 = r1;
    0x00094504 mov r6, r2                    |     r6 = r2;
    0x00094508 cmp r3, 5                     |     
                                             |     if (r3 > 5) {
                                             |         /* switch table (6 cases) at 0x94514 */
    0x0009450c addls pc, pc, r3, lsl 2       |         pc += (r3 << 2);
                                             |     }
    0x00094510 b 0x94820                     |     goto label_3;
    0x00094514 b 0x9452c                     |     goto label_4;
    0x00094518 b 0x946b4                     |     goto label_5;
    0x0009451c b 0x946e8                     |     goto label_6;
    0x00094520 b 0x9474c                     |     goto label_7;
    0x00094524 b 0x947b8                     |     goto label_8;
    0x00094528 b 0x947ec                     |     goto label_9;
                                             | label_4:
    0x0009452c add r2, r1, 4                 |     r2 = r1 + 4;
    0x00094530 mov r1, r6                    |     r1 = r6;
    0x00094534 bl 0x9444c                    |     r0 = fcn_0009444c (r0, r1);
    0x00094538 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0009453c bne 0x94574                   |         goto label_2;
                                             |     }
    0x00094540 ldr r1, [pc, 0x308]           |     r1 = *(0x9484c);
    0x00094544 mov r0, r6                    |     r0 = r6;
    0x00094548 add r1, pc, r1                |     r1 = pc + r1;
    0x0009454c bl 0x7804c                    |     r0 = strcmp (r0, r1);
    0x00094550 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00094554 bne 0x9457c                   |         goto label_10;
                                             |     }
    0x00094558 ldr r3, [pc, 0x2f4]           |     r3 = *(0x94850);
    0x0009455c ldr r1, [r5, 0x10]            |     r1 = *((r5 + 0x10));
    0x00094560 mvn r2, 0                     |     r2 = ~0;
    0x00094564 add r3, pc, r3                |     r3 = pc + r3;
                                             |     do {
    0x00094568 ldr r1, [r3, r1, lsl 2]       |         offset_0 = r1 << 2;
                                             |         r1 = *((r3 + offset_0));
                                             | label_1:
    0x0009456c mov r0, r4                    |         r0 = r4;
    0x00094570 bl 0x94194                    |         fcn_00094194 (r0, r1);
                                             | label_2:
    0x00094574 add sp, sp, 0x40              |         
    0x00094578 pop {r4, r5, r6, pc}          |         
                                             | label_10:
    0x0009457c ldr r1, [pc, 0x2d4]           |         r1 = *(0x94854);
    0x00094580 mov r0, r6                    |         r0 = r6;
    0x00094584 add r1, pc, r1                |         r1 = pc + r1;
    0x00094588 bl 0x7804c                    |         r0 = strcmp (r0, r1);
    0x0009458c cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x00094590 ldreq r3, [pc, 0x2c4]         |             r3 = *((pc + 0x2c4));
                                             |         }
                                             |         if (r0 != 0) {
    0x00094594 ldreq r1, [r5, 0x14]          |             r1 = *((r5 + 0x14));
                                             |         }
                                             |         if (r0 != 0) {
    0x00094598 mvneq r2, 0                   |             r2 = ~0;
                                             |         }
                                             |         if (r0 != 0) {
    0x0009459c addeq r3, pc, r3              |             r3 = pc + r3;
                                             |         }
    0x000945a0 beq 0x94568                   |         
                                             |     } while (r0 == 0);
    0x000945a4 ldr r1, [pc, 0x2b4]           |     r1 = *(0x9485c);
    0x000945a8 mov r0, r6                    |     r0 = r6;
    0x000945ac add r1, pc, r1                |     r1 = pc + r1;
    0x000945b0 bl 0x7804c                    |     r0 = strcmp (r0, r1);
    0x000945b4 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000945b8 bne 0x94608                   |         
    0x000945bc ldr r2, [r5, 0x18]            |         r2 = *((r5 + 0x18));
    0x000945c0 cmp r2, 0                     |         
                                             |         if (r2 == 0) {
    0x000945c4 bne 0x945e8                   |             
    0x000945c8 ldr r3, [pc, 0x294]           |             r3 = *(0x94860);
    0x000945cc ldr r1, [pc, 0x294]           |             r1 = *(0x94864);
    0x000945d0 ldr r0, [pc, 0x294]           |             r0 = "etISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale";
    0x000945d4 add r3, pc, r3                |             r3 = pc + r3;
    0x000945d8 ldr r2, [pc, 0x290]           |             r2 = *(0x9486c);
    0x000945dc add r1, pc, r1                |             r1 = pc + r1;
    0x000945e0 add r0, pc, r0                |             r0 = pc + r0;
    0x000945e4 b 0x944f4                     |             goto label_0;
                                             |         }
    0x000945e8 ldr r1, [pc, 0x284]           |         r1 = *(0x94870);
    0x000945ec mov r5, sp                    |         r5 = sp;
    0x000945f0 add r1, pc, r1                |         r1 = pc + r1;
    0x000945f4 mov r0, r5                    |         r0 = r5;
    0x000945f8 bl 0x77698                    |         sprintf (r0, r1, r2)
    0x000945fc mov r1, r5                    |         r1 = r5;
    0x00094600 mov r2, r0                    |         r2 = r0;
    0x00094604 b 0x9456c                     |         goto label_1;
                                             |     }
    0x00094608 ldr r1, [pc, 0x268]           |     r1 = "_traitsIcEEEERKT_RKSt6locale";
    0x0009460c mov r0, r6                    |     r0 = r6;
    0x00094610 add r1, pc, r1                |     r1 = pc + r1;
    0x00094614 bl 0x7804c                    |     r0 = strcmp (r0, r1);
    0x00094618 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0009461c bne 0x94694                   |         goto label_11;
                                             |     }
    0x00094620 ldr r5, [r5, 0x1c]            |     r5 = *((r5 + 0x1c));
    0x00094624 cmp r5, 0                     |     
                                             |     if (r5 != 0) {
    0x00094628 ldreq r1, [pc, 0x24c]         |         r1 = *((pc + 0x24c));
                                             |     }
                                             |     if (r5 != 0) {
    0x0009462c moveq r2, 0x12                |         r2 = 0x12;
                                             |     }
                                             |     if (r5 == 0) {
    0x00094630 addeq r1, pc, r1              |         r1 = pc + r1;
                                             |         goto label_12;
                                             |     }
                                             |     if (r5 == 0) {
                                             | label_12:
    0x00094634 beq 0x9456c                   |         goto label_1;
                                             |     }
    0x00094638 ldr r0, [r5, 4]               |     r0 = *((r5 + 4));
    0x0009463c mov r2, 0                     |     r2 = 0;
    0x00094640 ldrb r3, [r0]                 |     r3 = *(r0);
    0x00094644 mov r1, r2                    |     r1 = r2;
    0x00094648 cmp r3, 0x2a                  |     
                                             |     if (r3 != 0x2a) {
    0x0009464c addeq r0, r0, 1               |         r0++;
                                             |     }
    0x00094650 mov r3, sp                    |     r3 = sp;
    0x00094654 bl 0x77a4c                    |     fcn_00077a4c ();
    0x00094658 ldr r3, [sp]                  |     r3 = *(sp);
    0x0009465c cmp r3, 0                     |     
    0x00094660 mov r6, r0                    |     r6 = r0;
                                             |     if (r3 != 0) {
    0x00094664 moveq r1, r0                  |         r1 = r0;
                                             |     }
                                             |     if (r3 != 0) {
    0x00094668 beq 0x9467c                   |         
    0x0009466c ldr r1, [r5, 4]               |         r1 = *((r5 + 4));
    0x00094670 ldrb r3, [r1]                 |         r3 = *(r1);
    0x00094674 cmp r3, 0x2a                  |         
                                             |         if (r3 == 0x2a) {
    0x00094678 addeq r1, r1, 1               |             r1++;
                                             |             goto label_13;
                                             |         }
                                             |     }
                                             | label_13:
    0x0009467c mov r0, r4                    |     r0 = r4;
    0x00094680 mvn r2, 0                     |     r2 = ~0;
    0x00094684 bl 0x94194                    |     fcn_00094194 (r0, r1);
    0x00094688 mov r0, r6                    |     r0 = r6;
    0x0009468c bl 0x74380                    |     free (r0);
    0x00094690 b 0x94574                     |     goto label_2;
                                             | label_11:
    0x00094694 ldr r3, [pc, 0x1e4]           |     r3 = *(0x9487c);
    0x00094698 ldr r1, [pc, 0x1e4]           |     r1 = *(0x94880);
    0x0009469c ldr r0, [pc, 0x1e4]           |     r0 = "_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale";
    0x000946a0 add r3, pc, r3                |     r3 = pc + r3;
    0x000946a4 mov r2, 0x2dc                 |     r2 = 0x2dc;
    0x000946a8 add r1, pc, r1                |     r1 = pc + r1;
    0x000946ac add r0, pc, r0                |     r0 = pc + r0;
    0x000946b0 b 0x944f4                     |     goto label_0;
                                             | label_5:
    0x000946b4 add r2, r1, 4                 |     r2 = r1 + 4;
    0x000946b8 mov r1, r6                    |     r1 = r6;
    0x000946bc bl 0x9444c                    |     r0 = fcn_0009444c (r0, r1);
    0x000946c0 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000946c4 bne 0x94574                   |         goto label_2;
                                             |     }
    0x000946c8 ldr r3, [pc, 0x1bc]           |     r3 = *(0x94888);
    0x000946cc ldr r1, [pc, 0x1bc]           |     r1 = *(0x9488c);
    0x000946d0 ldr r0, [pc, 0x1bc]           |     r0 = "har_traitsIcEE9set_rdbufEPSt15basic_streambufIcS1_E";
    0x000946d4 add r3, pc, r3                |     r3 = pc + r3;
    0x000946d8 ldr r2, [pc, 0x1b8]           |     r2 = *(0x94894);
    0x000946dc add r1, pc, r1                |     r1 = pc + r1;
    0x000946e0 add r0, pc, r0                |     r0 = pc + r0;
    0x000946e4 b 0x944f4                     |     goto label_0;
                                             | label_6:
    0x000946e8 ldr r1, [pc, 0x1ac]           |     r1 = *(0x94898);
    0x000946ec mov r0, r2                    |     r0 = r2;
    0x000946f0 add r1, pc, r1                |     r1 = pc + r1;
    0x000946f4 bl 0x7804c                    |     r0 = strcmp (r0, r1);
    0x000946f8 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000946fc bne 0x9472c                   |         
    0x00094700 ldr r1, [r5, 4]               |         r1 = *((r5 + 4));
    0x00094704 cmp r1, 0                     |         
                                             |         if (r1 != 0) {
    0x00094708 bne 0x94790                   |             goto label_14;
                                             |         }
    0x0009470c ldr r3, [pc, 0x18c]           |         r3 = *(0x9489c);
    0x00094710 ldr r1, [pc, 0x18c]           |         r1 = *(0x948a0);
    0x00094714 ldr r0, [pc, 0x18c]           |         r0 = "llEc";
    0x00094718 add r3, pc, r3                |         r3 = pc + r3;
    0x0009471c mov r2, 0x2e8                 |         r2 = 0x2e8;
    0x00094720 add r1, pc, r1                |         r1 = pc + r1;
    0x00094724 add r0, pc, r0                |         r0 = pc + r0;
    0x00094728 b 0x944f4                     |         goto label_0;
                                             |     }
    0x0009472c ldr r3, [pc, 0x178]           |     r3 = "aleERKSt6locale";
    0x00094730 ldr r1, [pc, 0x178]           |     r1 = *(0x948ac);
    0x00094734 ldr r0, [pc, 0x178]           |     r0 = "asic_iosIcSt11char_traitsIcEE4fillEc";
    0x00094738 add r3, pc, r3                |     r3 = pc + r3;
    0x0009473c mov r2, 0x2ec                 |     r2 = 0x2ec;
    0x00094740 add r1, pc, r1                |     r1 = pc + r1;
    0x00094744 add r0, pc, r0                |     r0 = pc + r0;
    0x00094748 b 0x944f4                     |     goto label_0;
                                             | label_7:
    0x0009474c ldr r1, [pc, 0x164]           |     r1 = *(0x948b4);
    0x00094750 mov r0, r2                    |     r0 = r2;
    0x00094754 add r1, pc, r1                |     r1 = pc + r1;
    0x00094758 bl 0x7804c                    |     r0 = strcmp (r0, r1);
    0x0009475c cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00094760 bne 0x94798                   |         
    0x00094764 ldr r1, [r5, 4]               |         r1 = *((r5 + 4));
    0x00094768 cmp r1, 0                     |         
                                             |         if (r1 == 0) {
    0x0009476c bne 0x94790                   |             
    0x00094770 ldr r3, [pc, 0x144]           |             r3 = *(0x948b8);
    0x00094774 ldr r1, [pc, 0x144]           |             r1 = *(0x948bc);
    0x00094778 ldr r0, [pc, 0x144]           |             r0 = "itsIcEE5widenEc";
    0x0009477c add r3, pc, r3                |             r3 = pc + r3;
    0x00094780 ldr r2, [pc, 0x140]           |             r2 = *(0x948c4);
    0x00094784 add r1, pc, r1                |             r1 = pc + r1;
    0x00094788 add r0, pc, r0                |             r0 = pc + r0;
    0x0009478c b 0x944f4                     |             goto label_0;
                                             |         }
                                             | label_14:
    0x00094790 mvn r2, 0                     |         r2 = ~0;
    0x00094794 b 0x9456c                     |         goto label_1;
                                             |     }
    0x00094798 ldr r3, [pc, 0x12c]           |     r3 = *(0x948c8);
    0x0009479c ldr r1, [pc, 0x12c]           |     r1 = *(0x948cc);
    0x000947a0 ldr r0, [pc, 0x12c]           |     r0 = "narrowEcc";
    0x000947a4 add r3, pc, r3                |     r3 = pc + r3;
    0x000947a8 ldr r2, [pc, 0x128]           |     r2 = *(0x948d4);
    0x000947ac add r1, pc, r1                |     r1 = pc + r1;
    0x000947b0 add r0, pc, r0                |     r0 = pc + r0;
    0x000947b4 b 0x944f4                     |     goto label_0;
                                             | label_8:
    0x000947b8 add r2, r1, 4                 |     r2 = r1 + 4;
    0x000947bc mov r1, r6                    |     r1 = r6;
    0x000947c0 bl 0x9444c                    |     r0 = fcn_0009444c (r0, r1);
    0x000947c4 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000947c8 bne 0x94574                   |         goto label_2;
                                             |     }
    0x000947cc ldr r3, [pc, 0x108]           |     r3 = *(0x948d8);
    0x000947d0 ldr r1, [pc, 0x108]           |     r1 = *(0x948dc);
    0x000947d4 ldr r0, [pc, 0x108]           |     r0 = "sIcEE5rdbufEv";
    0x000947d8 add r3, pc, r3                |     r3 = pc + r3;
    0x000947dc ldr r2, [pc, 0x104]           |     r2 = *(0x948e4);
    0x000947e0 add r1, pc, r1                |     r1 = pc + r1;
    0x000947e4 add r0, pc, r0                |     r0 = pc + r0;
    0x000947e8 b 0x944f4                     |     goto label_0;
                                             | label_9:
    0x000947ec add r2, r1, 4                 |     r2 = r1 + 4;
    0x000947f0 mov r1, r6                    |     r1 = r6;
    0x000947f4 bl 0x9439c                    |     r0 = fcn_0009439c (r0, r1);
    0x000947f8 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000947fc bne 0x94574                   |         goto label_2;
                                             |     }
    0x00094800 ldr r3, [pc, 0xe4]            |     r3 = *(0x948e8);
    0x00094804 ldr r1, [pc, 0xe4]            |     r1 = *(0x948ec);
    0x00094808 ldr r0, [pc, 0xe4]            |     r0 = "_traitsIcEE3tieEPSo";
    0x0009480c add r3, pc, r3                |     r3 = pc + r3;
    0x00094810 mov r2, 0x300                 |     r2 = 0x300;
    0x00094814 add r1, pc, r1                |     r1 = pc + r1;
    0x00094818 add r0, pc, r0                |     r0 = pc + r0;
    0x0009481c b 0x944f4                     |     goto label_0;
                                             | label_3:
    0x00094820 ldr r3, [pc, 0xd0]            |     r3 = *(0x948f4);
    0x00094824 ldr r1, [pc, 0xd0]            |     r1 = *(0x948f8);
    0x00094828 ldr r0, [pc, 0xd0]            |     r0 = "_tieEv";
    0x0009482c add r3, pc, r3                |     r3 = pc + r3;
    0x00094830 mov r2, 0x304                 |     r2 = 0x304;
    0x00094834 add r1, pc, r1                |     r1 = pc + r1;
    0x00094838 add r0, pc, r0                |     r0 = pc + r0;
    0x0009483c b 0x944f4                     |     goto label_0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libstdc++.so.6.0.24 @ 0x94904 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00094904 ()                                  | void fcn_00094904 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     char * s;
                                                             |     int8_t var_80h;
                                                             |     int32_t var_98h;
                                                             |     int32_t var_0h;
                                                             |     int32_t var_9ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00094904 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00094908 ldr fp, [pc, 0x270]                           |     fp = *(0x94b7c);
    0x0009490c mov r4, 0                                     |     r4 = 0;
    0x00094910 sub sp, sp, 0x9c                              |     
    0x00094914 mov r6, r0                                    |     r6 = r0;
    0x00094918 mov r5, r1                                    |     r5 = r1;
    0x0009491c mov r8, r2                                    |     r8 = r2;
    0x00094920 mov sl, r3                                    |     sl = r3;
    0x00094924 mov sb, r4                                    |     sb = r4;
    0x00094928 add fp, pc, fp                                |     
                                                             |     do {
    0x0009492c ldrb r3, [r5]                                 |         r3 = *(r5);
    0x00094930 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00094934 beq 0x94b54                                   |             goto label_2;
                                                             |         }
    0x00094938 mov r0, r3                                    |         r0 = r3;
    0x0009493c str r3, [sp, 4]                               |         var_4h = r3;
    0x00094940 bl 0x74f74                                    |         isspace (r0);
    0x00094944 ldr r3, [sp, 4]                               |         r3 = var_4h;
    0x00094948 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x0009494c beq 0x94984                                   |             goto label_3;
                                                             |         }
    0x00094950 add r1, sp, 0x98                              |         r1 += var_98h;
    0x00094954 add r2, r4, 1                                 |         r2 = r4 + 1;
    0x00094958 add r4, r1, r4                                |         r4 = r1 + r4;
    0x0009495c strb r3, [r4, -0x80]                          |         s = r3;
    0x00094960 mov r0, r6                                    |         r0 = r6;
    0x00094964 add r3, r1, r2                                |         r3 = r1 + r2;
    0x00094968 add r1, sp, 0x18                              |         r1 += s;
    0x0009496c strb sb, [r3, -0x80]                          |         var_80h = sb;
    0x00094970 bl 0x94194                                    |         fcn_00094194 (r0, r1);
    0x00094974 add r5, r5, 1                                 |         r5++;
    0x00094978 mov r7, 0                                     |         r7 = 0;
                                                             | label_0:
    0x0009497c mov r4, r7                                    |         r4 = r7;
    0x00094980 b 0x9492c                                     |         
                                                             |     } while (1);
                                                             | label_3:
    0x00094984 cmp r3, 0x25                                  |     
                                                             |     if (r3 == 0x25) {
    0x00094988 addne r5, r5, 1                               |         r5++;
                                                             |     }
                                                             |     if (r3 == 0x25) {
    0x0009498c bne 0x949a0                                   |         
    0x00094990 ldrb r3, [r5, 1]                              |         r3 = *((r5 + 1));
    0x00094994 cmp r3, 0x25                                  |         
                                                             |         if (r3 != 0x25) {
    0x00094998 bne 0x949b4                                   |             goto label_4;
                                                             |         }
    0x0009499c add r5, r5, 2                                 |         r5 += 2;
                                                             |     }
    0x000949a0 add r2, sp, 0x98                              |     r2 += var_98h;
    0x000949a4 add r7, r4, 1                                 |     r7 = r4 + 1;
    0x000949a8 add r4, r2, r4                                |     r4 = r2 + r4;
    0x000949ac strb r3, [r4, -0x80]                          |     s = r3;
    0x000949b0 b 0x9497c                                     |     goto label_0;
                                                             | label_4:
    0x000949b4 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000949b8 beq 0x949d8                                   |         
    0x000949bc add r3, sp, 0x98                              |         r3 += var_98h;
    0x000949c0 add r3, r3, r4                                |         r3 += r4;
    0x000949c4 mov r2, r4                                    |         r2 = r4;
    0x000949c8 add r1, sp, 0x18                              |         r1 += s;
    0x000949cc mov r0, r6                                    |         r0 = r6;
    0x000949d0 strb r7, [r3, -0x80]                          |         s = r7;
    0x000949d4 bl 0x94194                                    |         fcn_00094194 (r0, r1);
                                                             |     }
    0x000949d8 ldrb r3, [r5, 1]                              |     r3 = *((r5 + 1));
    0x000949dc sub r3, r3, 0x31                              |     r3 -= 0x31;
    0x000949e0 and r2, r3, 0xff                              |     r2 = r3 & 0xff;
    0x000949e4 cmp r2, 8                                     |     
                                                             |     if (r2 < 8) {
    0x000949e8 bls 0x94a0c                                   |         goto label_5;
                                                             |     }
    0x000949ec ldr r3, [pc, 0x190]                           |     r3 = *(0x94b80);
    0x000949f0 ldr r1, [pc, 0x190]                           |     r1 = *(0x94b84);
    0x000949f4 ldr r0, [pc, 0x190]                           |     r0 = "_basic_iosIcSt11char_traitsIcEEcvbEv";
    0x000949f8 ldr r2, [pc, 0x190]                           |     r2 = *(0x94b8c);
    0x000949fc add r3, pc, r3                                |     r3 = pc + r3;
    0x00094a00 add r1, pc, r1                                |     r1 = pc + r1;
    0x00094a04 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
                                                             | label_1:
    0x00094a08 bl 0x7552c                                    |         assert ();
                                                             | label_5:
    0x00094a0c cmp r3, sl                                    |         
                                                             |         if (r3 <= sl) {
    0x00094a10 blo 0x94a34                                   |             goto label_6;
                                                             |         }
    0x00094a14 ldr r3, [pc, 0x178]                           |         r3 = *(0x94b90);
    0x00094a18 ldr r1, [pc, 0x178]                           |         r1 = *(0x94b94);
    0x00094a1c ldr r0, [pc, 0x178]                           |         r0 = "asic_iosIwSt11char_traitsIwEED0Ev";
    0x00094a20 add r3, pc, r3                                |         r3 = pc + r3;
    0x00094a24 mov r2, 0x3b8                                 |         r2 = 0x3b8;
    0x00094a28 add r1, pc, r1                                |         r1 = pc + r1;
    0x00094a2c add r0, pc, r0                                |         r0 = pc + r0;
    0x00094a30 b 0x94a08                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x00094a34 ldrb r2, [r5, 2]                              |     r2 = *((r5 + 2));
    0x00094a38 add r1, r8, r3, lsl 5                         |     r1 = r8 + (r3 << 5);
    0x00094a3c cmp r2, 0x2e                                  |     
    0x00094a40 add r5, r5, 3                                 |     r5 += 3;
                                                             |     if (r2 == 0x2e) {
    0x00094a44 beq 0x94ac4                                   |         goto label_7;
                                                             |     }
    0x00094a48 cmp r2, 0x3b                                  |     
                                                             |     if (r2 != 0x3b) {
    0x00094a4c beq 0x94a70                                   |         
    0x00094a50 ldr r3, [pc, 0x148]                           |         r3 = *(0x94b9c);
    0x00094a54 ldr r1, [pc, 0x148]                           |         r1 = *(0x94ba0);
    0x00094a58 ldr r0, [pc, 0x148]                           |         r0 = "itsIwEED1Ev";
    0x00094a5c add r3, pc, r3                                |         r3 = pc + r3;
    0x00094a60 mov r2, 0x3c0                                 |         r2 = 0x3c0;
    0x00094a64 add r1, pc, r1                                |         r1 = pc + r1;
    0x00094a68 add r0, pc, r0                                |         r0 = pc + r0;
    0x00094a6c b 0x94a08                                     |         goto label_1;
                                                             |     }
    0x00094a70 ldr r3, [r8, r3, lsl 5]                       |     offset_0 = r3 << 5;
                                                             |     r3 = *((r8 + offset_0));
    0x00094a74 cmp r3, 3                                     |     
                                                             |     if (r3 == 3) {
    0x00094a78 bne 0x94aa4                                   |         
    0x00094a7c add r4, sp, 0x18                              |         r4 += s;
    0x00094a80 ldr r2, [r1, 8]                               |         r2 = *((r1 + 8));
    0x00094a84 mov r0, r4                                    |         r0 = r4;
    0x00094a88 mov r1, fp                                    |         r1 = fp;
    0x00094a8c bl 0x77698                                    |         sprintf (r0, r1, r2)
    0x00094a90 mov r1, r4                                    |         r1 = r4;
    0x00094a94 mov r2, r0                                    |         r2 = r0;
    0x00094a98 mov r0, r6                                    |         r0 = r6;
    0x00094a9c bl 0x94194                                    |         fcn_00094194 (r0, r1);
    0x00094aa0 b 0x9497c                                     |         goto label_0;
                                                             |     }
    0x00094aa4 cmp r3, 4                                     |     
                                                             |     if (r3 != 4) {
    0x00094aa8 bne 0x9497c                                   |         goto label_0;
                                                             |     }
    0x00094aac mov r3, sl                                    |     r3 = sl;
    0x00094ab0 mov r2, r8                                    |     r2 = r8;
    0x00094ab4 ldr r1, [r1, 8]                               |     r1 = *((r1 + 8));
    0x00094ab8 mov r0, r6                                    |     r0 = r6;
    0x00094abc bl 0x94904                                    |     fcn_00094904 (r0, r1);
    0x00094ac0 b 0x9497c                                     |     goto label_0;
                                                             | label_7:
    0x00094ac4 mov r3, 0                                     |     r3 = 0;
    0x00094ac8 add r2, sp, 8                                 |     r2 += var_8h;
                                                             |     do {
    0x00094acc mov ip, r5                                    |         
    0x00094ad0 ldrb r0, [r5], 1                              |         r0 = *(r5);
                                                             |         r5++;
    0x00094ad4 cmp r0, 0x3b                                  |         
                                                             |         if (r0 == 0x3b) {
    0x00094ad8 beq 0x94b38                                   |             goto label_8;
                                                             |         }
    0x00094adc cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00094ae0 bne 0x94b04                                   |             
    0x00094ae4 ldr r3, [pc, 0xc0]                            |             r3 = *(0x94ba8);
    0x00094ae8 ldr r1, [pc, 0xc0]                            |             r1 = *(0x94bac);
    0x00094aec ldr r0, [pc, 0xc0]                            |             r0 = *(0x94bb0);
    0x00094af0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00094af4 ldr r2, [pc, 0xbc]                            |             r2 = *(0x94bb4);
    0x00094af8 add r1, pc, r1                                |             r1 = pc + r1;
    0x00094afc add r0, pc, r0                                |             r0 = pc + r0;
    0x00094b00 b 0x94a08                                     |             goto label_1;
                                                             |         }
    0x00094b04 cmp r3, 0xf                                   |         
                                                             |         if (r3 == 0xf) {
    0x00094b08 bne 0x94b2c                                   |             
    0x00094b0c ldr r3, [pc, 0xa8]                            |             r3 = *(0x94bb8);
    0x00094b10 ldr r1, [pc, 0xa8]                            |             r1 = *(0x94bbc);
    0x00094b14 ldr r0, [pc, 0xa8]                            |             r0 = "ZTISt13basic_fstreamIwSt11char_traitsIwEE";
    0x00094b18 add r3, pc, r3                                |             r3 = pc + r3;
    0x00094b1c ldr r2, [pc, 0xa4]                            |             r2 = "_traitsIcEEcvbEv";
    0x00094b20 add r1, pc, r1                                |             r1 = pc + r1;
    0x00094b24 add r0, pc, r0                                |             r0 = pc + r0;
    0x00094b28 b 0x94a08                                     |             goto label_1;
                                                             |         }
    0x00094b2c strb r0, [r2, r3]                             |         *((r2 + r3)) = r0;
    0x00094b30 add r3, r3, 1                                 |         r3++;
    0x00094b34 b 0x94acc                                     |         
                                                             |     } while (1);
                                                             | label_8:
    0x00094b38 add r0, sp, 0x98                              |     r0 += var_98h;
    0x00094b3c add r3, r0, r3                                |     r3 = r0 + r3;
    0x00094b40 mov r0, r6                                    |     r0 = r6;
    0x00094b44 add r5, ip, 1                                 |     r5 = ip + 1;
    0x00094b48 strb sb, [r3, -0x90]                          |     var_8h = sb;
    0x00094b4c bl 0x944c4                                    |     fcn_000944c4 (r0, r1);
    0x00094b50 b 0x9497c                                     |     goto label_0;
                                                             | label_2:
    0x00094b54 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00094b58 beq 0x94b78                                   |         
    0x00094b5c add r2, sp, 0x98                              |         r2 += var_98h;
    0x00094b60 add r2, r2, r4                                |         r2 += r4;
    0x00094b64 strb r3, [r2, -0x80]                          |         s = r3;
    0x00094b68 add r1, sp, 0x18                              |         r1 += s;
    0x00094b6c mov r2, r4                                    |         r2 = r4;
    0x00094b70 mov r0, r6                                    |         r0 = r6;
    0x00094b74 bl 0x94194                                    |         fcn_00094194 (r0, r1);
                                                             |     }
    0x00094b78 add sp, sp, 0x9c                              |     
    0x00094b7c pop {r4, r5, r6, r7, r8, sb, sl, fp, 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/lib/libstdc++.so.6.0.24 @ 0x94bcc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00094bcc ()                  | void fcn_00094bcc (int32_t arg1, int32_t arg2) {
                                             |     char * s;
                                             |     int32_t var_40h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00094bcc ldr r3, [r1]                  |     r3 = *(r1);
    0x00094bd0 push {r4, r5, r6, lr}         |     
    0x00094bd4 cmp r3, 0                     |     
    0x00094bd8 sub sp, sp, 0x40              |     
    0x00094bdc mov r4, r0                    |     r4 = r0;
    0x00094be0 mov r5, r1                    |     r5 = r1;
                                             |     if (r3 != 0) {
    0x00094be4 beq 0x94c18                   |         
    0x00094be8 ldr r1, [pc, 0x84]            |         r1 = *(0x94c70);
    0x00094bec mov r2, 1                     |         r2 = 1;
    0x00094bf0 add r1, pc, r1                |         r1 = pc + r1;
    0x00094bf4 bl 0x94194                    |         fcn_00094194 (r0, r1);
    0x00094bf8 ldr r1, [r5]                  |         r1 = *(r5);
    0x00094bfc mov r0, r4                    |         r0 = r4;
    0x00094c00 mvn r2, 0                     |         r2 = ~0;
    0x00094c04 bl 0x94194                    |         fcn_00094194 (r0, r1);
    0x00094c08 ldr r1, [pc, 0x68]            |         r1 = "Sd4swapERSd";
    0x00094c0c mov r0, r4                    |         r0 = r4;
    0x00094c10 add r1, pc, r1                |         r1 = pc + r1;
    0x00094c14 bl 0x9430c                    |         fcn_0009430c (r0, r1);
                                             |     }
    0x00094c18 ldr r1, [pc, 0x5c]            |     r1 = *(0x94c78);
    0x00094c1c mov r6, sp                    |     r6 = sp;
    0x00094c20 ldr r2, [r5, 8]               |     r2 = *((r5 + 8));
    0x00094c24 add r1, pc, r1                |     r1 = pc + r1;
    0x00094c28 mov r0, r6                    |     r0 = r6;
    0x00094c2c bl 0x77698                    |     sprintf (r0, r1, r2)
    0x00094c30 mov r1, r6                    |     r1 = r6;
    0x00094c34 mov r2, r0                    |     r2 = r0;
    0x00094c38 mov r0, r4                    |     r0 = r4;
    0x00094c3c bl 0x94194                    |     fcn_00094194 (r0, r1);
    0x00094c40 ldr r3, [r5, 4]               |     r3 = *((r5 + 4));
    0x00094c44 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00094c48 beq 0x94c6c                   |         
    0x00094c4c ldr r1, [pc, 0x2c]            |         r1 = "NSt9basic_iosIcSt11char_traitsIcEED1Ev";
    0x00094c50 mov r0, r4                    |         r0 = r4;
    0x00094c54 add r1, pc, r1                |         r1 = pc + r1;
    0x00094c58 mov r2, 9                     |         r2 = 9;
    0x00094c5c bl 0x94194                    |         fcn_00094194 (r0, r1);
    0x00094c60 ldr r1, [r5, 4]               |         r1 = *((r5 + 4));
    0x00094c64 mov r0, r4                    |         r0 = r4;
    0x00094c68 bl 0x94314                    |         fcn_00094314 (r0, r1);
                                             |     }
    0x00094c6c add sp, sp, 0x40              |     
    0x00094c70 pop {r4, r5, r6, pc}          |     
                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libstdc++.so.6.0.24 @ 0x9533c */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) method.__gnu_debug::_Error_formatter._M_error___const ()     | void method_gnu_debug::_Error_formatter_M_error_const (int32_t arg1) {
                                                                         |     int32_t var_4h;
                                                                         |     int32_t var_8h;
                                                                         |     int32_t var_ch;
                                                                         |     int32_t var_dh;
                                                                         |     char * * endptr;
                                                                         |     r0 = arg1;
                                                                         |     /* __gnu_debug::_Error_formatter::_M_error() const */
    0x0009533c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                 |     
    0x00095340 mov r7, r0                                                |     r7 = r0;
    0x00095344 ldr r0, [pc, 0x448]                                       |     r0 = *(0x95790);
    0x00095348 sub sp, sp, 0x94                                          |     
    0x0009534c mov r3, 0x4e                                              |     r3 = 0x4e;
    0x00095350 str r3, [sp, 4]                                           |     var_4h = r3;
    0x00095354 mov r4, 0                                                 |     r4 = 0;
    0x00095358 mov r3, 1                                                 |     r3 = 1;
    0x0009535c add r0, pc, r0                                            |     r0 = pc + r0;
    0x00095360 str r3, [sp, 8]                                           |     var_8h = r3;
    0x00095364 strb r3, [sp, 0xc]                                        |     var_ch = r3;
    0x00095368 strb r4, [sp, 0xd]                                        |     var_dh = r4;
    0x0009536c bl 0x753f4                                                |     r0 = getenv (r0);
    0x00095370 subs r5, r0, 0                                            |     r5 = r0 - 0;
                                                                         |     if (r5 != r0) {
    0x00095374 beq 0x953a0                                               |         
    0x00095378 mov r2, r4                                                |         r2 = r4;
    0x0009537c add r1, sp, 0x10                                          |         r1 += endptr;
    0x00095380 bl 0x7756c                                                |         strtoul (r0, r1, r2);
    0x00095384 ldrb r3, [r5]                                             |         r3 = *(r5);
    0x00095388 cmp r3, r4                                                |         
                                                                         |         if (r3 == r4) {
    0x0009538c beq 0x953a0                                               |             goto label_3;
                                                                         |         }
    0x00095390 ldr r3, [sp, 0x10]                                        |         r3 = endptr;
    0x00095394 ldrb r3, [r3]                                             |         r3 = *(r3);
    0x00095398 cmp r3, r4                                                |         
                                                                         |         if (r3 == r4) {
    0x0009539c streq r0, [sp, 4]                                         |             var_4h = r0;
                                                                         |             goto label_3;
                                                                         |         }
                                                                         |     }
                                                                         | label_3:
    0x000953a0 ldr r1, [r7]                                              |     r1 = *(r7);
    0x000953a4 add r4, sp, 4                                             |     r4 += var_4h;
    0x000953a8 cmp r1, 0                                                 |     
                                                                         |     if (r1 != 0) {
    0x000953ac beq 0x953d4                                               |         
    0x000953b0 mvn r2, 0                                                 |         r2 = ~0;
    0x000953b4 mov r0, r4                                                |         r0 = r4;
    0x000953b8 bl 0x94194                                                |         fcn_00094194 (r0, r1);
    0x000953bc ldr r1, [pc, 0x3d4]                                       |         r1 = "__IcESaIcEEESt13_Ios_Openmode";
    0x000953c0 mov r2, 1                                                 |         r2 = 1;
    0x000953c4 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000953c8 mov r0, r4                                                |         r0 = r4;
    0x000953cc bl 0x94194                                                |         fcn_00094194 (r0, r1);
    0x000953d0 mov r1, 1                                                 |         r1 = 1;
                                                                         |     }
    0x000953d4 ldr r2, [r7, 4]                                           |     r2 = *((r7 + 4));
    0x000953d8 cmp r2, 0                                                 |     
                                                                         |     if (r2 == 0) {
    0x000953dc beq 0x9541c                                               |         goto label_4;
                                                                         |     }
    0x000953e0 ldr r1, [pc, 0x3b4]                                       |     r1 = *(0x95798);
    0x000953e4 add r5, sp, 0x10                                          |     r5 += endptr;
    0x000953e8 add r1, pc, r1                                            |     r1 = pc + r1;
    0x000953ec mov r0, r5                                                |     r0 = r5;
    0x000953f0 bl 0x77698                                                |     sprintf (r0, r1, r2)
    0x000953f4 mov r1, r5                                                |     r1 = r5;
    0x000953f8 mov r2, r0                                                |     r2 = r0;
    0x000953fc mov r0, r4                                                |     r0 = r4;
    0x00095400 bl 0x94194                                                |     fcn_00094194 (r0, r1);
                                                                         |     do {
    0x00095404 ldr r1, [pc, 0x394]                                       |         r1 = *(0x9579c);
    0x00095408 mov r2, 1                                                 |         r2 = 1;
    0x0009540c add r1, pc, r1                                            |         r1 = pc + r1;
    0x00095410 mov r0, r4                                                |         r0 = r4;
    0x00095414 bl 0x94194                                                |         fcn_00094194 (r0, r1);
    0x00095418 b 0x95424                                                 |         goto label_5;
                                                                         | label_4:
    0x0009541c cmp r1, 0                                                 |         
    0x00095420 bne 0x95404                                               |         
                                                                         |     } while (r1 != 0);
                                                                         | label_5:
    0x00095424 ldr r3, [sp, 4]                                           |     r3 = var_4h;
    0x00095428 ldr r1, [pc, 0x374]                                       |     r1 = *(0x957a0);
    0x0009542c cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x00095430 movne r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x00095434 add r1, pc, r1                                            |     r1 = pc + r1;
    0x00095438 mov r2, 7                                                 |     r2 = 7;
    0x0009543c mov r0, r4                                                |     r0 = r4;
                                                                         |     if (r3 == 0) {
    0x00095440 strbne r3, [sp, 0xd]                                      |         var_dh = r3;
                                                                         |     }
    0x00095444 bl 0x94194                                                |     fcn_00094194 (r0, r1);
    0x00095448 ldr r1, [r7, 0x12c]                                       |     r1 = *((r7 + 0x12c));
    0x0009544c cmp r1, 0                                                 |     
                                                                         |     if (r1 == 0) {
    0x00095450 bne 0x95474                                               |         
    0x00095454 ldr r3, [pc, 0x34c]                                       |         r3 = *(0x957a4);
    0x00095458 ldr r1, [pc, 0x34c]                                       |         r1 = *(0x957a8);
    0x0009545c ldr r0, [pc, 0x34c]                                       |         r0 = "aIcEEESt13_Ios_Openmode";
    0x00095460 add r3, pc, r3                                            |         r3 = pc + r3;
    0x00095464 mov r2, 0x410                                             |         r2 = 0x410;
    0x00095468 add r1, pc, r1                                            |         r1 = pc + r1;
    0x0009546c add r0, pc, r0                                            |         r0 = pc + r0;
    0x00095470 bl 0x7552c                                                |         assert ();
                                                                         |     }
    0x00095474 ldr r3, [r7, 0x128]                                       |     r3 = *((r7 + 0x128));
    0x00095478 add r2, r7, 8                                             |     r2 = r7 + 8;
    0x0009547c mov r0, r4                                                |     r0 = r4;
    0x00095480 bl 0x94904                                                |     fcn_00094904 (r0, r1);
    0x00095484 ldr r1, [pc, 0x328]                                       |     r1 = *(0x957b0);
    0x00095488 ldr sb, [pc, 0x328]                                       |     sb = *(0x957b4);
    0x0009548c ldr sl, [pc, 0x328]                                       |     sl = "itsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x00095490 ldr fp, [pc, 0x328]                                       |     fp = "itsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x00095494 mov r6, 0                                                 |     r6 = 0;
    0x00095498 add r1, pc, r1                                            |     r1 = pc + r1;
    0x0009549c mov r0, r4                                                |     r0 = r4;
    0x000954a0 bl 0x9430c                                                |     fcn_0009430c (r0, r1);
    0x000954a4 add r5, r7, 0xc                                           |     r5 = r7 + 0xc;
    0x000954a8 mov r3, 1                                                 |     r3 = 1;
    0x000954ac mov r2, r6                                                |     r2 = r6;
    0x000954b0 add sb, pc, sb                                            |     sb = pc + sb;
    0x000954b4 add sl, pc, sl                                            |     sl = pc + sl;
    0x000954b8 add fp, pc, fp                                            |     
    0x000954bc strb r3, [sp, 0xc]                                        |     var_ch = r3;
    0x000954c0 strb r6, [sp, 0xd]                                        |     var_dh = r6;
                                                                         |     do {
    0x000954c4 ldr r3, [r7, 0x128]                                       |         r3 = *((r7 + 0x128));
    0x000954c8 cmp r3, r6                                                |         
                                                                         |         if (r3 < r6) {
    0x000954cc bls 0x95790                                               |             goto label_6;
                                                                         |         }
    0x000954d0 ldr r1, [r5, -4]                                          |         r1 = *((r5 - 4));
    0x000954d4 cmp r1, 6                                                 |         
                                                                         |         if (r1 <= 6) {
    0x000954d8 bhi 0x9569c                                               |             
    0x000954dc mov r3, 1                                                 |             r3 = 1;
    0x000954e0 lsl r3, r3, r1                                            |             r3 <<= r1;
    0x000954e4 tst r3, 0x66                                              |             
                                                                         |             if ((r3 & 0x66) == 0) {
    0x000954e8 beq 0x9569c                                               |                 goto label_7;
                                                                         |             }
    0x000954ec cmp r2, 0                                                 |             
                                                                         |             if (r2 == 0) {
    0x000954f0 bne 0x95508                                               |                 
    0x000954f4 ldr r1, [pc, 0x2c8]                                       |                 r1 = "itsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x000954f8 mov r2, 0x24                                              |                 r2 = 0x24;
    0x000954fc add r1, pc, r1                                            |                 r1 = pc + r1;
    0x00095500 mov r0, r4                                                |                 r0 = r4;
    0x00095504 bl 0x94194                                                |                 fcn_00094194 (r0, r1);
                                                                         |             }
    0x00095508 ldr r3, [r5, -4]                                          |             r3 = *((r5 - 4));
    0x0009550c sub r8, r5, 4                                             |             r8 = r5 - 4;
    0x00095510 sub r3, r3, 1                                             |             r3--;
    0x00095514 cmp r3, 5                                                 |             
                                                                         |             if (r3 > 5) {
                                                                         |                 /* switch table (6 cases) at 0x95520 */
    0x00095518 addls pc, pc, r3, lsl 2                                   |                 pc += (r3 << 2);
                                                                         |             }
    0x0009551c b 0x95698                                                 |             goto label_8;
    0x00095520 b 0x95538                                                 |             goto label_9;
    0x00095524 b 0x956a8                                                 |             goto label_10;
    0x00095528 b 0x95698                                                 |             goto label_8;
    0x0009552c b 0x95698                                                 |             goto label_8;
    0x00095530 b 0x956e8                                                 |             goto label_11;
    0x00095534 b 0x956f8                                                 |             goto label_12;
                                                                         | label_9:
    0x00095538 ldr r1, [pc, 0x288]                                       |             r1 = "ar_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x0009553c mov r2, 9                                                 |             r2 = 9;
    0x00095540 add r1, pc, r1                                            |             r1 = pc + r1;
    0x00095544 mov r0, r4                                                |             r0 = r4;
    0x00095548 bl 0x94194                                                |             fcn_00094194 (r0, r1);
    0x0009554c mov r1, r5                                                |             r1 = r5;
    0x00095550 mov r0, r4                                                |             r0 = r4;
    0x00095554 bl 0x94bcc                                                |             fcn_00094bcc (r0, r1);
    0x00095558 ldr r3, [r5, 4]                                           |             r3 = *((r5 + 4));
    0x0009555c cmp r3, 0                                                 |             
                                                                         |             if (r3 != 0) {
    0x00095560 beq 0x955b8                                               |                 
    0x00095564 ldr r3, [r5, 0xc]                                         |                 r3 = *((r5 + 0xc));
    0x00095568 cmp r3, 0                                                 |                 
                                                                         |                 if (r3 != 0) {
    0x0009556c beq 0x955a8                                               |                     
    0x00095570 ldr r1, [pc, 0x254]                                       |                     r1 = *(0x957c8);
    0x00095574 mov r0, r4                                                |                     r0 = r4;
    0x00095578 add r1, pc, r1                                            |                     r1 = pc + r1;
    0x0009557c bl 0x9430c                                                |                     fcn_0009430c (r0, r1);
    0x00095580 ldr r2, [pc, 0x248]                                       |                     r2 = *(0x957cc);
    0x00095584 mov r1, r8                                                |                     r1 = r8;
    0x00095588 add r2, pc, r2                                            |                     r2 = pc + r2;
    0x0009558c mov r0, r4                                                |                     r0 = r4;
    0x00095590 bl 0x944c4                                                |                     fcn_000944c4 (r0, r1);
    0x00095594 ldr r1, [pc, 0x238]                                       |                     r1 = *(0x957d0);
    0x00095598 mov r2, 0xa                                               |                     r2 = 0xa;
    0x0009559c add r1, pc, r1                                            |                     r1 = pc + r1;
    0x000955a0 mov r0, r4                                                |                     r0 = r4;
    0x000955a4 bl 0x94194                                                |                     fcn_00094194 (r0, r1);
                                                                         |                 }
    0x000955a8 ldr r1, [pc, 0x228]                                       |                 r1 = *(0x957d4);
    0x000955ac mov r0, r4                                                |                 r0 = r4;
    0x000955b0 add r1, pc, r1                                            |                 r1 = pc + r1;
    0x000955b4 bl 0x9430c                                                |                 fcn_0009430c (r0, r1);
                                                                         |             }
    0x000955b8 ldr r3, [r5, 0x10]                                        |             r3 = *((r5 + 0x10));
    0x000955bc cmp r3, 0                                                 |             
                                                                         |             if (r3 != 0) {
    0x000955c0 beq 0x955fc                                               |                 
    0x000955c4 ldr r1, [pc, 0x210]                                       |                 r1 = "_ifstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x000955c8 mov r2, 0xa                                               |                 r2 = 0xa;
    0x000955cc add r1, pc, r1                                            |                 r1 = pc + r1;
    0x000955d0 mov r0, r4                                                |                 r0 = r4;
    0x000955d4 bl 0x94194                                                |                 fcn_00094194 (r0, r1);
    0x000955d8 ldr r2, [pc, 0x200]                                       |                 r2 = *(0x957dc);
    0x000955dc mov r1, r8                                                |                 r1 = r8;
    0x000955e0 mov r0, r4                                                |                 r0 = r4;
    0x000955e4 add r2, pc, r2                                            |                 r2 = pc + r2;
    0x000955e8 bl 0x944c4                                                |                 fcn_000944c4 (r0, r1);
    0x000955ec ldr r1, [pc, 0x1f0]                                       |                 r1 = *(0x957e0);
    0x000955f0 mov r0, r4                                                |                 r0 = r4;
    0x000955f4 add r1, pc, r1                                            |                 r1 = pc + r1;
    0x000955f8 bl 0x9430c                                                |                 fcn_0009430c (r0, r1);
                                                                         |             }
    0x000955fc ldr r3, [r5, 0x14]                                        |             r3 = *((r5 + 0x14));
    0x00095600 cmp r3, 0                                                 |             
                                                                         |             if (r3 != 0) {
    0x00095604 beq 0x95688                                               |                 
    0x00095608 ldr r1, [pc, 0x1d8]                                       |                 r1 = "t7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x0009560c mov r2, 0x16                                              |                 r2 = 0x16;
    0x00095610 add r1, pc, r1                                            |                 r1 = pc + r1;
    0x00095614 mov r0, r4                                                |                 r0 = r4;
    0x00095618 bl 0x94194                                                |                 fcn_00094194 (r0, r1);
    0x0009561c ldr r3, [r5, 0x18]                                        |                 r3 = *((r5 + 0x18));
    0x00095620 cmp r3, 0                                                 |                 
                                                                         |                 if (r3 != 0) {
    0x00095624 beq 0x95660                                               |                     
    0x00095628 ldr r1, [pc, 0x1bc]                                       |                     r1 = "IwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x0009562c mov r2, 0xb                                               |                     r2 = 0xb;
    0x00095630 add r1, pc, r1                                            |                     r1 = pc + r1;
    0x00095634 mov r0, r4                                                |                     r0 = r4;
    0x00095638 bl 0x94194                                                |                     fcn_00094194 (r0, r1);
    0x0009563c ldr r2, [pc, 0x1ac]                                       |                     r2 = *(0x957ec);
    0x00095640 mov r1, r8                                                |                     r1 = r8;
    0x00095644 mov r0, r4                                                |                     r0 = r4;
    0x00095648 add r2, pc, r2                                            |                     r2 = pc + r2;
    0x0009564c bl 0x944c4                                                |                     fcn_000944c4 (r0, r1);
    0x00095650 ldr r1, [pc, 0x19c]                                       |                     r1 = "EC2Ev";
    0x00095654 mov r0, r4                                                |                     r0 = r4;
    0x00095658 add r1, pc, r1                                            |                     r1 = pc + r1;
    0x0009565c bl 0x9430c                                                |                     fcn_0009430c (r0, r1);
                                                                         |                 }
    0x00095660 ldr r1, [pc, 0x190]                                       |                 r1 = *(0x957f4);
    0x00095664 add r8, sp, 0x10                                          |                 r8 += endptr;
    0x00095668 ldr r2, [r5, 0x14]                                        |                 r2 = *((r5 + 0x14));
    0x0009566c add r1, pc, r1                                            |                 r1 = pc + r1;
    0x00095670 mov r0, r8                                                |                 r0 = r8;
    0x00095674 bl 0x77698                                                |                 sprintf (r0, r1, r2)
    0x00095678 mov r1, r8                                                |                 r1 = r8;
    0x0009567c mov r2, r0                                                |                 r2 = r0;
    0x00095680 mov r0, r4                                                |                 r0 = r4;
    0x00095684 bl 0x94194                                                |                 fcn_00094194 (r0, r1);
                                                                         |             }
                                                                         | label_0:
    0x00095688 ldr r1, [pc, 0x16c]                                       |             r1 = "_3_Ios_Openmode";
    0x0009568c mov r0, r4                                                |             r0 = r4;
    0x00095690 add r1, pc, r1                                            |             r1 = pc + r1;
    0x00095694 bl 0x9430c                                                |             fcn_0009430c (r0, r1);
                                                                         | label_8:
    0x00095698 mov r2, 1                                                 |             r2 = 1;
                                                                         |         }
                                                                         | label_7:
    0x0009569c add r6, r6, 1                                             |         r6++;
    0x000956a0 add r5, r5, 0x20                                          |         r5 += 0x20;
    0x000956a4 b 0x954c4                                                 |         
                                                                         |     } while (1);
                                                                         | label_10:
    0x000956a8 ldr r1, [pc, 0x150]                                       |     r1 = "asic_stringIcS0_IcESaIcEEESt13_Ios_Openmode";
    0x000956ac mov r2, 9                                                 |     r2 = 9;
    0x000956b0 add r1, pc, r1                                            |     r1 = pc + r1;
                                                                         | label_1:
    0x000956b4 mov r0, r4                                                |     r0 = r4;
    0x000956b8 bl 0x94194                                                |     fcn_00094194 (r0, r1);
    0x000956bc mov r1, r5                                                |     r1 = r5;
    0x000956c0 mov r0, r4                                                |     r0 = r4;
    0x000956c4 bl 0x94bcc                                                |     fcn_00094bcc (r0, r1);
    0x000956c8 ldr r3, [r5, 4]                                           |     r3 = *((r5 + 4));
    0x000956cc cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x000956d0 beq 0x95688                                               |         goto label_0;
                                                                         |     }
    0x000956d4 ldr r1, [pc, 0x128]                                       |     r1 = *(0x95800);
    0x000956d8 add r1, pc, r1                                            |     r1 = pc + r1;
                                                                         | label_2:
    0x000956dc mov r0, r4                                                |     r0 = r4;
    0x000956e0 bl 0x9430c                                                |     fcn_0009430c (r0, r1);
    0x000956e4 b 0x95688                                                 |     goto label_0;
                                                                         | label_11:
    0x000956e8 ldr r1, [pc, 0x118]                                       |     r1 = "_traitsIwEEaSEOS2_";
    0x000956ec mov r2, 9                                                 |     r2 = 9;
    0x000956f0 add r1, pc, r1                                            |     r1 = pc + r1;
    0x000956f4 b 0x956b4                                                 |     goto label_1;
                                                                         | label_12:
    0x000956f8 mov r2, 0x15                                              |     r2 = 0x15;
    0x000956fc mov r1, sb                                                |     r1 = sb;
    0x00095700 mov r0, r4                                                |     r0 = r4;
    0x00095704 bl 0x94194                                                |     fcn_00094194 (r0, r1);
    0x00095708 ldr r3, [r5]                                              |     r3 = *(r5);
    0x0009570c cmp r3, 0                                                 |     
                                                                         |     if (r3 != 0) {
    0x00095710 beq 0x9574c                                               |         
    0x00095714 ldr r8, [pc, 0xf0]                                        |         r8 = *(0x95808);
    0x00095718 mov r2, 1                                                 |         r2 = 1;
    0x0009571c add r8, pc, r8                                            |         r8 = pc + r8;
    0x00095720 mov r1, r8                                                |         r1 = r8;
    0x00095724 mov r0, r4                                                |         r0 = r4;
    0x00095728 bl 0x94194                                                |         fcn_00094194 (r0, r1);
    0x0009572c mvn r2, 0                                                 |         r2 = ~0;
    0x00095730 ldr r1, [r5]                                              |         r1 = *(r5);
    0x00095734 mov r0, r4                                                |         r0 = r4;
    0x00095738 bl 0x94194                                                |         fcn_00094194 (r0, r1);
    0x0009573c mov r2, 1                                                 |         r2 = 1;
    0x00095740 mov r1, r8                                                |         r1 = r8;
    0x00095744 mov r0, r4                                                |         r0 = r4;
    0x00095748 bl 0x94194                                                |         fcn_00094194 (r0, r1);
                                                                         |     }
    0x0009574c mov r2, 3                                                 |     r2 = 3;
    0x00095750 mov r1, sl                                                |     r1 = sl;
    0x00095754 mov r0, r4                                                |     r0 = r4;
    0x00095758 bl 0x94194                                                |     fcn_00094194 (r0, r1);
    0x0009575c ldr r3, [r5, 4]                                           |     r3 = *((r5 + 4));
    0x00095760 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x00095764 beq 0x95688                                               |         goto label_0;
                                                                         |     }
    0x00095768 mov r2, 9                                                 |     r2 = 9;
    0x0009576c mov r1, fp                                                |     r1 = fp;
    0x00095770 mov r0, r4                                                |     r0 = r4;
    0x00095774 bl 0x94194                                                |     fcn_00094194 (r0, r1);
    0x00095778 ldr r1, [r5, 4]                                           |     r1 = *((r5 + 4));
    0x0009577c mov r0, r4                                                |     r0 = r4;
    0x00095780 bl 0x94314                                                |     fcn_00094314 (r0, r1);
    0x00095784 ldr r1, [pc, 0x84]                                        |     r1 = "_Ev";
    0x00095788 add r1, pc, r1                                            |     r1 = pc + r1;
    0x0009578c b 0x956dc                                                 |     goto label_2;
                                                                         | label_6:
    0x00095790 bl 0x74704                                                |     abort ();
    0x00095794 strheq lr, [r4], -r8                                      |     __asm ("strheq lr, [r4], -r8");
                                                                         |     if (r3 != 0) {
    0x00095798 andeq sp, r4, r3, lsl 8                                   |         
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x0009579c andeq lr, r4, sb, asr 20                                  |         lr = r4 & (sb >> 20);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957a0 andeq sp, r4, r1, lsl r3                                  |         
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957a4 andeq lr, r4, r1, lsl 20                                  |         lr = r4 & (r1 << 20);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957a8 andeq lr, r4, r3, asr 23                                  |         lr = r4 & (r3 >> 23);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957ac andeq lr, r4, r2, asr 16                                  |         lr = r4 & (r2 >> 16);
                                                                         |     }
    0x000957b0 ldrdeq lr, pc, [r4], -r1                                  |     __asm ("ldrdeq lr, pc, [r4], -r1");
                                                                         |     if (r3 != 0) {
    0x000957b4 andeq lr, r4, sp, lsr 19                                  |         lr = r4 & (sp >> 19);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957b8 andeq lr, r4, fp, lsl sl                                  |         lr = r4 & (fp << sl);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957bc andeq lr, r4, r2, asr sb                                  |         lr = r4 & (r2 >> sb);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957c0 andeq lr, r4, r2, asr sb                                  |         lr = r4 & (r2 >> sb);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957c4 andeq lr, r4, ip, asr 18                                  |         lr = r4 & (ip >> 18);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957c8 andeq lr, r4, sp, lsr 18                                  |         lr = r4 & (sp >> 18);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957cc andeq sp, r4, r5, ror 7                                   |         
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957d0 muleq r4, r5, r7                                          |         r4 = r5 * r7;
                                                                         |     }
    0x000957d4 ldrdeq lr, pc, [r4], -fp                                  |     __asm ("ldrdeq lr, pc, [r4], -fp");
    0x000957d8 ldrdeq lr, pc, [r4], -r2                                  |     __asm ("ldrdeq lr, pc, [r4], -r2");
    0x000957dc strheq lr, [r4], -sb                                      |     __asm ("strheq lr, [r4], -sb");
                                                                         |     if (r3 != 0) {
    0x000957e0 andeq pc, r4, r7, asr 18                                  |         pc = r4 & (r7 >> 18);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957e4 andeq lr, r4, lr, lsl 17                                  |         lr = r4 & (lr << 17);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957e8 andeq lr, r4, r0, lsl 17                                  |         lr = r4 & (r0 << 17);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957ec andeq lr, r4, r7, ror r8                                  |         lr = r4 & (r7 >>> r8);
                                                                         |     }
    0x000957f0 strdeq lr, pc, [r4], -r4                                  |     __asm ("strdeq lr, pc, [r4], -r4");
                                                                         |     if (r3 != 0) {
    0x000957f4 andeq lr, r4, fp, asr r8                                  |         lr = r4 & (fp >> r8);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957f8 andeq lr, r4, sl, asr 16                                  |         lr = r4 & (sl >> 16);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x000957fc andeq lr, r4, lr, lsr 16                                  |         lr = r4 & (lr >> 16);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x00095800 andeq lr, r4, sp, ror 15                                  |         lr = r4 & (sp >>> 15);
                                                                         |     }
                                                                         |     if (r3 != 0) {
    0x00095804 andeq lr, r4, sl, lsr 15                                  |         lr = r4 & (sl >> 15);
                                                                         |     }
    0x00095808 ldrdeq lr, pc, [r4], -r1                                  |     __asm ("ldrdeq lr, pc, [r4], -r1");
    0x0009580c strheq pc, [r4], -r4                                      |     __asm ("strheq pc, [r4], -r4");
    0x00095810 strdeq lr, pc, [r4], -sl                                  |     __asm ("strdeq lr, pc, [r4], -sl");
                                                                         | }

[*] Function sprintf used 7 times libstdc++.so.6.0.24