[*] Binary protection state of libuClibc-1.0.31.so

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


[*] Function fprintf tear down of libuClibc-1.0.31.so

    ; 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/lib/libuClibc-1.0.31.so @ 0x11c1c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00011c1c ()                  | void fcn_00011c1c () {
    0x00011c1c add ip, pc, 0, 12             |     
    0x00011c20 add ip, ip, 0x76000           |     
    0x00011c24 ldr pc, [ip, 0x158]!          |     pc = *((ip += 0x158));
                                             | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x122ec */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.000122ec ()                          | void fcn_000122ec () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_4h;
                                                     |     int32_t var_104h;
                                                     |     char * s2;
                                                     |     int32_t var_110h;
                                                     |     int32_t var_114h;
    0x000122ec push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x000122f0 ldr r6, [pc, 0x218]                   |     r6 = *(0x1250c);
    0x000122f4 ldr r5, [pc, 0x218]                   |     r5 = *(0x12510);
    0x000122f8 sub sp, sp, 0x114                     |     
    0x000122fc add r4, sp, 0x110                     |     r4 += var_110h;
    0x00012300 mov r3, 4                             |     r3 = 4;
    0x00012304 str r3, [r4, -0x104]!                 |     *((r4 -= 0x104)) = r3;
    0x00012308 add r6, pc, r6                        |     r6 = pc + r6;
    0x0001230c mov r3, 0                             |     r3 = 0;
    0x00012310 add r5, pc, r5                        |     r5 = pc + r5;
    0x00012314 str r3, [sp, 4]                       |     var_4h = r3;
    0x00012318 str r3, [sp]                          |     *(sp) = r3;
    0x0001231c add r2, r6, 4                         |     r2 = r6 + 4;
    0x00012320 mov r3, r4                            |     r3 = r4;
    0x00012324 mov r1, 3                             |     r1 = 3;
    0x00012328 mov r0, r5                            |     r0 = r5;
    0x0001232c bl 0x11c04                            |     fcn_00011c04 ();
    0x00012330 ldr r7, [pc, 0x1e0]                   |     r7 = "=5-%";
    0x00012334 add r7, pc, r7                        |     r7 = pc + r7;
    0x00012338 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001233c bne 0x12384                           |         goto label_4;
                                                     |     }
    0x00012340 str r0, [sp, 4]                       |     var_4h = r0;
    0x00012344 str r0, [sp]                          |     *(sp) = r0;
    0x00012348 mov r3, r4                            |     r3 = r4;
    0x0001234c add r2, r6, 8                         |     r2 = r6 + 8;
    0x00012350 mov r1, 3                             |     r1 = 3;
    0x00012354 add r0, r5, 0xc                       |     r0 = r5 + 0xc;
    0x00012358 bl 0x11c04                            |     r0 = fcn_00011c04 ();
    0x0001235c cmp r0, 0                             |     
    0x00012360 bne 0x12384                           |     
                                                     |     while (r0 == 2) {
    0x00012364 ldr r3, [pc, 0x1b0]                   |         r3 = "7|(@";
    0x00012368 mov r2, 1                             |         r2 = 1;
    0x0001236c add r3, pc, r3                        |         r3 = pc + r3;
    0x00012370 mov r4, 0                             |         r4 = 0;
    0x00012374 str r2, [r3, 0xc]                     |         *((r3 + 0xc)) = r2;
                                                     | label_0:
    0x00012378 mov r0, r4                            |         r0 = r4;
    0x0001237c add sp, sp, 0x114                     |         
    0x00012380 pop {r4, r5, r6, r7, r8, sb, pc}      |         
                                                     | label_4:
    0x00012384 ldr r0, [pc, 0x194]                   |         r0 = *(0x1251c);
    0x00012388 add r5, sp, 0x10                      |         r5 += s2;
    0x0001238c mov r2, 0xff                          |         r2 = 0xff;
    0x00012390 mov r1, r5                            |         r1 = r5;
    0x00012394 add r0, pc, r0                        |         r0 = pc + r0;
    0x00012398 bl 0x14404                            |         r0 = readlink ();
    0x0001239c cmp r0, 0                             |         
                                                     |         if (r0 <= 0) {
    0x000123a0 ble 0x1244c                           |             goto label_5;
                                                     |         }
    0x000123a4 ldr r2, [pc, 0x178]                   |         
    0x000123a8 add r3, sp, 0x110                     |         r3 += var_110h;
    0x000123ac add r0, r3, r0                        |         r0 = r3 + r0;
    0x000123b0 mov r3, 0                             |         r3 = 0;
    0x000123b4 strb r3, [r0, -0x100]                 |         *((r0 - 0x100)) = r3;
    0x000123b8 add r2, pc, r2                        |         r2 = pc + r2;
    0x000123bc ldrb r3, [sp, 0x10]                   |         r3 = s2;
    0x000123c0 ldr r2, [r2]                          |         r2 = *(0x12520);
    0x000123c4 lsl r3, r3, 1                         |         r3 <<= 1;
    0x000123c8 ldrh r3, [r2, r3]                     |         r3 = *((r2 + r3));
    0x000123cc tst r3, 8                             |         
                                                     |         if ((r3 & 8) == 0) {
    0x000123d0 beq 0x123fc                           |             goto label_6;
                                                     |         }
    0x000123d4 ldr r2, [pc, 0x14c]                   |         r2 = *(0x12524);
    0x000123d8 ldr r1, [pc, 0x14c]                   |         r1 = *(0x12528);
    0x000123dc add r2, pc, r2                        |         r2 = pc + r2;
    0x000123e0 add r3, r2, 8                         |         r3 = r2 + 8;
    0x000123e4 add r1, pc, r1                        |         r1 = pc + r1;
    0x000123e8 add r2, r2, 4                         |         r2 += 4;
    0x000123ec mov r0, r5                            |         r0 = r5;
    0x000123f0 bl 0x3a164                            |         r0 = sscanf ();
    0x000123f4 cmp r0, 2                             |         
    0x000123f8 beq 0x12364                           |         
                                                     |     }
                                                     |     do {
                                                     | label_6:
    0x000123fc ldr r6, [pc, 0x12c]                   |         r6 = *(0x1252c);
    0x00012400 mov r7, 0                             |         r7 = 0;
    0x00012404 add r6, pc, r6                        |         r6 = pc + r6;
    0x00012408 mov sb, 0xc                           |         sb = 0xc;
                                                     | label_3:
    0x0001240c mul r8, sb, r7                        |         r8 = sb * r7;
    0x00012410 mov r1, r5                            |         r1 = r5;
    0x00012414 ldr r0, [r8, r6]                      |         r0 = *((r8 + r6));
    0x00012418 bl 0x3e430                            |         r0 = strcoll ();
    0x0001241c subs r4, r0, 0                        |         r4 = r0 - 0;
                                                     |         if (r4 != r0) {
    0x00012420 bne 0x124e8                           |             goto label_7;
                                                     |         }
    0x00012424 add r6, r6, r8                        |         r6 += r8;
    0x00012428 ldr r3, [pc, 0x104]                   |         r3 = *(0x12530);
    0x0001242c ldr r2, [r6, 8]                       |         r2 = *((r6 + 8));
    0x00012430 add r3, pc, r3                        |         r3 = pc + r3;
    0x00012434 str r2, [r3, 8]                       |         *((r3 + 8)) = r2;
    0x00012438 ldr r2, [r6, 4]                       |         r2 = *((r6 + 4));
    0x0001243c str r2, [r3, 4]                       |         *((r3 + 4)) = r2;
    0x00012440 mov r2, 1                             |         r2 = 1;
    0x00012444 str r2, [r3, 0xc]                     |         *((r3 + 0xc)) = r2;
    0x00012448 b 0x12378                             |         goto label_0;
                                                     | label_5:
    0x0001244c ldr r1, [pc, 0xe4]                    |         r1 = *(0x12534);
    0x00012450 ldr r0, [pc, 0xe4]                    |         r0 = *(0x12538);
    0x00012454 add r1, pc, r1                        |         r1 = pc + r1;
    0x00012458 add r0, pc, r0                        |         r0 = pc + r0;
    0x0001245c bl 0x33c58                            |         r0 = fopen (r0, r1);
    0x00012460 subs r6, r0, 0                        |         r6 = r0 - 0;
                                                     |         if (r6 == r0) {
    0x00012464 beq 0x12508                           |             goto label_8;
                                                     |         }
    0x00012468 ldr r8, [pc, 0xd0]                    |         r8 = *(0x1253c);
    0x0001246c add r8, pc, r8                        |         r8 = pc + r8;
                                                     | label_2:
    0x00012470 mov r2, r5                            |         r2 = r5;
    0x00012474 mov r1, r8                            |         r1 = r8;
    0x00012478 mov r0, r6                            |         r0 = r6;
    0x0001247c bl 0x3a18c                            |         r0 = fscanf (r0, r1, r2);
    0x00012480 cmn r0, 1                             |         
    0x00012484 mov r4, r0                            |         r4 = r0;
                                                     |         if (r0 != 1) {
    0x00012488 bne 0x124cc                           |             goto label_9;
                                                     |         }
                                                     | label_1:
    0x0001248c mov r0, r6                            |         r0 = r6;
    0x00012490 bl 0x334ac                            |         fclose (r0);
    0x00012494 cmn r4, 1                             |         
    0x00012498 bne 0x123fc                           |         
                                                     |     } while (r4 != 1);
    0x0001249c ldr r3, [pc, 0xa0]                    |     r3 = *(0x12540);
    0x000124a0 ldr r1, [pc, 0xa0]                    |     r1 = *(0x12544);
    0x000124a4 ldr r3, [r7, r3]                      |     r3 = *((r7 + r3));
    0x000124a8 add r1, pc, r1                        |     r1 = pc + r1;
    0x000124ac ldr r0, [r3]                          |     r0 = *(0x12540);
    0x000124b0 bl 0x34c9c                            |     fprintf (r0, r1, r2, r3)
    0x000124b4 ldr r3, [pc, 0x90]                    |     r3 = *(0x12548);
    0x000124b8 bl 0x11934                            |     fcn_00011934 ();
    0x000124bc mov r2, 0x13                          |     r2 = 0x13;
    0x000124c0 ldr r3, [pc, r3]                      |     r3 = *(0x000124c8);
    0x000124c4 str r2, [r0, r3]                      |     *((r0 + r3)) = r2;
    0x000124c8 b 0x12378                             |     goto label_0;
                                                     | label_9:
    0x000124cc cmp r4, 1                             |     
                                                     |     if (r4 == 1) {
    0x000124d0 beq 0x1248c                           |         goto label_1;
                                                     |     }
    0x000124d4 mov r2, r6                            |     r2 = r6;
    0x000124d8 mov r1, 0x100                         |     r1 = 0x100;
    0x000124dc mov r0, r5                            |     r0 = r5;
    0x000124e0 bl 0x3c144                            |     fgets (r0, r1, r2);
    0x000124e4 b 0x12470                             |     goto label_2;
                                                     | label_7:
    0x000124e8 add r7, r7, 1                         |     r7++;
    0x000124ec cmp r7, 4                             |     
                                                     |     if (r7 != 4) {
    0x000124f0 bne 0x1240c                           |         goto label_3;
                                                     |     }
    0x000124f4 ldr r3, [pc, 0x54]                    |     r3 = *(0x1254c);
    0x000124f8 bl 0x11934                            |     fcn_00011934 ();
    0x000124fc mov r2, 0x16                          |     r2 = 0x16;
    0x00012500 ldr r3, [pc, r3]                      |     r3 = *(0x00012508);
    0x00012504 str r2, [r0, r3]                      |     *((r0 + r3)) = r2;
                                                     | label_8:
    0x00012508 mvn r4, 0                             |     r4 = ~0;
    0x0001250c b 0x12378                             |     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/lib/libuClibc-1.0.31.so @ 0x2fad0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002fad0 ()                                  | void fcn_0002fad0 (int32_t arg_b8h, int32_t arg_bch, int32_t arg_c0h, char * arg_c4h, char * s2, int32_t arg_cch, int32_t arg1, int32_t arg2) {
                                                             |     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;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_5ch;
                                                             |     char * s;
                                                             |     int32_t var_74h;
                                                             |     char * var_78h;
                                                             |     int32_t var_8ch;
                                                             |     int32_t var_94h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0002fad0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0002fad4 ldr ip, [pc, 0xfb4]                           |     ip = *(0x30a8c);
    0x0002fad8 sub sp, sp, 0x94                              |     
    0x0002fadc ldr r4, [sp, 0xb8]                            |     r4 = *(arg_b8h);
    0x0002fae0 add ip, pc, ip                                |     
    0x0002fae4 str ip, [sp, 0x34]                            |     var_34h = ip;
    0x0002fae8 ldr ip, [r4]                                  |     ip = *(r4);
    0x0002faec str r0, [sp, 0x1c]                            |     var_1ch = r0;
    0x0002faf0 str ip, [sp, 0x28]                            |     var_28h = ip;
    0x0002faf4 add ip, ip, 1                                 |     
    0x0002faf8 str ip, [sp, 0x30]                            |     var_30h = ip;
    0x0002fafc ldrb ip, [r3, ip]                             |     ip = *((r3 + ip));
    0x0002fb00 str r1, [sp, 0x20]                            |     var_20h = r1;
    0x0002fb04 cmp ip, 0x27                                  |     
    0x0002fb08 str r2, [sp, 0x24]                            |     var_24h = r2;
                                                             |     if (ip != 0x27) {
    0x0002fb0c beq 0x2fb28                                   |         
    0x0002fb10 mov sb, r3                                    |         sb = r3;
                                                             |         if (ip > 0x27) {
    0x0002fb14 bhi 0x2fb50                                   |             goto label_56;
                                                             |         }
    0x0002fb18 cmp ip, 0                                     |         
                                                             |         if (ip == 0) {
    0x0002fb1c beq 0x2fb28                                   |             goto label_12;
                                                             |         }
    0x0002fb20 cmp ip, 0x22                                  |         
                                                             |         if (ip != 0x22) {
    0x0002fb24 bne 0x2fb60                                   |             goto label_57;
                                                             |         }
                                                             |     }
                                                             | label_12:
    0x0002fb28 add r0, sp, 0x1c                              |     r0 += var_1ch;
    0x0002fb2c ldm r0, {r0, r1, r2}                          |     r0 = *(r0);
                                                             |     r1 = *((r0 + 4));
                                                             |     r2 = *((r0 + 8));
    0x0002fb30 mov r3, 0x24                                  |     r3 = 0x24;
    0x0002fb34 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0002fb38 bl 0x2e9cc                                    |     fcn_0002e9cc (r0, r1);
    0x0002fb3c ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x0002fb40 str r0, [r3]                                  |     *(r3) = r0;
                                                             | label_13:
    0x0002fb44 clz fp, r0                                    |     
    0x0002fb48 lsr fp, fp, 5                                 |     
    0x0002fb4c b 0x2fda8                                     |     goto label_15;
                                                             | label_56:
    0x0002fb50 cmp ip, 0x28                                  |     
                                                             |     if (ip != 0x28) {
    0x0002fb54 beq 0x2fbd4                                   |         
    0x0002fb58 cmp ip, 0x5b                                  |         
                                                             |         if (ip == 0x5b) {
    0x0002fb5c beq 0x2fdc8                                   |             goto label_58;
                                                             |         }
                                                             | label_57:
    0x0002fb60 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x0002fb64 str r3, [r4]                                  |         *(r4) = r3;
    0x0002fb68 ldrb r6, [sb, r3]                             |         r6 = *((sb + r3));
    0x0002fb6c mov r3, 0                                     |         r3 = 0;
    0x0002fb70 cmp r6, 0x7b                                  |         
    0x0002fb74 str r3, [sp, 0x48]                            |         var_48h = r3;
    0x0002fb78 str r3, [sp, 0x44]                            |         var_44h = r3;
    0x0002fb7c str r3, [sp, 0x50]                            |         var_50h = r3;
    0x0002fb80 str r3, [sp, 0x4c]                            |         var_4ch = r3;
                                                             |         if (r6 != 0x7b) {
    0x0002fb84 ldreq r3, [sp, 0x28]                          |             r3 = var_28h;
                                                             |         }
                                                             |         if (r6 != 0x7b) {
    0x0002fb88 addeq r3, r3, 2                               |             r3 += 2;
                                                             |         }
                                                             |         if (r6 != 0x7b) {
    0x0002fb8c streq r3, [r4]                                |             *(r4) = r3;
                                                             |         }
    0x0002fb90 ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002fb94 ldrb r2, [sb, r3]                             |         r2 = *((sb + r3));
    0x0002fb98 cmp r2, 0x23                                  |         
                                                             |         if (r2 == 0x23) {
    0x0002fb9c movne fp, 0                                   |             
                                                             |         }
                                                             |         if (r2 != 0x23) {
    0x0002fba0 bne 0x2fde8                                   |             goto label_59;
                                                             |         }
    0x0002fba4 cmp r6, 0x7b                                  |         
                                                             |         if (r6 != 0x7b) {
    0x0002fba8 addeq r3, r3, 1                               |             r3++;
                                                             |         }
                                                             |         if (r6 != 0x7b) {
    0x0002fbac streq r3, [r4]                                |             *(r4) = r3;
                                                             |         }
                                                             |         if (r6 != 0x7b) {
    0x0002fbb0 moveq fp, 1                                   |             
                                                             |         }
                                                             |         if (r6 == 0x7b) {
    0x0002fbb4 beq 0x2fde8                                   |             goto label_59;
                                                             |         }
    0x0002fbb8 mov r5, 0                                     |         r5 = 0;
    0x0002fbbc mov fp, 1                                     |         
    0x0002fbc0 str r5, [sp, 0x18]                            |         var_18h = r5;
    0x0002fbc4 mov r6, r5                                    |         r6 = r5;
    0x0002fbc8 mov r7, r5                                    |         r7 = r5;
    0x0002fbcc mov r8, r5                                    |         r8 = r5;
    0x0002fbd0 b 0x2ffa0                                     |         goto label_5;
                                                             |     }
    0x0002fbd4 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x0002fbd8 add r0, r3, 2                                 |     r0 = r3 + 2;
    0x0002fbdc ldrb r3, [sb, r0]                             |     r3 = *((sb + r0));
    0x0002fbe0 cmp r3, 0x28                                  |     
                                                             |     if (r3 != 0x28) {
    0x0002fbe4 bne 0x2fc70                                   |         goto label_60;
                                                             |     }
    0x0002fbe8 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x0002fbec add ip, r3, 3                                 |     
    0x0002fbf0 mov r2, ip                                    |     r2 = ip;
    0x0002fbf4 mov r3, 0                                     |     r3 = 0;
                                                             |     do {
    0x0002fbf8 ldrb r1, [sb, r2]                             |         r1 = *((sb + r2));
    0x0002fbfc cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x0002fc00 beq 0x2fc70                                   |             goto label_60;
                                                             |         }
    0x0002fc04 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0002fc08 bne 0x2fc50                                   |             
    0x0002fc0c cmp r1, 0x29                                  |             
                                                             |             if (r1 != 0x29) {
    0x0002fc10 bne 0x30e10                                   |                 goto label_61;
                                                             |             }
    0x0002fc14 add r2, sb, r2                                |             r2 = sb + r2;
    0x0002fc18 ldrb r2, [r2, 1]                              |             r2 = *((r2 + 1));
    0x0002fc1c cmp r2, 0x29                                  |             
                                                             |             if (r2 != 0x29) {
    0x0002fc20 bne 0x2fc70                                   |                 goto label_60;
                                                             |             }
    0x0002fc24 str ip, [r4]                                  |             *(r4) = ip;
    0x0002fc28 str r3, [sp, 8]                               |             var_8h = r3;
    0x0002fc2c ldr r3, [sp, 0xbc]                            |             r3 = *(arg_bch);
    0x0002fc30 add r0, sp, 0x1c                              |             r0 += var_1ch;
    0x0002fc34 str r3, [sp, 4]                               |             var_4h = r3;
    0x0002fc38 str r4, [sp]                                  |             *(sp) = r4;
    0x0002fc3c ldm r0, {r0, r1, r2}                          |             r0 = *(r0);
                                                             |             r1 = *((r0 + 4));
                                                             |             r2 = *((r0 + 8));
    0x0002fc40 mov r3, sb                                    |             r3 = sb;
                                                             | label_2:
    0x0002fc44 bl 0x2f7a4                                    |             r0 = fcn_0002f7a4 (r0, r1, r2, r3, r4);
    0x0002fc48 mov fp, r0                                    |             
    0x0002fc4c b 0x2fda8                                     |             goto label_15;
                                                             |         }
    0x0002fc50 cmp r1, 0x28                                  |         
                                                             |         if (r1 != 0x28) {
    0x0002fc54 bne 0x2fc64                                   |             goto label_62;
                                                             |         }
                                                             | label_43:
    0x0002fc58 add r3, r3, 1                                 |         r3++;
                                                             | label_0:
    0x0002fc5c add r2, r2, 1                                 |         r2++;
    0x0002fc60 b 0x2fbf8                                     |         
                                                             |     } while (1);
                                                             | label_62:
    0x0002fc64 cmp r1, 0x29                                  |     
                                                             |     if (r1 != 0x29) {
    0x0002fc68 subeq r3, r3, 1                               |         r3--;
                                                             |     }
    0x0002fc6c b 0x2fc5c                                     |     goto label_0;
                                                             | label_60:
    0x0002fc70 ldr r3, [sp, 0xbc]                            |     r3 = *(arg_bch);
    0x0002fc74 ands r5, r3, 4                                |     r5 = r3 & 4;
                                                             |     if (r5 == r3) {
    0x0002fc78 movne fp, 4                                   |         
                                                             |     }
                                                             |     if (r5 != r3) {
    0x0002fc7c bne 0x2fda8                                   |         goto label_15;
                                                             |     }
    0x0002fc80 ldr r3, [sp, 0xcc]                            |     r3 = *(arg_cch);
    0x0002fc84 mov r6, r5                                    |     r6 = r5;
    0x0002fc88 cmp r3, 0                                     |     
    0x0002fc8c ldr r3, [sp, 0xc0]                            |     r3 = *(arg_c0h);
    0x0002fc90 mov fp, 1                                     |     
                                                             |     if (r3 == 0) {
    0x0002fc94 movne r3, 0                                   |         r3 = 0;
                                                             |     }
    0x0002fc98 add r7, sp, 0x78                              |     r7 += var_78h;
    0x0002fc9c str r0, [r4]                                  |     *(r4) = r0;
    0x0002fca0 str r3, [sp, 0xc0]                            |     *(arg_c0h) = r3;
    0x0002fca4 str r5, [sp, 0x78]                            |     var_78h = r5;
    0x0002fca8 str r5, [sp, 0x60]                            |     s = r5;
                                                             |     do {
    0x0002fcac ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002fcb0 ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x0002fcb4 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0002fcb8 bne 0x2fccc                                   |             
    0x0002fcbc mov r0, r6                                    |             r0 = r6;
    0x0002fcc0 bl 0x120a8                                    |             fcn_000120a8 ();
    0x0002fcc4 mov fp, 5                                     |             
    0x0002fcc8 b 0x2fda8                                     |             goto label_15;
                                                             |         }
    0x0002fccc sub r2, r3, 0x22                              |         r2 = r3 - 0x22;
    0x0002fcd0 cmp r2, 7                                     |         
                                                             |         if (r2 > 7) {
                                                             |             /* switch table (8 cases) at 0x2fcdc */
    0x0002fcd4 addls pc, pc, r2, lsl 2                       |             pc += (r2 << 2);
                                                             |         }
    0x0002fcd8 b 0x2fd14                                     |         goto label_1;
    0x0002fcdc b 0x2fd3c                                     |         goto label_63;
    0x0002fce0 b 0x2fd14                                     |         goto label_1;
    0x0002fce4 b 0x2fd14                                     |         goto label_1;
    0x0002fce8 b 0x2fd14                                     |         goto label_1;
    0x0002fcec b 0x2fd14                                     |         goto label_1;
    0x0002fcf0 b 0x2fcfc                                     |         goto label_64;
    0x0002fcf4 b 0x2fdb4                                     |         goto label_65;
    0x0002fcf8 b 0x2fd54                                     |         goto label_66;
                                                             | label_64:
    0x0002fcfc cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x0002fd00 moveq r5, 1                                   |             r5 = 1;
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0002fd04 beq 0x2fd14                                   |             
    0x0002fd08 cmp r5, 1                                     |             
                                                             |             if (r5 != 1) {
    0x0002fd0c moveq r5, 0                                   |                 r5 = 0;
                                                             |             }
                                                             |             if (r5 != 1) {
    0x0002fd10 movne r5, 2                                   |                 r5 = 2;
                                                             |                 goto label_1;
                                                             |             }
                                                             |         }
                                                             | label_1:
    0x0002fd14 mov r0, r6                                    |         r0 = r6;
    0x0002fd18 mov r2, r7                                    |         r2 = r7;
    0x0002fd1c add r1, sp, 0x60                              |         r1 += s;
    0x0002fd20 bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x0002fd24 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x0002fd28 beq 0x2fdc0                                   |             goto label_67;
                                                             |         }
    0x0002fd2c ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002fd30 add r3, r3, 1                                 |         r3++;
    0x0002fd34 str r3, [r4]                                  |         *(r4) = r3;
    0x0002fd38 b 0x2fcac                                     |         
                                                             |     } while (1);
                                                             | label_63:
    0x0002fd3c cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0002fd40 moveq r5, 2                                   |         r5 = 2;
                                                             |         goto label_68;
                                                             |     }
                                                             |     if (r5 == 0) {
                                                             | label_68:
    0x0002fd44 beq 0x2fd14                                   |         goto label_1;
                                                             |     }
    0x0002fd48 subs r5, r5, 2                                |     r5 -= 2;
                                                             |     if (r5 == r5) {
    0x0002fd4c movne r5, 1                                   |         r5 = 1;
                                                             |     }
    0x0002fd50 b 0x2fd14                                     |     goto label_1;
                                                             | label_66:
    0x0002fd54 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0002fd58 bne 0x2fd14                                   |         goto label_1;
                                                             |     }
    0x0002fd5c subs fp, fp, 1                                |     
                                                             |     if (fp != fp) {
    0x0002fd60 bne 0x2fd14                                   |         goto label_1;
                                                             |     }
    0x0002fd64 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0002fd68 beq 0x2fda8                                   |         goto label_15;
                                                             |     }
    0x0002fd6c ldr r3, [sp, 0xc8]                            |     r3 = *(s2);
    0x0002fd70 add r1, sp, 0x1c                              |     r1 += var_1ch;
    0x0002fd74 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x0002fd78 ldr r3, [sp, 0xc4]                            |     r3 = *(arg_c4h);
    0x0002fd7c mov r0, r6                                    |     r0 = r6;
    0x0002fd80 str r3, [sp, 8]                               |     var_8h = r3;
    0x0002fd84 ldr r3, [sp, 0xc0]                            |     r3 = *(arg_c0h);
    0x0002fd88 str r3, [sp, 4]                               |     var_4h = r3;
    0x0002fd8c ldr r3, [sp, 0xbc]                            |     r3 = *(arg_bch);
    0x0002fd90 str r3, [sp]                                  |     *(sp) = r3;
    0x0002fd94 ldm r1, {r1, r2, r3}                          |     r1 = *(r1);
                                                             |     r2 = *((r1 + 4));
                                                             |     r3 = *((r1 + 8));
    0x0002fd98 bl 0x2ece0                                    |     r0 = fcn_0002ece0 (r0, r1, r2, r3, r4, r5);
    0x0002fd9c mov fp, r0                                    |     
    0x0002fda0 mov r0, r6                                    |     r0 = r6;
    0x0002fda4 bl 0x120a8                                    |     fcn_000120a8 ();
                                                             |     do {
                                                             | label_15:
    0x0002fda8 mov r0, fp                                    |         r0 = fp;
    0x0002fdac add sp, sp, 0x94                              |         
    0x0002fdb0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_65:
    0x0002fdb4 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x0002fdb8 addeq fp, fp, 1                               |             
                                                             |         }
    0x0002fdbc b 0x2fd14                                     |         goto label_1;
                                                             | label_67:
    0x0002fdc0 mov fp, 1                                     |         
    0x0002fdc4 b 0x2fda8                                     |         
                                                             |     } while (1);
                                                             | label_58:
    0x0002fdc8 ldr ip, [sp, 0x28]                            |     ip = var_28h;
    0x0002fdcc add ip, ip, 2                                 |     
    0x0002fdd0 str ip, [r4]                                  |     *(r4) = ip;
    0x0002fdd4 mov ip, 1                                     |     
    0x0002fdd8 str ip, [sp, 8]                               |     var_8h = ip;
    0x0002fddc ldr ip, [sp, 0xbc]                            |     ip = *(arg_bch);
    0x0002fde0 stm sp, {r4, ip}                              |     *(sp) = r4;
                                                             |     *((sp + 4)) = ip;
    0x0002fde4 b 0x2fc44                                     |     goto label_2;
                                                             | label_59:
    0x0002fde8 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0002fdec ldr r2, [pc, 0xca0]                           |     
    0x0002fdf0 ldrb r7, [sb, r3]                             |     r7 = *((sb + r3));
    0x0002fdf4 add r2, pc, r2                                |     r2 = pc + r2;
    0x0002fdf8 ldr r2, [r2]                                  |     r2 = *(0x30a90);
    0x0002fdfc lsl r3, r7, 1                                 |     r3 = r7 << 1;
    0x0002fe00 ldrh r5, [r2, r3]                             |     r5 = *((r2 + r3));
    0x0002fe04 lsr r8, r5, 2                                 |     r8 = r5 >> 2;
    0x0002fe08 and r8, r8, 1                                 |     r8 &= 1;
    0x0002fe0c cmp r7, 0x5f                                  |     
                                                             |     if (r7 != 0x5f) {
    0x0002fe10 orreq r8, r8, 1                               |         r8 |= 1;
                                                             |     }
    0x0002fe14 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x0002fe18 beq 0x2fe90                                   |         goto label_69;
                                                             |     }
    0x0002fe1c ldr r7, [pc, 0xc74]                           |     r7 = *(0x30a94);
    0x0002fe20 mov r0, 0                                     |     r0 = 0;
    0x0002fe24 add r8, sp, 0x48                              |     r8 += var_48h;
    0x0002fe28 add sl, sp, 0x44                              |     sl += var_44h;
    0x0002fe2c add r7, pc, r7                                |     r7 = pc + r7;
                                                             |     do {
    0x0002fe30 ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002fe34 mov r2, r8                                    |         r2 = r8;
    0x0002fe38 ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x0002fe3c mov r1, sl                                    |         r1 = sl;
    0x0002fe40 bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x0002fe44 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0002fe48 beq 0x30df8                                   |             goto label_70;
                                                             |         }
    0x0002fe4c ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002fe50 ldr r1, [r7]                                  |         r1 = *(r7);
    0x0002fe54 add r3, r3, 1                                 |         r3++;
    0x0002fe58 str r3, [r4]                                  |         *(r4) = r3;
    0x0002fe5c ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x0002fe60 lsl r2, r3, 1                                 |         r2 = r3 << 1;
    0x0002fe64 ldrh r5, [r1, r2]                             |         r5 = *((r1 + r2));
    0x0002fe68 lsr r5, r5, 0xb                               |         r5 >>= 0xb;
    0x0002fe6c and r5, r5, 1                                 |         r5 &= 1;
    0x0002fe70 cmp r3, 0x5f                                  |         
                                                             |         if (r3 != 0x5f) {
    0x0002fe74 orreq r5, r5, 1                               |             r5 |= 1;
                                                             |         }
    0x0002fe78 cmp r5, 0                                     |         
    0x0002fe7c bne 0x2fe30                                   |         
                                                             |     } while (r5 != 0);
                                                             | label_3:
    0x0002fe80 cmp r6, 0x7b                                  |     
                                                             |     if (r6 != 0x7b) {
    0x0002fe84 bne 0x30210                                   |         goto label_71;
                                                             |     }
    0x0002fe88 mov r8, r0                                    |     r8 = r0;
    0x0002fe8c b 0x2fef8                                     |     goto label_72;
                                                             | label_69:
    0x0002fe90 ands r5, r5, 8                                |     r5 &= 8;
                                                             |     if (r5 == r5) {
    0x0002fe94 beq 0x2ff2c                                   |         goto label_73;
                                                             |     }
    0x0002fe98 ldr r5, [pc, 0xbfc]                           |     r5 = *(0x30a98);
    0x0002fe9c add r7, sp, 0x48                              |     r7 += var_48h;
    0x0002fea0 add sl, sp, 0x44                              |     sl += var_44h;
    0x0002fea4 add r5, pc, r5                                |     r5 = pc + r5;
                                                             |     do {
    0x0002fea8 ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002feac mov r0, r8                                    |         r0 = r8;
    0x0002feb0 ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x0002feb4 mov r2, r7                                    |         r2 = r7;
    0x0002feb8 mov r1, sl                                    |         r1 = sl;
    0x0002febc bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x0002fec0 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 == r0) {
    0x0002fec4 beq 0x30df8                                   |             goto label_70;
                                                             |         }
    0x0002fec8 cmp r6, 0x7b                                  |         
                                                             |         if (r6 != 0x7b) {
    0x0002fecc bne 0x30224                                   |             goto label_74;
                                                             |         }
    0x0002fed0 ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002fed4 ldr r2, [r5]                                  |         r2 = *(r5);
    0x0002fed8 add r3, r3, 1                                 |         r3++;
    0x0002fedc str r3, [r4]                                  |         *(r4) = r3;
    0x0002fee0 ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x0002fee4 lsl r3, r3, 1                                 |         r3 <<= 1;
    0x0002fee8 ldrh r3, [r2, r3]                             |         r3 = *((r2 + r3));
    0x0002feec tst r3, 8                                     |         
    0x0002fef0 bne 0x2fea8                                   |         
                                                             |     } while ((r3 & 8) != 0);
    0x0002fef4 mov r5, 1                                     |     r5 = 1;
                                                             | label_72:
    0x0002fef8 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0002fefc ldrb r6, [sb, r3]                             |     r6 = *((sb + r3));
    0x0002ff00 cmp r6, 0x2d                                  |     
                                                             |     if (r6 == 0x2d) {
    0x0002ff04 beq 0x30104                                   |         goto label_75;
                                                             |     }
                                                             |     if (r6 > 0x2d) {
    0x0002ff08 bhi 0x30018                                   |         goto label_76;
                                                             |     }
    0x0002ff0c cmp r6, 0x25                                  |     
                                                             |     if (r6 == 0x25) {
    0x0002ff10 beq 0x300e4                                   |         goto label_77;
                                                             |     }
    0x0002ff14 cmp r6, 0x2b                                  |     
                                                             |     if (r6 == 0x2b) {
    0x0002ff18 beq 0x30104                                   |         goto label_75;
                                                             |     }
    0x0002ff1c cmp r6, 0x23                                  |     
                                                             |     if (r6 == 0x23) {
    0x0002ff20 beq 0x30080                                   |         goto label_78;
                                                             |     }
                                                             |     do {
                                                             | label_4:
    0x0002ff24 mov r5, 5                                     |         r5 = 5;
    0x0002ff28 b 0x30df0                                     |         goto label_79;
                                                             | label_73:
    0x0002ff2c ldr r0, [pc, 0xb6c]                           |         r0 = *(0x30a9c);
    0x0002ff30 mov r1, r7                                    |         r1 = r7;
    0x0002ff34 add r0, pc, r0                                |         r0 = pc + r0;
    0x0002ff38 bl 0x3ef3c                                    |         r0 = index ();
    0x0002ff3c subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x0002ff40 beq 0x2ff74                                   |             
    0x0002ff44 mov r3, r7                                    |             r3 = r7;
    0x0002ff48 add r2, sp, 0x48                              |             r2 += var_48h;
    0x0002ff4c add r1, sp, 0x44                              |             r1 += var_44h;
    0x0002ff50 mov r0, r5                                    |             r0 = r5;
    0x0002ff54 bl 0x2e9cc                                    |             r0 = fcn_0002e9cc (r0, r1);
    0x0002ff58 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x0002ff5c beq 0x30df8                                   |                 goto label_70;
                                                             |             }
    0x0002ff60 ldr r3, [r4]                                  |             r3 = *(r4);
    0x0002ff64 mov r5, 1                                     |             r5 = 1;
    0x0002ff68 add r3, r3, 1                                 |             r3++;
    0x0002ff6c str r3, [r4]                                  |             *(r4) = r3;
    0x0002ff70 b 0x2fe80                                     |             goto label_3;
                                                             |         }
    0x0002ff74 cmp r6, 0x7b                                  |         
                                                             |         if (r6 == 0x7b) {
    0x0002ff78 beq 0x30e08                                   |             goto label_80;
                                                             |         }
    0x0002ff7c mov r0, r8                                    |         r0 = r8;
    0x0002ff80 mov r5, r8                                    |         r5 = r8;
    0x0002ff84 mov r6, r8                                    |         r6 = r8;
    0x0002ff88 str r8, [sp, 0x18]                            |         var_18h = r8;
                                                             | label_6:
    0x0002ff8c ldr r3, [r4]                                  |         r3 = *(r4);
    0x0002ff90 mov r7, r8                                    |         r7 = r8;
    0x0002ff94 sub r3, r3, 1                                 |         r3--;
    0x0002ff98 mov r8, r0                                    |         r8 = r0;
    0x0002ff9c str r3, [r4]                                  |         *(r4) = r3;
                                                             | label_5:
    0x0002ffa0 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x0002ffa4 ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x0002ffa8 cmp r3, 0x7b                                  |         
                                                             |         if (r3 == 0x7b) {
    0x0002ffac bne 0x2ffc0                                   |             
    0x0002ffb0 ldr r3, [r4]                                  |             r3 = *(r4);
    0x0002ffb4 ldrb r3, [sb, r3]                             |             r3 = *((sb + r3));
    0x0002ffb8 cmp r3, 0x7d                                  |             
                                                             |             if (r3 != 0x7d) {
    0x0002ffbc bne 0x30054                                   |                 goto label_10;
                                                             |             }
                                                             |         }
    0x0002ffc0 cmp r8, 0                                     |         
                                                             |         if (r8 != 0) {
    0x0002ffc4 bne 0x30238                                   |             goto label_81;
                                                             |         }
    0x0002ffc8 cmp fp, 0                                     |         
                                                             |         if (fp == 0) {
    0x0002ffcc beq 0x3022c                                   |             goto label_82;
                                                             |         }
    0x0002ffd0 ldr r3, [pc, 0xacc]                           |         r3 = *(0x30aa0);
    0x0002ffd4 strb r8, [sp, 0x74]                           |         var_74h = r8;
    0x0002ffd8 ldr r2, [pc, r3]                              |         r2 = *(0x0002ffe0);
    0x0002ffdc ldr r1, [pc, 0xac4]                           |         r1 = *(0x30aa4);
    0x0002ffe0 sub r2, r2, 1                                 |         r2--;
    0x0002ffe4 add r4, sp, 0x60                              |         r4 += s;
    0x0002ffe8 asr r3, r2, 0x1f                              |         r3 = r2 >> 0x1f;
    0x0002ffec add r1, pc, r1                                |         r1 = pc + r1;
    0x0002fff0 mov r0, r4                                    |         r0 = r4;
    0x0002fff4 bl 0x34d3c                                    |         sprintf ();
    0x0002fff8 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x0002fffc bne 0x30e28                                   |             goto label_83;
                                                             |         }
                                                             | label_50:
    0x00030000 mov r0, 0                                     |         r0 = 0;
    0x00030004 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00030008 mov r0, r7                                    |         r0 = r7;
    0x0003000c bl 0x120a8                                    |         fcn_000120a8 ();
    0x00030010 mov r5, 0                                     |         r5 = 0;
    0x00030014 b 0x30c78                                     |         goto label_84;
                                                             | label_76:
    0x00030018 cmp r6, 0x3d                                  |         
                                                             |         if (r6 == 0x3d) {
    0x0003001c beq 0x30104                                   |             goto label_75;
                                                             |         }
                                                             |         if (r6 > 0x3d) {
    0x00030020 bhi 0x3005c                                   |             goto label_85;
                                                             |         }
    0x00030024 cmp r6, 0x3a                                  |         
    0x00030028 bne 0x2ff24                                   |         
                                                             |     } while (r6 != 0x3a);
    0x0003002c ldr r0, [pc, 0xa78]                           |     r0 = *(0x30aa8);
    0x00030030 add r6, r3, 1                                 |     r6 = r3 + 1;
    0x00030034 ldrb r1, [sb, r6]                             |     r1 = *((sb + r6));
    0x00030038 add r0, pc, r0                                |     r0 = pc + r0;
    0x0003003c bl 0x3ef3c                                    |     r0 = index ();
    0x00030040 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x00030044 strne r6, [r4]                                |         *(r4) = r6;
                                                             |     }
                                                             |     if (r7 == r0) {
    0x00030048 movne r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r7 == r0) {
    0x0003004c ldrbne r6, [sb, r6]                           |         r6 = *((sb + r6));
                                                             |     }
                                                             |     if (r7 != r0) {
    0x00030050 bne 0x30108                                   |         goto label_86;
                                                             |     }
                                                             | label_10:
    0x00030054 mov r5, 5                                     |     r5 = 5;
    0x00030058 b 0x30550                                     |     goto label_18;
                                                             | label_85:
    0x0003005c cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x00030060 beq 0x30104                                   |         goto label_75;
                                                             |     }
    0x00030064 cmp r6, 0x7d                                  |     
                                                             |     if (r6 != 0x7d) {
    0x00030068 bne 0x2ff24                                   |         goto label_4;
                                                             |     }
                                                             | label_11:
    0x0003006c mov r3, 0                                     |     r3 = 0;
    0x00030070 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00030074 mov r6, r3                                    |     r6 = r3;
    0x00030078 mov r7, r3                                    |     r7 = r3;
    0x0003007c b 0x2ffa0                                     |     goto label_5;
                                                             | label_78:
    0x00030080 add r3, r3, 1                                 |     r3++;
    0x00030084 ldrb r2, [sb, r3]                             |     r2 = *((sb + r3));
    0x00030088 cmp r2, 0x23                                  |     
                                                             |     if (r2 != 0x23) {
    0x0003008c bne 0x30104                                   |         goto label_75;
                                                             |     }
    0x00030090 str r3, [r4]                                  |     *(r4) = r3;
    0x00030094 mov r6, 0x4c                                  |     r6 = 0x4c;
    0x00030098 mov r3, 0                                     |     r3 = 0;
    0x0003009c str r3, [sp, 0x18]                            |     var_18h = r3;
                                                             |     do {
                                                             | label_7:
    0x000300a0 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000300a4 mov sl, 0                                     |         sl = 0;
    0x000300a8 add r3, r3, 1                                 |         r3++;
    0x000300ac str r3, [r4]                                  |         *(r4) = r3;
    0x000300b0 add r3, sp, 0x50                              |         r3 += var_50h;
    0x000300b4 str r3, [sp, 0x38]                            |         var_38h = r3;
    0x000300b8 mov r7, sl                                    |         r7 = sl;
    0x000300bc add r3, sp, 0x4c                              |         r3 += var_4ch;
    0x000300c0 str sl, [sp, 0x2c]                            |         var_2ch = sl;
    0x000300c4 str r3, [sp, 0x3c]                            |         var_3ch = r3;
                                                             | label_8:
    0x000300c8 ldr r2, [r4]                                  |         r2 = *(r4);
    0x000300cc ldrb r3, [sb, r2]                             |         r3 = *((sb + r2));
    0x000300d0 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000300d4 bne 0x30110                                   |             goto label_87;
                                                             |         }
    0x000300d8 mov r0, r8                                    |         r0 = r8;
    0x000300dc mov r8, r7                                    |         r8 = r7;
    0x000300e0 b 0x2ff8c                                     |         goto label_6;
                                                             | label_77:
    0x000300e4 add r3, r3, 1                                 |         r3++;
    0x000300e8 ldrb r2, [sb, r3]                             |         r2 = *((sb + r3));
    0x000300ec cmp r2, 0x25                                  |         
                                                             |         if (r2 != 0x25) {
    0x000300f0 streq r3, [r4]                                |             *(r4) = r3;
                                                             |         }
                                                             |         if (r2 != 0x25) {
    0x000300f4 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r2 != 0x25) {
    0x000300f8 streq r3, [sp, 0x18]                          |             var_18h = r3;
                                                             |         }
                                                             |         if (r2 != 0x25) {
    0x000300fc moveq r6, 0x52                                |             r6 = 0x52;
                                                             |         }
    0x00030100 beq 0x300a0                                   |         
                                                             |     } while (r2 == 0x25);
                                                             | label_75:
    0x00030104 mov r3, 0                                     |     r3 = 0;
                                                             | label_86:
    0x00030108 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0003010c b 0x300a0                                     |     goto label_7;
                                                             | label_87:
    0x00030110 cmp r3, 0x5c                                  |     
                                                             |     if (r3 == 0x5c) {
    0x00030114 beq 0x301a0                                   |         goto label_88;
                                                             |     }
                                                             |     if (r3 > 0x5c) {
    0x00030118 bhi 0x3015c                                   |         goto label_89;
                                                             |     }
    0x0003011c cmp r3, 0x22                                  |     
                                                             |     if (r3 == 0x22) {
    0x00030120 beq 0x301f8                                   |         goto label_90;
                                                             |     }
    0x00030124 cmp r3, 0x27                                  |     
                                                             |     if (r3 == 0x27) {
    0x00030128 beq 0x301dc                                   |         goto label_91;
                                                             |     }
                                                             |     do {
                                                             | label_9:
    0x0003012c ldr r3, [r4]                                  |         r3 = *(r4);
    0x00030130 mov r0, r7                                    |         r0 = r7;
    0x00030134 ldrb r3, [sb, r3]                             |         r3 = *((sb + r3));
    0x00030138 ldr r2, [sp, 0x38]                            |         r2 = var_38h;
    0x0003013c ldr r1, [sp, 0x3c]                            |         r1 = var_3ch;
    0x00030140 bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x00030144 subs r7, r0, 0                                |         r7 = r0 - 0;
                                                             |         if (r7 == r0) {
    0x00030148 beq 0x301d4                                   |             goto label_20;
                                                             |         }
    0x0003014c ldr r3, [r4]                                  |         r3 = *(r4);
    0x00030150 add r3, r3, 1                                 |         r3++;
    0x00030154 str r3, [r4]                                  |         *(r4) = r3;
    0x00030158 b 0x300c8                                     |         goto label_8;
                                                             | label_89:
    0x0003015c cmp r3, 0x7b                                  |         
                                                             |         if (r3 == 0x7b) {
    0x00030160 beq 0x30188                                   |             goto label_92;
                                                             |         }
    0x00030164 cmp r3, 0x7d                                  |         
    0x00030168 bne 0x3012c                                   |         
                                                             |     } while (r3 != 0x7d);
    0x0003016c cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x00030170 bne 0x3012c                                   |         goto label_9;
                                                             |     }
    0x00030174 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00030178 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0003017c beq 0x2ffa0                                   |         goto label_5;
                                                             |     }
    0x00030180 sub r3, r3, 1                                 |     r3--;
    0x00030184 b 0x30198                                     |     goto label_93;
                                                             | label_92:
    0x00030188 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x0003018c ldreq r3, [sp, 0x2c]                          |         r3 = var_2ch;
                                                             |     }
                                                             |     if (sl == 0) {
    0x00030190 addeq r3, r3, 1                               |         r3++;
                                                             |         goto label_94;
                                                             |     }
                                                             |     if (sl != 0) {
                                                             | label_94:
    0x00030194 bne 0x3012c                                   |         goto label_9;
                                                             |     }
                                                             | label_93:
    0x00030198 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x0003019c b 0x3012c                                     |     goto label_9;
                                                             | label_88:
    0x000301a0 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x000301a4 bne 0x3012c                                   |         goto label_9;
                                                             |     }
    0x000301a8 add r2, r2, 1                                 |     r2++;
    0x000301ac str r2, [r4]                                  |     *(r4) = r2;
    0x000301b0 ldrb r2, [sb, r2]                             |     r2 = *((sb + r2));
    0x000301b4 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000301b8 beq 0x30054                                   |         goto label_10;
                                                             |     }
    0x000301bc mov r0, r7                                    |     r0 = r7;
    0x000301c0 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x000301c4 ldr r1, [sp, 0x3c]                            |     r1 = var_3ch;
    0x000301c8 bl 0x2e9cc                                    |     r0 = fcn_0002e9cc (r0, r1);
    0x000301cc subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x000301d0 bne 0x3012c                                   |         goto label_9;
                                                             |     }
                                                             | label_20:
    0x000301d4 mov r5, 1                                     |     r5 = 1;
    0x000301d8 b 0x30550                                     |     goto label_18;
                                                             | label_91:
    0x000301dc cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x000301e0 moveq sl, 1                                   |         sl = 1;
                                                             |         goto label_95;
                                                             |     }
                                                             |     if (sl == 0) {
                                                             | label_95:
    0x000301e4 beq 0x3012c                                   |         goto label_9;
                                                             |     }
    0x000301e8 cmp sl, 1                                     |     
                                                             |     if (sl != 1) {
    0x000301ec moveq sl, 0                                   |         sl = 0;
                                                             |     }
                                                             |     if (sl == 1) {
    0x000301f0 movne sl, 2                                   |         sl = 2;
                                                             |     }
    0x000301f4 b 0x3012c                                     |     goto label_9;
                                                             | label_90:
    0x000301f8 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x000301fc moveq sl, 2                                   |         sl = 2;
                                                             |         goto label_96;
                                                             |     }
                                                             |     if (sl == 0) {
                                                             | label_96:
    0x00030200 beq 0x3012c                                   |         goto label_9;
                                                             |     }
    0x00030204 subs sl, sl, 2                                |     sl -= 2;
                                                             |     if (sl == sl) {
    0x00030208 movne sl, 1                                   |         sl = 1;
                                                             |     }
    0x0003020c b 0x3012c                                     |     goto label_9;
                                                             | label_71:
    0x00030210 mov r3, 0                                     |     r3 = 0;
    0x00030214 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00030218 mov r6, r3                                    |     r6 = r3;
    0x0003021c mov r8, r3                                    |     r8 = r3;
    0x00030220 b 0x2ff8c                                     |     goto label_6;
                                                             | label_74:
    0x00030224 mov r5, 1                                     |     r5 = 1;
    0x00030228 b 0x3006c                                     |     goto label_11;
                                                             | label_82:
    0x0003022c ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00030230 str r3, [r4]                                  |     *(r4) = r3;
    0x00030234 b 0x2fb28                                     |     goto label_12;
                                                             | label_81:
    0x00030238 ldr r1, [pc, 0x870]                           |     
    0x0003023c ldrb r3, [r8]                                 |     r3 = *(r8);
    0x00030240 add r1, pc, r1                                |     r1 = pc + r1;
    0x00030244 ldr r1, [r1]                                  |     r1 = *(0x30aac);
    0x00030248 lsl r2, r3, 1                                 |     r2 = r3 << 1;
    0x0003024c ldrh sb, [r1, r2]                             |     sb = *((r1 + r2));
    0x00030250 ands sb, sb, 8                                |     sb &= 8;
                                                             |     if (sb == sb) {
    0x00030254 beq 0x302a8                                   |         goto label_97;
                                                             |     }
    0x00030258 mov r0, r8                                    |     r0 = r8;
    0x0003025c bl 0x4d01c                                    |     atoi ();
    0x00030260 ldr r3, [pc, 0x84c]                           |     
    0x00030264 add r3, pc, r3                                |     r3 = pc + r3;
    0x00030268 ldr r3, [r3]                                  |     r3 = *(0x30ab0);
    0x0003026c cmp r0, r3                                    |     
    0x00030270 blt 0x3028c                                   |     
                                                             |     while (1) {
    0x00030274 ldr r3, [sp, 0xbc]                            |         r3 = *(arg_bch);
    0x00030278 ands r5, r3, 0x20                             |         r5 = r3 & 0x20;
                                                             |         if (r5 != r3) {
    0x0003027c moveq r4, r5                                  |             r4 = r5;
                                                             |         }
                                                             |         if (r5 == r3) {
    0x00030280 beq 0x303e8                                   |             goto label_98;
                                                             |         }
    0x00030284 mov r5, 3                                     |         r5 = 3;
    0x00030288 b 0x30550                                     |         goto label_18;
    0x0003028c ldr r3, [pc, 0x824]                           |         
    0x00030290 add r3, pc, r3                                |         r3 = pc + r3;
    0x00030294 ldr r3, [r3]                                  |         r3 = *(0x30ab4);
    0x00030298 ldr r4, [r3, r0, lsl 2]                       |         r4 = *(0x30ab4);
                                                             | label_14:
    0x0003029c cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x000302a0 bne 0x302dc                                   |             goto label_99;
                                                             |         }
    0x000302a4 b 0x30274                                     |         
                                                             |     }
                                                             | label_97:
    0x000302a8 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x000302ac beq 0x30580                                   |         goto label_100;
                                                             |     }
    0x000302b0 cmp r3, 0x24                                  |     
                                                             |     if (r3 == 0x24) {
    0x000302b4 bne 0x302e4                                   |         
    0x000302b8 strb sb, [sp, 0x74]                           |         var_74h = sb;
    0x000302bc bl 0x513cc                                    |         getpid ();
    0x000302c0 ldr r1, [pc, 0x7f4]                           |         r1 = *(0x30ab8);
    0x000302c4 add r4, sp, 0x60                              |         r4 += s;
    0x000302c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000302cc mov r2, r0                                    |         r2 = r0;
    0x000302d0 asr r3, r0, 0x1f                              |         r3 = r0 >> 0x1f;
    0x000302d4 mov r0, r4                                    |         r0 = r4;
    0x000302d8 bl 0x34d3c                                    |         sprintf ();
                                                             | label_99:
    0x000302dc mov r5, 0                                     |         r5 = 0;
    0x000302e0 b 0x303e8                                     |         goto label_98;
                                                             |     }
    0x000302e4 cmp r3, 0x40                                  |     
    0x000302e8 cmpne r3, 0x2a                                |     __asm ("cmpne r3, 0x2a");
                                                             |     if (r3 != 0x40) {
    0x000302ec moveq r4, 1                                   |         r4 = 1;
                                                             |     }
                                                             |     if (r3 == 0x40) {
    0x000302f0 movne r4, 0                                   |         r4 = 0;
                                                             |     }
    0x000302f4 tst fp, r4                                    |     
                                                             |     if ((fp & r4) != 0) {
    0x000302f8 beq 0x30364                                   |         
    0x000302fc ldr r3, [pc, 0x7bc]                           |         r3 = *(0x30abc);
    0x00030300 strb sb, [sp, 0x74]                           |         var_74h = sb;
    0x00030304 ldr r2, [pc, r3]                              |         r2 = *(0x0003030c);
    0x00030308 ldr r1, [pc, 0x7b4]                           |         r1 = *(0x30ac0);
    0x0003030c cmp r2, 1                                     |         
                                                             |         if (r2 >= 1) {
    0x00030310 movlt r2, 1                                   |             r2 = 1;
                                                             |         }
    0x00030314 sub r2, r2, 1                                 |         r2--;
    0x00030318 add r4, sp, 0x60                              |         r4 += s;
    0x0003031c asr r3, r2, 0x1f                              |         r3 = r2 >> 0x1f;
    0x00030320 add r1, pc, r1                                |         r1 = pc + r1;
    0x00030324 mov r0, r4                                    |         r0 = r4;
    0x00030328 bl 0x34d3c                                    |         sprintf ();
    0x0003032c add r0, sp, 0x1c                              |         r0 += var_1ch;
    0x00030330 ldm r0, {r0, r1, r2}                          |         r0 = *(r0);
                                                             |         r1 = *((r0 + 4));
                                                             |         r2 = *((r0 + 8));
    0x00030334 mov r3, r4                                    |         r3 = r4;
    0x00030338 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0003033c bl 0x2ec24                                    |         fcn_0002ec24 (r0, r1);
    0x00030340 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00030344 str r0, [r3]                                  |         *(r3) = r0;
    0x00030348 mov r0, r8                                    |         r0 = r8;
    0x0003034c bl 0x120a8                                    |         fcn_000120a8 ();
    0x00030350 mov r0, r7                                    |         r0 = r7;
                                                             | label_26:
    0x00030354 bl 0x120a8                                    |         fcn_000120a8 ();
                                                             | label_25:
    0x00030358 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x0003035c ldr r0, [r3]                                  |         r0 = *(r3);
    0x00030360 b 0x2fb44                                     |         goto label_13;
                                                             |     }
    0x00030364 cmp r3, 0x2a                                  |     
                                                             |     if (r3 != 0x2a) {
    0x00030368 beq 0x3037c                                   |         
    0x0003036c ldr r3, [sp, 0xcc]                            |         r3 = *(arg_cch);
    0x00030370 eor r3, r3, 1                                 |         r3 ^= 1;
    0x00030374 ands r4, r3, r4                               |         r4 = r3 & r4;
                                                             |         if (r4 == r3) {
    0x00030378 beq 0x30488                                   |             goto label_101;
                                                             |         }
                                                             |     }
    0x0003037c ldr r3, [pc, 0x744]                           |     r3 = *(0x30ac4);
    0x00030380 mov r4, 0                                     |     r4 = 0;
    0x00030384 ldr sl, [pc, r3]                              |     sl = *(0x0003038c);
    0x00030388 b 0x3039c                                     |     
                                                             |     while (sb != 0) {
    0x0003038c mov r0, sb                                    |         r0 = sb;
    0x00030390 bl 0x3e3c0                                    |         r0 = strlen ();
    0x00030394 add r0, r0, 1                                 |         r0++;
    0x00030398 add r4, r4, r0                                |         r4 += r0;
    0x0003039c ldr sb, [sl, 4]!                              |         sb = *((sl += 4));
    0x000303a0 cmp sb, 0                                     |         
    0x000303a4 bne 0x3038c                                   |         
                                                             |     }
    0x000303a8 mov r0, r4                                    |     r0 = r4;
    0x000303ac bl 0x11a90                                    |     r0 = fcn_00011a90 ();
    0x000303b0 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x000303b4 beq 0x30550                                   |         goto label_18;
                                                             |     }
    0x000303b8 ldr sl, [pc, 0x70c]                           |     sl = *(0x30ac8);
    0x000303bc ldr r3, [pc, 0x70c]                           |     r3 = *(0x30acc);
    0x000303c0 strb sb, [r4]                                 |     *(r4) = sb;
    0x000303c4 mov r0, r4                                    |     r0 = r4;
    0x000303c8 mov sb, r5                                    |     sb = r5;
    0x000303cc add sl, pc, sl                                |     sl = pc + sl;
    0x000303d0 add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     do {
    0x000303d4 ldr r2, [sl]                                  |         r2 = *(sl);
    0x000303d8 lsl r1, sb, 2                                 |         r1 = sb << 2;
    0x000303dc ldr r2, [r2, sb, lsl 2]                       |         offset_0 = sb << 2;
                                                             |         r2 = *((r2 + offset_0));
    0x000303e0 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x000303e4 bne 0x3045c                                   |             
                                                             | label_98:
    0x000303e8 cmp r6, 0                                     |             
                                                             |             if (r6 == 0) {
    0x000303ec beq 0x308f4                                   |                 goto label_29;
                                                             |             }
    0x000303f0 cmp r6, 0x2d                                  |             
                                                             |             if (r6 == 0x2d) {
    0x000303f4 beq 0x30680                                   |                 goto label_102;
                                                             |             }
                                                             |             if (r6 > 0x2d) {
    0x000303f8 bhi 0x30590                                   |                 goto label_103;
                                                             |             }
    0x000303fc cmp r6, 0x25                                  |             
                                                             |             if (r6 != 0x25) {
    0x00030400 beq 0x30414                                   |                 
    0x00030404 cmp r6, 0x2b                                  |                 
                                                             |                 if (r6 == 0x2b) {
    0x00030408 beq 0x306bc                                   |                     goto label_104;
                                                             |                 }
    0x0003040c cmp r6, 0x23                                  |                 
                                                             |                 if (r6 != 0x23) {
                                                             | label_17:
    0x00030410 bne 0x305a4                                   |                     goto label_105;
                                                             |                 }
                                                             |             }
                                                             | label_16:
    0x00030414 add r3, sp, 0x5c                              |             r3 += var_5ch;
    0x00030418 mov sb, 0                                     |             sb = 0;
    0x0003041c str r3, [sp, 0x28]                            |             var_28h = r3;
    0x00030420 mov sl, r7                                    |             sl = r7;
    0x00030424 add r3, sp, 0x58                              |             r3 += var_58h;
    0x00030428 str sb, [sp, 0x5c]                            |             var_5ch = sb;
    0x0003042c str sb, [sp, 0x58]                            |             var_58h = sb;
    0x00030430 str sb, [sp, 0x54]                            |             var_54h = sb;
    0x00030434 str r3, [sp, 0x2c]                            |             var_2ch = r3;
                                                             | label_23:
    0x00030438 cmp sl, 0                                     |             
                                                             |             if (sl != 0) {
    0x0003043c beq 0x3044c                                   |                 
    0x00030440 ldrb r3, [sl]                                 |                 r3 = *(sl);
    0x00030444 cmp r3, 0                                     |                 
                                                             |                 if (r3 != 0) {
    0x00030448 bne 0x30728                                   |                     goto label_106;
                                                             |                 }
                                                             |             }
    0x0003044c mov r0, r7                                    |             r0 = r7;
    0x00030450 bl 0x120a8                                    |             fcn_000120a8 ();
    0x00030454 ldr r7, [sp, 0x54]                            |             r7 = var_54h;
    0x00030458 b 0x305a4                                     |             goto label_105;
                                                             |         }
    0x0003045c cmp sb, 1                                     |         
                                                             |         if (sb == 1) {
    0x00030460 movne r2, 0x20                                |             r2 = 0x20;
                                                             |         }
                                                             |         if (sb == 1) {
    0x00030464 strbne r2, [r0]                               |             *(r0) = r2;
                                                             |         }
    0x00030468 ldr r2, [r3]                                  |         r2 = *(r3);
                                                             |         if (sb == 1) {
    0x0003046c addne r0, r0, 1                               |             r0++;
                                                             |         }
    0x00030470 ldr r1, [r2, r1]                              |         r1 = *((r2 + r1));
    0x00030474 str r3, [sp, 0x28]                            |         var_28h = r3;
    0x00030478 add sb, sb, 1                                 |         sb++;
    0x0003047c bl 0x3f8c8                                    |         stpcpy ();
    0x00030480 ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x00030484 b 0x303d4                                     |         
                                                             |     } while (1);
                                                             | label_101:
    0x00030488 ldr r3, [pc, 0x644]                           |     
    0x0003048c add r3, pc, r3                                |     r3 = pc + r3;
    0x00030490 ldr r3, [r3]                                  |     r3 = *(0x30ad0);
    0x00030494 cmp r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x00030498 ldreq r3, [pc, 0x638]                         |         r3 = *((pc + 0x638));
                                                             |     }
                                                             |     if (r3 != 2) {
    0x0003049c addeq r3, pc, r3                              |         r3 = pc + r3;
                                                             |     }
                                                             |     if (r3 != 2) {
    0x000304a0 ldreq r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 == 2) {
    0x000304a4 ldreq r4, [r3, 4]                             |         r4 = *((r3 + 4));
                                                             |         goto label_107;
                                                             |     }
                                                             |     if (r3 == 2) {
                                                             | label_107:
    0x000304a8 beq 0x3029c                                   |         goto label_14;
                                                             |     }
                                                             |     if (r3 <= 2) {
    0x000304ac ble 0x30568                                   |         goto label_108;
                                                             |     }
    0x000304b0 ldr r3, [pc, 0x624]                           |     
    0x000304b4 add r0, sp, 0x1c                              |     r0 += var_1ch;
    0x000304b8 ldm r0, {r0, r1, r2}                          |     r0 = *(r0);
                                                             |     r1 = *((r0 + 4));
                                                             |     r2 = *((r0 + 8));
    0x000304bc add r3, pc, r3                                |     r3 = pc + r3;
    0x000304c0 ldr r3, [r3]                                  |     
    0x000304c4 ldr r0, [r0]                                  |     r0 = *(r0);
    0x000304c8 ldr r3, [r3, 4]                               |     r3 = *(0x30adc);
    0x000304cc bl 0x2ec24                                    |     r0 = fcn_0002ec24 (r0, r1);
    0x000304d0 subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x000304d4 beq 0x30550                                   |         goto label_18;
                                                             |     }
    0x000304d8 ldr r0, [sp, 0xc0]                            |     r0 = *(arg_c0h);
    0x000304dc bl 0x2ec60                                    |     r0 = fcn_0002ec60 (r0, r1);
    0x000304e0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000304e4 bne 0x30550                                   |         goto label_18;
                                                             |     }
    0x000304e8 ldr r4, [pc, 0x5f0]                           |     r4 = *(0x30adc);
    0x000304ec mov sb, 0xc                                   |     sb = 0xc;
    0x000304f0 add r4, pc, r4                                |     r4 = pc + r4;
                                                             |     do {
    0x000304f4 ldr r2, [r4]                                  |         r2 = *(r4);
    0x000304f8 sub r1, sb, 4                                 |         r1 = sb - 4;
    0x000304fc ldr r3, [r2, sb]                              |         r3 = *((r2 + sb));
    0x00030500 add r0, r2, r1                                |         r0 = r2 + r1;
    0x00030504 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00030508 bne 0x3052c                                   |             
    0x0003050c ldr r2, [sp, 0x24]                            |             r2 = var_24h;
    0x00030510 str r3, [r2]                                  |             *(r2) = r3;
    0x00030514 ldr r2, [sp, 0x20]                            |             r2 = var_20h;
    0x00030518 str r3, [r2]                                  |             *(r2) = r3;
    0x0003051c ldr r2, [sp, 0x1c]                            |             r2 = var_1ch;
    0x00030520 str r3, [r2]                                  |             *(r2) = r3;
    0x00030524 ldr r4, [r0]                                  |             r4 = *(r0);
    0x00030528 b 0x3029c                                     |             goto label_14;
                                                             |         }
    0x0003052c ldr r0, [r2, r1]                              |         r0 = *((r2 + r1));
    0x00030530 bl 0x3f894                                    |         r0 = strdup ();
    0x00030534 subs r1, r0, 0                                |         r1 = r0 - 0;
                                                             |         if (r1 == r0) {
    0x00030538 beq 0x30550                                   |             goto label_18;
                                                             |         }
    0x0003053c ldr r0, [sp, 0xc0]                            |         r0 = *(arg_c0h);
    0x00030540 bl 0x2ec60                                    |         fcn_0002ec60 (r0, r1);
    0x00030544 add sb, sb, 4                                 |         sb += 4;
    0x00030548 cmp r0, 0                                     |         
    0x0003054c beq 0x304f4                                   |         
                                                             |     } while (r0 == 0);
                                                             | label_18:
    0x00030550 mov r0, r8                                    |     r0 = r8;
    0x00030554 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030558 mov r0, r7                                    |     r0 = r7;
    0x0003055c bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030560 mov fp, r5                                    |     
    0x00030564 b 0x2fda8                                     |     goto label_15;
                                                             | label_108:
    0x00030568 mov r0, r8                                    |     r0 = r8;
    0x0003056c bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030570 mov r0, r7                                    |     r0 = r7;
                                                             | label_40:
    0x00030574 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030578 mov fp, 0                                     |     
    0x0003057c b 0x2fda8                                     |     goto label_15;
                                                             | label_100:
    0x00030580 mov r0, r8                                    |     r0 = r8;
    0x00030584 bl 0x4b980                                    |     r0 = getenv (r0);
    0x00030588 mov r4, r0                                    |     r4 = r0;
    0x0003058c b 0x3029c                                     |     goto label_14;
                                                             | label_103:
    0x00030590 cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x00030594 beq 0x30680                                   |         goto label_102;
                                                             |     }
                                                             |     if (r6 <= 0x3f) {
    0x00030598 bhi 0x30668                                   |         
    0x0003059c cmp r6, 0x3d                                  |         
                                                             |         if (r6 == 0x3d) {
    0x000305a0 beq 0x30680                                   |             goto label_102;
                                                             |         }
                                                             | label_105:
    0x000305a4 cmp r6, 0x2d                                  |         
                                                             |         if (r6 == 0x2d) {
    0x000305a8 beq 0x30be8                                   |             goto label_109;
                                                             |         }
                                                             |         if (r6 > 0x2d) {
    0x000305ac bhi 0x308e0                                   |             goto label_110;
                                                             |         }
    0x000305b0 cmp r6, 0x25                                  |         
                                                             |         if (r6 != 0x25) {
    0x000305b4 beq 0x305c8                                   |             
    0x000305b8 cmp r6, 0x2b                                  |             
                                                             |             if (r6 == 0x2b) {
    0x000305bc beq 0x30c64                                   |                 goto label_111;
                                                             |             }
    0x000305c0 cmp r6, 0x23                                  |             
                                                             |             if (r6 != 0x23) {
                                                             | label_28:
    0x000305c4 bne 0x308f4                                   |                 goto label_29;
                                                             |             }
                                                             |         }
                                                             | label_27:
    0x000305c8 cmp r4, 0                                     |         
    0x000305cc clz r3, r7                                    |         r3 &= r7;
    0x000305d0 lsr r3, r3, 5                                 |         r3 >>= 5;
                                                             |         if (r4 == 0) {
    0x000305d4 movne r2, r3                                  |             r2 = r3;
                                                             |         }
                                                             |         if (r4 != 0) {
    0x000305d8 moveq r2, 1                                   |             r2 = 1;
                                                             |         }
    0x000305dc cmp r2, 0                                     |         
    0x000305e0 str r2, [sp, 0x18]                            |         var_18h = r2;
                                                             |         if (r2 != 0) {
    0x000305e4 bne 0x308f4                                   |             goto label_29;
                                                             |         }
    0x000305e8 ldrb r3, [r7]                                 |         r3 = *(r7);
    0x000305ec cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000305f0 beq 0x308f4                                   |             goto label_29;
                                                             |         }
    0x000305f4 mov r0, r4                                    |         r0 = r4;
    0x000305f8 bl 0x3e3c0                                    |         strlen ();
    0x000305fc cmp r6, 0x25                                  |         
    0x00030600 add sb, r4, r0                                |         sb = r4 + r0;
                                                             |         if (r6 == 0x25) {
    0x00030604 beq 0x30af8                                   |             goto label_112;
                                                             |         }
    0x00030608 ldr r2, [sp, 0x18]                            |         r2 = var_18h;
                                                             |         if (r6 > 0x25) {
    0x0003060c bhi 0x30988                                   |             goto label_113;
                                                             |         }
    0x00030610 cmp r6, 0x23                                  |         
                                                             |         if (r6 != 0x23) {
    0x00030614 moveq sl, r4                                  |             sl = r4;
                                                             |         }
                                                             |         if (r6 != 0x23) {
    0x00030618 moveq r6, r2                                  |             r6 = r2;
                                                             |         }
                                                             |         if (r6 != 0x23) {
    0x0003061c bne 0x308f4                                   |             goto label_29;
                                                             |         }
                                                             | label_30:
    0x00030620 cmp sb, sl                                    |         
                                                             |         if (sb <= sl) {
    0x00030624 blo 0x308f4                                   |             goto label_29;
                                                             |         }
    0x00030628 ldrb r3, [sl]                                 |         r3 = *(sl);
    0x0003062c mov r2, 0                                     |         r2 = 0;
    0x00030630 strb r6, [sl]                                 |         *(sl) = r6;
    0x00030634 mov r1, r4                                    |         r1 = r4;
    0x00030638 mov r0, r7                                    |         r0 = r7;
    0x0003063c str r3, [sp, 0x18]                            |         var_18h = r3;
    0x00030640 bl 0x1a6f0                                    |         fnmatch ();
    0x00030644 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00030648 cmp r0, 1                                     |         
                                                             |         if (r0 == 1) {
    0x0003064c beq 0x30a04                                   |             goto label_114;
                                                             |         }
    0x00030650 cmp r5, 0                                     |         
    0x00030654 strb r3, [sl]                                 |         *(sl) = r3;
                                                             |         if (r5 == 0) {
    0x00030658 movne r0, sl                                  |             r0 = sl;
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0003065c bne 0x30a48                                   |             goto label_115;
                                                             |         }
    0x00030660 mov r4, sl                                    |         r4 = sl;
    0x00030664 b 0x308f4                                     |         goto label_29;
                                                             |     }
    0x00030668 cmp r6, 0x4c                                  |     
                                                             |     if (r6 == 0x4c) {
    0x0003066c beq 0x30414                                   |         goto label_16;
                                                             |     }
    0x00030670 cmp r6, 0x52                                  |     
    0x00030674 b 0x30410                                     |     goto label_17;
                                                             | label_46:
    0x00030678 mov r5, 0                                     |     r5 = 0;
    0x0003067c mov fp, r5                                    |     
                                                             | label_102:
    0x00030680 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030684 beq 0x30414                                   |         goto label_16;
                                                             |     }
    0x00030688 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x0003068c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030690 bne 0x306a0                                   |         goto label_116;
                                                             |     }
    0x00030694 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00030698 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0003069c bne 0x30414                                   |         goto label_16;
                                                             |     }
                                                             | label_116:
    0x000306a0 cmp r6, 0x3d                                  |     
                                                             |     if (r6 == 0x3d) {
    0x000306a4 beq 0x30ed4                                   |         goto label_117;
                                                             |     }
    0x000306a8 cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x000306ac beq 0x30b50                                   |         goto label_118;
                                                             |     }
    0x000306b0 cmp r6, 0x2d                                  |     
                                                             |     if (r6 != 0x2d) {
    0x000306b4 bne 0x308f4                                   |         goto label_29;
                                                             |     }
    0x000306b8 b 0x30be8                                     |     goto label_109;
                                                             | label_104:
    0x000306bc cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000306c0 bne 0x306dc                                   |         goto label_47;
                                                             |     }
                                                             | label_19:
    0x000306c4 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x000306c8 beq 0x30550                                   |         goto label_18;
                                                             |     }
    0x000306cc mov r0, r4                                    |     r0 = r4;
    0x000306d0 bl 0x120a8                                    |     fcn_000120a8 ();
                                                             | label_37:
    0x000306d4 mov r5, 0                                     |     r5 = 0;
    0x000306d8 b 0x30550                                     |     goto label_18;
                                                             | label_47:
    0x000306dc ldrb r2, [r4]                                 |     r2 = *(r4);
    0x000306e0 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000306e4 cmp r2, 0                                     |     
    0x000306e8 eor r3, r3, 1                                 |     r3 ^= 1;
                                                             |     if (r2 == 0) {
    0x000306ec movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x000306f0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000306f4 bne 0x30414                                   |         goto label_16;
                                                             |     }
                                                             | label_38:
    0x000306f8 ldrb r2, [r4]                                 |     r2 = *(r4);
    0x000306fc ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00030700 cmp r2, 0                                     |     
    0x00030704 eor r3, r3, 1                                 |     r3 ^= 1;
                                                             |     if (r2 == 0) {
    0x00030708 movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x0003070c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00030710 beq 0x306c4                                   |         goto label_19;
                                                             |     }
    0x00030714 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00030718 beq 0x30c24                                   |         goto label_44;
                                                             |     }
    0x0003071c mov r0, r4                                    |     r0 = r4;
    0x00030720 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030724 b 0x30c24                                     |     goto label_44;
                                                             | label_106:
    0x00030728 cmp r3, 0x2a                                  |     
                                                             |     if (r3 != 0x2a) {
    0x0003072c beq 0x3077c                                   |         
                                                             |         if (r3 <= 0x2a) {
    0x00030730 bhi 0x30764                                   |             
    0x00030734 cmp r3, 0x24                                  |             
                                                             |             if (r3 == 0x24) {
    0x00030738 beq 0x307e0                                   |                 goto label_119;
                                                             |             }
    0x0003073c cmp r3, 0x27                                  |             
                                                             |             if (r3 == 0x27) {
    0x00030740 beq 0x307c8                                   |                 goto label_120;
                                                             |             }
    0x00030744 cmp r3, 0x22                                  |             
                                                             |             if (r3 != 0x22) {
    0x00030748 bne 0x307a4                                   |                 goto label_21;
                                                             |             }
    0x0003074c cmp sb, 2                                     |             
                                                             |             if (sb == 2) {
    0x00030750 beq 0x308d8                                   |                 goto label_121;
                                                             |             }
    0x00030754 cmp sb, 0                                     |             
                                                             |             if (sb != 0) {
    0x00030758 bne 0x307a4                                   |                 goto label_21;
                                                             |             }
    0x0003075c mov sb, 2                                     |             sb = 2;
    0x00030760 b 0x308b4                                     |             goto label_122;
                                                             |         }
    0x00030764 cmp r3, 0x5c                                  |         
                                                             |         if (r3 == 0x5c) {
    0x00030768 beq 0x308bc                                   |             goto label_123;
                                                             |         }
    0x0003076c cmp r3, 0x7e                                  |         
                                                             |         if (r3 == 0x7e) {
    0x00030770 beq 0x30850                                   |             goto label_124;
                                                             |         }
    0x00030774 cmp r3, 0x3f                                  |         
                                                             |         if (r3 != 0x3f) {
    0x00030778 bne 0x307a4                                   |             goto label_21;
                                                             |         }
                                                             |     }
    0x0003077c cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x00030780 beq 0x307a4                                   |         goto label_21;
                                                             |     }
    0x00030784 mov r3, 0x5c                                  |     r3 = 0x5c;
    0x00030788 ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x0003078c ldr r1, [sp, 0x2c]                            |     r1 = var_2ch;
    0x00030790 ldr r0, [sp, 0x54]                            |     r0 = var_54h;
    0x00030794 bl 0x2e9cc                                    |     fcn_0002e9cc (r0, r1);
    0x00030798 str r0, [sp, 0x54]                            |     var_54h = r0;
                                                             | label_24:
    0x0003079c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000307a0 beq 0x301d4                                   |         goto label_20;
                                                             |     }
                                                             |     do {
                                                             | label_21:
    0x000307a4 ldrb r3, [sl]                                 |         r3 = *(sl);
    0x000307a8 ldr r2, [sp, 0x28]                            |         r2 = var_28h;
    0x000307ac ldr r1, [sp, 0x2c]                            |         r1 = var_2ch;
    0x000307b0 ldr r0, [sp, 0x54]                            |         r0 = var_54h;
    0x000307b4 bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x000307b8 cmp r0, 0                                     |         
    0x000307bc str r0, [sp, 0x54]                            |         var_54h = r0;
                                                             |         if (r0 != 0) {
    0x000307c0 bne 0x308b4                                   |             goto label_122;
                                                             |         }
    0x000307c4 b 0x301d4                                     |         goto label_20;
                                                             | label_120:
    0x000307c8 cmp sb, 1                                     |         
                                                             |         if (sb == 1) {
    0x000307cc beq 0x308d8                                   |             goto label_121;
                                                             |         }
    0x000307d0 cmp sb, 0                                     |         
    0x000307d4 bne 0x307a4                                   |         
                                                             |     } while (sb != 0);
    0x000307d8 mov sb, 1                                     |     sb = 1;
    0x000307dc b 0x308b4                                     |     goto label_122;
                                                             | label_119:
    0x000307e0 mov r3, 0                                     |     r3 = 0;
    0x000307e4 str r3, [sp, 0x78]                            |     var_78h = r3;
    0x000307e8 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x000307ec str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000307f0 str r3, [sp, 8]                               |     var_8h = r3;
    0x000307f4 ldr r3, [sp, 0xbc]                            |     r3 = *(arg_bch);
    0x000307f8 mov r2, 1                                     |     r2 = 1;
    0x000307fc str r3, [sp, 4]                               |     var_4h = r3;
    0x00030800 add r3, sp, 0x78                              |     r3 += var_78h;
    0x00030804 str r2, [sp, 0x14]                            |     var_14h = r2;
    0x00030808 str r3, [sp]                                  |     *(sp) = r3;
    0x0003080c ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x00030810 mov r3, sl                                    |     r3 = sl;
    0x00030814 ldr r1, [sp, 0x2c]                            |     r1 = var_2ch;
    0x00030818 add r0, sp, 0x54                              |     r0 += var_54h;
    0x0003081c bl 0x2fad0                                    |     fcn_0002fad0 (r0, r1, r2, r3, r4, r5, r6);
    0x00030820 subs r3, r0, 0                                |     r3 -= var_54h;
    0x00030824 str r3, [sp, 0x30]                            |     var_30h = r3;
                                                             |     if (r3 == var_54h) {
    0x00030828 beq 0x308ac                                   |         goto label_125;
                                                             |     }
    0x0003082c cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00030830 beq 0x3083c                                   |         
    0x00030834 mov r0, r4                                    |         r0 = r4;
    0x00030838 bl 0x120a8                                    |         fcn_000120a8 ();
                                                             |     }
    0x0003083c ldr r0, [sp, 0x54]                            |     r0 = var_54h;
    0x00030840 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030844 ldr sb, [sp, 0x30]                            |     sb = var_30h;
                                                             | label_22:
    0x00030848 mov r5, sb                                    |     r5 = sb;
    0x0003084c b 0x30550                                     |     goto label_18;
                                                             | label_124:
    0x00030850 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x00030854 bne 0x307a4                                   |         goto label_21;
                                                             |     }
    0x00030858 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0003085c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030860 bne 0x307a4                                   |         goto label_21;
                                                             |     }
    0x00030864 add r3, sp, 0x78                              |     r3 += var_78h;
    0x00030868 str sb, [sp, 4]                               |     var_4h = sb;
    0x0003086c str r3, [sp]                                  |     *(sp) = r3;
    0x00030870 ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x00030874 mov r3, sl                                    |     r3 = sl;
    0x00030878 ldr r1, [sp, 0x2c]                            |     r1 = var_2ch;
    0x0003087c add r0, sp, 0x54                              |     r0 += var_54h;
    0x00030880 str sb, [sp, 0x78]                            |     var_78h = sb;
    0x00030884 bl 0x2f1b8                                    |     fcn_0002f1b8 (r0, r1, r2, r3);
    0x00030888 subs sb, r0, 0                                |     sb -= var_54h;
                                                             |     if (sb != var_54h) {
    0x0003088c beq 0x308ac                                   |         
    0x00030890 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00030894 beq 0x308a0                                   |             
    0x00030898 mov r0, r4                                    |             r0 = r4;
    0x0003089c bl 0x120a8                                    |             fcn_000120a8 ();
                                                             |         }
    0x000308a0 ldr r0, [sp, 0x54]                            |         r0 = var_54h;
    0x000308a4 bl 0x120a8                                    |         fcn_000120a8 ();
    0x000308a8 b 0x30848                                     |         goto label_22;
                                                             |     }
                                                             | label_125:
    0x000308ac ldr r3, [sp, 0x78]                            |     r3 = var_78h;
    0x000308b0 add sl, sl, r3                                |     sl += r3;
                                                             |     do {
                                                             | label_122:
    0x000308b4 add sl, sl, 1                                 |         sl++;
    0x000308b8 b 0x30438                                     |         goto label_23;
                                                             | label_123:
    0x000308bc ldr r2, [sp, 0x28]                            |         r2 = var_28h;
    0x000308c0 ldr r1, [sp, 0x2c]                            |         r1 = var_2ch;
    0x000308c4 ldr r0, [sp, 0x54]                            |         r0 = var_54h;
    0x000308c8 bl 0x2e9cc                                    |         fcn_0002e9cc (r0, r1);
    0x000308cc add sl, sl, 1                                 |         sl++;
    0x000308d0 str r0, [sp, 0x54]                            |         var_54h = r0;
    0x000308d4 b 0x3079c                                     |         goto label_24;
                                                             | label_121:
    0x000308d8 mov sb, 0                                     |         sb = 0;
    0x000308dc b 0x308b4                                     |         
                                                             |     } while (1);
                                                             | label_110:
    0x000308e0 cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x000308e4 beq 0x30b50                                   |         goto label_118;
                                                             |     }
                                                             |     if (r6 > 0x3f) {
    0x000308e8 bhi 0x30978                                   |         goto label_126;
                                                             |     }
    0x000308ec cmp r6, 0x3d                                  |     
                                                             |     if (r6 == 0x3d) {
    0x000308f0 beq 0x30ed4                                   |         goto label_117;
                                                             |     }
                                                             | label_29:
    0x000308f4 mov r0, r8                                    |     r0 = r8;
    0x000308f8 bl 0x120a8                                    |     fcn_000120a8 ();
    0x000308fc mov r0, r7                                    |     r0 = r7;
    0x00030900 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030904 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x00030908 beq 0x30c70                                   |         goto label_127;
                                                             |     }
    0x0003090c mov r3, 0                                     |     r3 = 0;
    0x00030910 strb r3, [sp, 0x8c]                           |     var_8ch = r3;
    0x00030914 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00030918 cmp r4, 0                                     |     
    0x0003091c ldr r7, [r3]                                  |     r7 = *(r3);
                                                             |     if (r4 != 0) {
    0x00030920 moveq r2, r4                                  |         r2 = r4;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x00030924 beq 0x30934                                   |         
    0x00030928 mov r0, r4                                    |         r0 = r4;
    0x0003092c bl 0x3e3c0                                    |         r0 = strlen ();
    0x00030930 mov r2, r0                                    |         r2 = r0;
                                                             |     }
    0x00030934 ldr r1, [pc, 0x1a8]                           |     r1 = *(0x30ae0);
    0x00030938 add r6, sp, 0x78                              |     r6 += var_78h;
    0x0003093c mov r3, 0                                     |     r3 = 0;
    0x00030940 add r1, pc, r1                                |     r1 = pc + r1;
    0x00030944 mov r0, r6                                    |     r0 = r6;
    0x00030948 bl 0x34d3c                                    |     sprintf ();
    0x0003094c ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00030950 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00030954 mov r3, r6                                    |     r3 = r6;
    0x00030958 mov r0, r7                                    |     r0 = r7;
                                                             | label_39:
    0x0003095c bl 0x2ec24                                    |     fcn_0002ec24 (r0, r1);
    0x00030960 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00030964 cmp r5, 0                                     |     
    0x00030968 str r0, [r3]                                  |     *(r3) = r0;
                                                             |     if (r5 == 0) {
    0x0003096c beq 0x30358                                   |         goto label_25;
                                                             |     }
    0x00030970 mov r0, r4                                    |     r0 = r4;
    0x00030974 b 0x30354                                     |     goto label_26;
                                                             | label_126:
    0x00030978 cmp r6, 0x4c                                  |     
                                                             |     if (r6 == 0x4c) {
    0x0003097c beq 0x305c8                                   |         goto label_27;
                                                             |     }
    0x00030980 cmp r6, 0x52                                  |     
    0x00030984 b 0x305c4                                     |     goto label_28;
                                                             | label_113:
    0x00030988 cmp r6, 0x4c                                  |     
                                                             |     if (r6 != 0x4c) {
    0x0003098c moveq r6, r2                                  |         r6 = r2;
                                                             |     }
                                                             |     if (r6 == 0x4c) {
    0x00030990 beq 0x30a10                                   |         goto label_128;
                                                             |     }
    0x00030994 cmp r6, 0x52                                  |     
                                                             |     if (r6 == 0x52) {
    0x00030998 moveq r6, r4                                  |         r6 = r4;
                                                             |         goto label_129;
                                                             |     }
                                                             |     if (r6 != 0x52) {
                                                             | label_129:
    0x0003099c bne 0x308f4                                   |         goto label_29;
                                                             |     }
                                                             | label_36:
    0x000309a0 cmp sb, r6                                    |     
                                                             |     if (sb <= r6) {
    0x000309a4 blo 0x308f4                                   |         goto label_29;
                                                             |     }
    0x000309a8 mov r2, 0                                     |     r2 = 0;
    0x000309ac mov r1, r6                                    |     r1 = r6;
    0x000309b0 mov r0, r7                                    |     r0 = r7;
    0x000309b4 bl 0x1a6f0                                    |     r0 = fnmatch ();
    0x000309b8 cmp r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x000309bc beq 0x30b3c                                   |         goto label_130;
                                                             |     }
    0x000309c0 sub r6, r6, r4                                |     r6 -= r4;
    0x000309c4 add r0, r6, 1                                 |     r0 = r6 + 1;
    0x000309c8 bl 0x11a90                                    |     r0 = fcn_00011a90 ();
    0x000309cc subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x000309d0 beq 0x30b2c                                   |         goto label_131;
                                                             |     }
    0x000309d4 mov r1, r4                                    |     r1 = r4;
    0x000309d8 mov r2, r6                                    |     r2 = r6;
    0x000309dc bl 0x3e98c                                    |     mempcpy ();
    0x000309e0 mov r3, 0                                     |     r3 = 0;
    0x000309e4 cmp r5, r3                                    |     
                                                             |     if (r5 != r3) {
    0x000309e8 moveq r4, sb                                  |         r4 = sb;
                                                             |     }
    0x000309ec strb r3, [r0]                                 |     *(r0) = r3;
                                                             |     if (r5 == r3) {
    0x000309f0 beq 0x30f50                                   |         goto label_132;
                                                             |     }
    0x000309f4 mov r0, r4                                    |     r0 = r4;
    0x000309f8 bl 0x120a8                                    |     fcn_000120a8 ();
                                                             | label_32:
    0x000309fc mov r4, sb                                    |     r4 = sb;
    0x00030a00 b 0x308f4                                     |     goto label_29;
                                                             | label_114:
    0x00030a04 strb r3, [sl], 1                              |     *(sl) = r3;
                                                             |     sl++;
    0x00030a08 b 0x30620                                     |     goto label_30;
                                                             | label_31:
    0x00030a0c strb sl, [sb], -1                             |     *(sb) = sl;
                                                             |     sb += -1;
                                                             | label_128:
    0x00030a10 cmp sb, r4                                    |     
                                                             |     if (sb <= r4) {
    0x00030a14 blo 0x308f4                                   |         goto label_29;
                                                             |     }
    0x00030a18 ldrb sl, [sb]                                 |     sl = *(sb);
    0x00030a1c mov r2, 0                                     |     r2 = 0;
    0x00030a20 strb r6, [sb]                                 |     *(sb) = r6;
    0x00030a24 mov r1, r4                                    |     r1 = r4;
    0x00030a28 mov r0, r7                                    |     r0 = r7;
    0x00030a2c bl 0x1a6f0                                    |     r0 = fnmatch ();
    0x00030a30 cmp r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00030a34 beq 0x30a0c                                   |         goto label_31;
                                                             |     }
    0x00030a38 cmp r5, 0                                     |     
    0x00030a3c strb sl, [sb]                                 |     *(sb) = sl;
                                                             |     if (r5 == 0) {
    0x00030a40 beq 0x309fc                                   |         goto label_32;
                                                             |     }
    0x00030a44 mov r0, sb                                    |     r0 = sb;
                                                             | label_115:
    0x00030a48 bl 0x3f894                                    |     r0 = strdup ();
    0x00030a4c subs r6, r0, 0                                |     r6 = r0 - 0;
    0x00030a50 mov r0, r4                                    |     r0 = r4;
                                                             |     if (r6 == r0) {
    0x00030a54 bne 0x30a84                                   |         
                                                             | label_35:
    0x00030a58 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00030a5c b 0x30550                                     |         goto label_18;
                                                             | label_34:
    0x00030a60 mov r1, r4                                    |         r1 = r4;
    0x00030a64 mov r2, sb                                    |         r2 = sb;
    0x00030a68 bl 0x3e98c                                    |         mempcpy ();
    0x00030a6c mov r3, 0                                     |         r3 = 0;
    0x00030a70 cmp r5, r3                                    |         
                                                             |         if (r5 != r3) {
    0x00030a74 moveq r4, r6                                  |             r4 = r6;
                                                             |         }
    0x00030a78 strb r3, [r0]                                 |         *(r0) = r3;
                                                             |         if (r5 == r3) {
    0x00030a7c beq 0x30f50                                   |             goto label_132;
                                                             |         }
    0x00030a80 mov r0, r4                                    |         r0 = r4;
                                                             |     }
    0x00030a84 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030a88 mov r4, r6                                    |     r4 = r6;
    0x00030a8c b 0x308f4                                     |     goto label_29;
                                                             | label_33:
    0x00030af4 sub sb, sb, 1                                 |     sb--;
                                                             | label_112:
    0x00030af8 cmp sb, r4                                    |     
                                                             |     if (sb <= r4) {
    0x00030afc blo 0x308f4                                   |         goto label_29;
                                                             |     }
    0x00030b00 mov r2, 0                                     |     r2 = 0;
    0x00030b04 mov r1, sb                                    |     r1 = sb;
    0x00030b08 mov r0, r7                                    |     r0 = r7;
    0x00030b0c bl 0x1a6f0                                    |     r0 = fnmatch ();
    0x00030b10 cmp r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00030b14 beq 0x30af4                                   |         goto label_33;
                                                             |     }
    0x00030b18 sub sb, sb, r4                                |     sb -= r4;
    0x00030b1c add r0, sb, 1                                 |     r0 = sb + 1;
    0x00030b20 bl 0x11a90                                    |     r0 = fcn_00011a90 ();
    0x00030b24 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00030b28 bne 0x30a60                                   |         goto label_34;
                                                             |     }
                                                             | label_131:
    0x00030b2c cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00030b30 beq 0x301d4                                   |         goto label_20;
                                                             |     }
    0x00030b34 mov r0, r4                                    |     r0 = r4;
    0x00030b38 b 0x30a58                                     |     goto label_35;
                                                             | label_130:
    0x00030b3c add r6, r6, 1                                 |     r6++;
    0x00030b40 b 0x309a0                                     |     goto label_36;
                                                             | label_53:
    0x00030b44 mov r5, 0                                     |     r5 = 0;
    0x00030b48 add r4, sp, 0x60                              |     r4 += s;
    0x00030b4c mov fp, r5                                    |     
                                                             | label_118:
    0x00030b50 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030b54 beq 0x30b64                                   |         goto label_133;
                                                             |     }
    0x00030b58 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00030b5c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030b60 bne 0x308f4                                   |         goto label_29;
                                                             |     }
                                                             | label_133:
    0x00030b64 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00030b68 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030b6c eorne r6, r3, 1                               |         r6 = r3 ^ 1;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x00030b70 moveq r6, 0                                   |         r6 = 0;
                                                             |     }
    0x00030b74 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00030b78 movne r6, 0                                   |         r6 = 0;
                                                             |     }
                                                             |     if (r6 != 0) {
    0x00030b7c bne 0x30bb0                                   |         goto label_134;
                                                             |     }
    0x00030b80 ldr r3, [pc, -0xa0]                           |     r3 = *(0x30ae4);
    0x00030b84 ldr r2, [sp, 0x34]                            |     r2 = var_34h;
    0x00030b88 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00030b8c ldr r0, [r3]                                  |     r0 = *(0x30ae4);
    0x00030b90 ldrb r3, [r7]                                 |     r3 = *(r7);
    0x00030b94 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00030b98 beq 0x30bc8                                   |         goto label_135;
                                                             |     }
    0x00030b9c ldr r1, [pc, -0xb8]                           |     r1 = *(0x30ae8);
    0x00030ba0 mov r3, r7                                    |     r3 = r7;
    0x00030ba4 mov r2, r8                                    |     r2 = r8;
    0x00030ba8 add r1, pc, r1                                |     r1 = pc + r1;
    0x00030bac bl 0x34c9c                                    |     fprintf (r0, r1, r2, r3)
                                                             |     do {
                                                             | label_134:
    0x00030bb0 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00030bb4 beq 0x30bc0                                   |             
    0x00030bb8 mov r0, r4                                    |             r0 = r4;
    0x00030bbc bl 0x120a8                                    |             fcn_000120a8 ();
                                                             |         }
    0x00030bc0 mov r5, r6                                    |         r5 = r6;
    0x00030bc4 b 0x30550                                     |         goto label_18;
                                                             | label_135:
    0x00030bc8 ldr r1, [pc, -0xe0]                           |         r1 = *(0x30aec);
    0x00030bcc mov r2, r8                                    |         r2 = r8;
    0x00030bd0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00030bd4 bl 0x34c9c                                    |         fprintf (r0, r1, r2)
    0x00030bd8 mov r6, 3                                     |         r6 = 3;
    0x00030bdc b 0x30bb0                                     |         
                                                             |     } while (1);
                                                             | label_48:
    0x00030be0 mov r5, 0                                     |     r5 = 0;
    0x00030be4 mov fp, r5                                    |     
                                                             | label_109:
    0x00030be8 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030bec beq 0x30e1c                                   |         goto label_136;
                                                             |     }
    0x00030bf0 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00030bf4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030bf8 bne 0x308f4                                   |         goto label_29;
                                                             |     }
    0x00030bfc cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00030c00 beq 0x30c0c                                   |         
                                                             | label_45:
    0x00030c04 mov r0, r4                                    |         r0 = r4;
    0x00030c08 bl 0x120a8                                    |         fcn_000120a8 ();
                                                             |     }
    0x00030c0c ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00030c10 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030c14 eorne r4, r3, 1                               |         r4 = r3 ^ 1;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x00030c18 moveq r4, 0                                   |         r4 = 0;
                                                             |     }
    0x00030c1c cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00030c20 bne 0x306d4                                   |         goto label_37;
                                                             |     }
                                                             | label_44:
    0x00030c24 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00030c28 moveq r4, r7                                  |         r4 = r7;
                                                             |     }
                                                             |     if (r7 != 0) {
    0x00030c2c beq 0x30c3c                                   |         
    0x00030c30 mov r0, r7                                    |         r0 = r7;
    0x00030c34 bl 0x3f894                                    |         r0 = strdup ();
    0x00030c38 mov r4, r0                                    |         r4 = r0;
                                                             |     }
    0x00030c3c cmp r7, 0                                     |     
    0x00030c40 clz r3, r4                                    |     r3 &= r4;
    0x00030c44 lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r7 != 0) {
    0x00030c48 moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00030c4c cmp r3, 0                                     |     
    0x00030c50 mov r5, 1                                     |     r5 = 1;
                                                             |     if (r3 != 0) {
    0x00030c54 bne 0x30550                                   |         goto label_18;
                                                             |     }
    0x00030c58 b 0x308f4                                     |     goto label_29;
                                                             | label_49:
    0x00030c5c mov r5, 0                                     |     r5 = 0;
    0x00030c60 mov fp, r5                                    |     
                                                             | label_111:
    0x00030c64 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00030c68 bne 0x306f8                                   |         goto label_38;
                                                             |     }
    0x00030c6c b 0x306c4                                     |     goto label_19;
                                                             | label_127:
    0x00030c70 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030c74 beq 0x2fda8                                   |         goto label_15;
                                                             |     }
                                                             | label_84:
    0x00030c78 ldr r3, [sp, 0xc0]                            |     r3 = *(arg_c0h);
    0x00030c7c ldr r2, [sp, 0xcc]                            |     r2 = *(arg_cch);
    0x00030c80 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00030c84 andne r3, r2, 1                               |         r3 = r2 & 1;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00030c88 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00030c8c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00030c90 addne r0, sp, 0x1c                            |         r0 += var_1ch;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00030c94 ldmne r0, {r0, r1, r2}                        |         r0 = *(r0);
                                                             |         r1 = *((r0 + 4));
                                                             |         r2 = *((r0 + 8));
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00030c98 movne r3, r4                                  |         r3 = r4;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00030c9c ldrne r0, [r0]                                |         r0 = *(r0);
                                                             |         goto label_137;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_137:
    0x00030ca0 bne 0x3095c                                   |         goto label_39;
                                                             |     }
    0x00030ca4 mov r0, r4                                    |     r0 = r4;
    0x00030ca8 bl 0x3f894                                    |     strdup ();
    0x00030cac cmp r5, 0                                     |     
    0x00030cb0 mov r8, r0                                    |     r8 = r0;
                                                             |     if (r5 != 0) {
    0x00030cb4 beq 0x30cc0                                   |         
    0x00030cb8 mov r0, r4                                    |         r0 = r4;
    0x00030cbc bl 0x120a8                                    |         fcn_000120a8 ();
                                                             |     }
    0x00030cc0 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00030cc4 movne r4, 0                                   |         r4 = 0;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x00030cc8 movne r6, r8                                  |         r6 = r8;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x00030ccc movne sb, r4                                  |         sb = r4;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x00030cd0 bne 0x30cf4                                   |         
    0x00030cd4 mov r7, r8                                    |         r7 = r8;
    0x00030cd8 b 0x301d4                                     |         goto label_20;
                                                             | label_42:
    0x00030cdc ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00030ce0 str sb, [r3]                                  |         *(r3) = sb;
    0x00030ce4 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00030ce8 str sb, [r3]                                  |         *(r3) = sb;
    0x00030cec ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00030cf0 str sb, [r3]                                  |         *(r3) = sb;
                                                             |     }
                                                             | label_41:
    0x00030cf4 ldr r1, [sp, 0xc8]                            |     r1 = *(s2);
    0x00030cf8 mov r0, r6                                    |     r0 = r6;
    0x00030cfc bl 0x3e8b4                                    |     strspn ();
    0x00030d00 cmp r4, 0                                     |     
    0x00030d04 add r5, r6, r0                                |     r5 = r6 + r0;
                                                             |     if (r4 != 0) {
    0x00030d08 bne 0x30d20                                   |         goto label_138;
                                                             |     }
    0x00030d0c ldrb r3, [r6, r0]                             |     r3 = *((r6 + r0));
    0x00030d10 cmp r3, 0                                     |     
    0x00030d14 bne 0x30d20                                   |     
                                                             |     while (r3 == 0) {
    0x00030d18 mov r0, r8                                    |         r0 = r8;
    0x00030d1c b 0x30574                                     |         goto label_40;
                                                             | label_138:
    0x00030d20 ldr r1, [sp, 0xc4]                            |         r1 = *(arg_c4h);
    0x00030d24 mov r0, r5                                    |         r0 = r5;
    0x00030d28 bl 0x3e8f0                                    |         strcspn ();
    0x00030d2c ldr r1, [sp, 0xc8]                            |         r1 = *(s2);
    0x00030d30 add r4, r5, r0                                |         r4 = r5 + r0;
    0x00030d34 mov r7, r0                                    |         r7 = r0;
    0x00030d38 mov r0, r4                                    |         r0 = r4;
    0x00030d3c bl 0x3e8b4                                    |         strspn ();
    0x00030d40 ldrb r1, [r4, r0]                             |         r1 = *((r4 + r0));
    0x00030d44 add r6, r4, r0                                |         r6 = r4 + r0;
    0x00030d48 cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x00030d4c moveq r4, r1                                  |             r4 = r1;
                                                             |         }
                                                             |         if (r1 != 0) {
    0x00030d50 beq 0x30d68                                   |             
    0x00030d54 ldr r0, [sp, 0xc4]                            |             r0 = *(arg_c4h);
    0x00030d58 bl 0x3ef3c                                    |             r0 = index ();
    0x00030d5c subs r4, r0, 0                                |             r4 = r0 - 0;
                                                             |             if (r4 == r0) {
    0x00030d60 addne r6, r6, 1                               |                 r6++;
                                                             |             }
                                                             |             if (r4 != r0) {
    0x00030d64 movne r4, 1                                   |                 r4 = 1;
                                                             |                 goto label_139;
                                                             |             }
                                                             |         }
                                                             | label_139:
    0x00030d68 add r0, sp, 0x1c                              |         r0 += var_1ch;
    0x00030d6c ldm r0, {r0, r1, r2}                          |         r0 = *(r0);
                                                             |         r1 = *((r0 + 4));
                                                             |         r2 = *((r0 + 8));
    0x00030d70 strb sb, [r5, r7]                             |         *((r5 + r7)) = sb;
    0x00030d74 mov r3, r5                                    |         r3 = r5;
    0x00030d78 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00030d7c bl 0x2ec24                                    |         fcn_0002ec24 (r0, r1);
    0x00030d80 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00030d84 cmp r0, 0                                     |         
    0x00030d88 mov r7, r0                                    |         r7 = r0;
    0x00030d8c str r0, [r3]                                  |         *(r3) = r0;
                                                             |         if (r0 == 0) {
    0x00030d90 bne 0x30db0                                   |             
    0x00030d94 ldrb r3, [r5]                                 |             r3 = *(r5);
    0x00030d98 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00030d9c beq 0x30db0                                   |                 goto label_140;
                                                             |             }
    0x00030da0 mov r0, r8                                    |             r0 = r8;
    0x00030da4 bl 0x120a8                                    |             fcn_000120a8 ();
    0x00030da8 mov r8, r7                                    |             r8 = r7;
    0x00030dac b 0x301d4                                     |             goto label_20;
                                                             |         }
                                                             | label_140:
    0x00030db0 cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x00030db4 bne 0x30dc4                                   |             goto label_141;
                                                             |         }
    0x00030db8 ldrb r3, [r6]                                 |         r3 = *(r6);
    0x00030dbc cmp r3, 0                                     |         
    0x00030dc0 beq 0x30d18                                   |         
                                                             |     }
                                                             | label_141:
    0x00030dc4 cmp r8, r6                                    |     
                                                             |     if (r8 == r6) {
    0x00030dc8 beq 0x30cf4                                   |         goto label_41;
                                                             |     }
    0x00030dcc mov r1, r7                                    |     r1 = r7;
    0x00030dd0 ldr r0, [sp, 0xc0]                            |     r0 = *(arg_c0h);
    0x00030dd4 bl 0x2ec60                                    |     r0 = fcn_0002ec60 (r0, r1);
    0x00030dd8 cmp r0, 1                                     |     
    0x00030ddc mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 != 1) {
    0x00030de0 bne 0x30cdc                                   |         goto label_42;
                                                             |     }
    0x00030de4 mov r0, r8                                    |     r0 = r8;
    0x00030de8 bl 0x120a8                                    |     fcn_000120a8 ();
    0x00030dec mov r8, 0                                     |     r8 = 0;
                                                             | label_79:
    0x00030df0 mov r7, 0                                     |     r7 = 0;
    0x00030df4 b 0x30550                                     |     goto label_18;
                                                             | label_70:
    0x00030df8 mov r7, 0                                     |     r7 = 0;
    0x00030dfc mov r5, 1                                     |     r5 = 1;
    0x00030e00 mov r8, r7                                    |     r8 = r7;
    0x00030e04 b 0x30550                                     |     goto label_18;
                                                             | label_80:
    0x00030e08 mov r7, r8                                    |     r7 = r8;
    0x00030e0c b 0x30054                                     |     goto label_10;
                                                             | label_61:
    0x00030e10 cmp r1, 0x28                                  |     
                                                             |     if (r1 != 0x28) {
    0x00030e14 bne 0x2fc5c                                   |         goto label_0;
                                                             |     }
    0x00030e18 b 0x2fc58                                     |     goto label_43;
                                                             | label_136:
    0x00030e1c cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00030e20 beq 0x30c24                                   |         goto label_44;
                                                             |     }
    0x00030e24 b 0x30c04                                     |     goto label_45;
                                                             | label_83:
    0x00030e28 cmp r6, 0x2d                                  |     
                                                             |     if (r6 == 0x2d) {
    0x00030e2c beq 0x30678                                   |         goto label_46;
                                                             |     }
                                                             |     if (r6 > 0x2d) {
    0x00030e30 bhi 0x30e64                                   |         goto label_142;
                                                             |     }
    0x00030e34 cmp r6, 0x25                                  |     
                                                             |     if (r6 == 0x25) {
    0x00030e38 beq 0x30e54                                   |         goto label_51;
                                                             |     }
    0x00030e3c cmp r6, 0x2b                                  |     
                                                             |     if (r6 != 0x2b) {
    0x00030e40 moveq r5, r8                                  |         r5 = r8;
                                                             |     }
                                                             |     if (r6 == 0x2b) {
    0x00030e44 moveq fp, r8                                  |         goto label_143;
                                                             |     }
                                                             |     if (r6 == 0x2b) {
                                                             | label_143:
    0x00030e48 beq 0x306dc                                   |         goto label_47;
                                                             |     }
    0x00030e4c cmp r6, 0x23                                  |     
                                                             |     if (r6 != 0x23) {
                                                             | label_52:
    0x00030e50 bne 0x30e78                                   |         goto label_144;
                                                             |     }
                                                             | label_51:
    0x00030e54 mov r5, 0                                     |     r5 = 0;
    0x00030e58 add r4, sp, 0x60                              |     r4 += s;
    0x00030e5c mov fp, r5                                    |     
    0x00030e60 b 0x30414                                     |     goto label_16;
                                                             | label_142:
    0x00030e64 cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x00030e68 beq 0x30678                                   |         goto label_46;
                                                             |     }
                                                             |     if (r6 > 0x3f) {
    0x00030e6c bhi 0x30ea8                                   |         goto label_145;
                                                             |     }
    0x00030e70 cmp r6, 0x3d                                  |     
                                                             |     if (r6 == 0x3d) {
    0x00030e74 beq 0x30678                                   |         goto label_46;
                                                             |     }
                                                             | label_144:
    0x00030e78 cmp r6, 0x2d                                  |     
                                                             |     if (r6 == 0x2d) {
    0x00030e7c beq 0x30be0                                   |         goto label_48;
                                                             |     }
                                                             |     if (r6 > 0x2d) {
    0x00030e80 bhi 0x30eb8                                   |         goto label_146;
                                                             |     }
    0x00030e84 cmp r6, 0x25                                  |     
                                                             |     if (r6 == 0x25) {
    0x00030e88 beq 0x30e9c                                   |         goto label_54;
                                                             |     }
    0x00030e8c cmp r6, 0x2b                                  |     
                                                             |     if (r6 == 0x2b) {
    0x00030e90 beq 0x30c5c                                   |         goto label_49;
                                                             |     }
    0x00030e94 cmp r6, 0x23                                  |     
                                                             |     if (r6 != 0x23) {
                                                             | label_55:
    0x00030e98 bne 0x30000                                   |         goto label_50;
                                                             |     }
                                                             | label_54:
    0x00030e9c mov r5, 0                                     |     r5 = 0;
    0x00030ea0 mov fp, r5                                    |     
    0x00030ea4 b 0x305c8                                     |     goto label_27;
                                                             | label_145:
    0x00030ea8 cmp r6, 0x4c                                  |     
                                                             |     if (r6 == 0x4c) {
    0x00030eac beq 0x30e54                                   |         goto label_51;
                                                             |     }
    0x00030eb0 cmp r6, 0x52                                  |     
    0x00030eb4 b 0x30e50                                     |     goto label_52;
                                                             | label_146:
    0x00030eb8 cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x00030ebc beq 0x30b44                                   |         goto label_53;
                                                             |     }
                                                             |     if (r6 > 0x3f) {
    0x00030ec0 bhi 0x30f58                                   |         goto label_147;
                                                             |     }
    0x00030ec4 cmp r6, 0x3d                                  |     
                                                             |     if (r6 != 0x3d) {
    0x00030ec8 moveq r5, 0                                   |         r5 = 0;
                                                             |     }
                                                             |     if (r6 == 0x3d) {
    0x00030ecc moveq fp, r5                                  |         goto label_148;
                                                             |     }
                                                             |     if (r6 != 0x3d) {
                                                             | label_148:
    0x00030ed0 bne 0x30000                                   |         goto label_50;
                                                             |     }
                                                             | label_117:
    0x00030ed4 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030ed8 beq 0x30ee8                                   |         goto label_149;
                                                             |     }
    0x00030edc ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00030ee0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030ee4 bne 0x308f4                                   |         goto label_29;
                                                             |     }
                                                             | label_149:
    0x00030ee8 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00030eec cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00030ef0 eorne r3, r3, 1                               |         r3 ^= 1;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x00030ef4 moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00030ef8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030efc bne 0x306c4                                   |         goto label_19;
                                                             |     }
    0x00030f00 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00030f04 beq 0x30f10                                   |         
    0x00030f08 mov r0, r4                                    |         r0 = r4;
    0x00030f0c bl 0x120a8                                    |         fcn_000120a8 ();
                                                             |     }
    0x00030f10 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00030f14 moveq r4, r7                                  |         r4 = r7;
                                                             |     }
                                                             |     if (r7 != 0) {
    0x00030f18 beq 0x30f28                                   |         
    0x00030f1c mov r0, r7                                    |         r0 = r7;
    0x00030f20 bl 0x3f894                                    |         r0 = strdup ();
    0x00030f24 mov r4, r0                                    |         r4 = r0;
                                                             |     }
    0x00030f28 cmp r7, 0                                     |     
    0x00030f2c clz r3, r4                                    |     r3 &= r4;
    0x00030f30 lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r7 != 0) {
    0x00030f34 moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00030f38 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00030f3c bne 0x301d4                                   |         goto label_20;
                                                             |     }
    0x00030f40 mov r2, 1                                     |     r2 = 1;
    0x00030f44 mov r1, r4                                    |     r1 = r4;
    0x00030f48 mov r0, r8                                    |     r0 = r8;
    0x00030f4c bl 0x4c4c0                                    |     setenv ();
                                                             | label_132:
    0x00030f50 mov r5, 1                                     |     r5 = 1;
    0x00030f54 b 0x308f4                                     |     goto label_29;
                                                             | label_147:
    0x00030f58 cmp r6, 0x4c                                  |     
                                                             |     if (r6 == 0x4c) {
    0x00030f5c beq 0x30e9c                                   |         goto label_54;
                                                             |     }
    0x00030f60 cmp r6, 0x52                                  |     
    0x00030f64 b 0x30e98                                     |     goto label_55;
                                                             | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x4edac */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0004edac ()                                      | void fcn_0004edac (FILE * stream, int32_t arg_64h, int32_t arg_68h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     char * s2;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     char * s;
                                                                 |     int32_t var_3ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0004edac push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0004edb0 ldr fp, [pc, 0x7a8]                               |     fp = *(0x4f55c);
    0x0004edb4 sub sp, sp, 0x3c                                  |     
    0x0004edb8 mov sl, r3                                        |     sl = r3;
    0x0004edbc ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0004edc0 ldr r4, [sp, 0x68]                                |     r4 = *(arg_68h);
    0x0004edc4 cmp r3, 0x3a                                      |     
    0x0004edc8 ldr sb, [r4, 4]                                   |     sb = *((r4 + 4));
                                                                 |     if (r3 != 0x3a) {
    0x0004edcc moveq sb, 0                                       |         sb = 0;
                                                                 |     }
    0x0004edd0 subs r3, r0, 0                                    |     r3 -= stream;
    0x0004edd4 add fp, pc, fp                                    |     
    0x0004edd8 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0004eddc bgt 0x4edec                                       |     
                                                                 |     while (1) {
                                                                 | label_2:
    0x0004ede0 mvn r0, 0                                         |         r0 = ~0;
                                                                 | label_3:
    0x0004ede4 add sp, sp, 0x3c                                  |         
    0x0004ede8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0004edec mov r3, 0                                         |         r3 = 0;
    0x0004edf0 str r3, [r4, 8]                                   |         *((r4 + 8)) = r3;
    0x0004edf4 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0004edf8 mov r5, r1                                        |         r5 = r1;
    0x0004edfc cmp r3, 0                                         |         
    0x0004ee00 mov r7, r2                                        |         r7 = r2;
                                                                 |         if (r3 == 0) {
    0x0004ee04 beq 0x4ef30                                       |             goto label_11;
                                                                 |         }
    0x0004ee08 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0004ee0c cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0004ee10 beq 0x4ef38                                       |             goto label_12;
                                                                 |         }
                                                                 | label_0:
    0x0004ee14 ldr r3, [r4, 0x1c]                                |         r3 = *((r4 + 0x1c));
    0x0004ee18 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0004ee1c beq 0x4ee2c                                       |             
    0x0004ee20 ldrb r3, [r3]                                     |             r3 = *(r3);
    0x0004ee24 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0004ee28 bne 0x4f01c                                       |                 goto label_13;
                                                                 |             }
                                                                 |         }
    0x0004ee2c ldr r3, [r4]                                      |         r3 = *(r4);
    0x0004ee30 ldr r2, [r4, 0x24]                                |         r2 = *((r4 + 0x24));
    0x0004ee34 cmp r2, r3                                        |         
    0x0004ee38 ldr r2, [r4, 0x20]                                |         r2 = *((r4 + 0x20));
                                                                 |         if (r2 <= r3) {
    0x0004ee3c strgt r3, [r4, 0x24]                              |             *((r4 + 0x24)) = r3;
                                                                 |         }
    0x0004ee40 cmp r3, r2                                        |         
    0x0004ee44 ldr r2, [r4, 0x14]                                |         r2 = *((r4 + 0x14));
                                                                 |         if (r3 >= r2) {
    0x0004ee48 strlt r3, [r4, 0x20]                              |             *((r4 + 0x20)) = r3;
                                                                 |         }
    0x0004ee4c cmp r2, 1                                         |         
                                                                 |         if (r2 == 1) {
    0x0004ee50 bne 0x4eea8                                       |             
    0x0004ee54 ldr r1, [r4, 0x24]                                |             r1 = *((r4 + 0x24));
    0x0004ee58 ldr r2, [r4, 0x20]                                |             r2 = *((r4 + 0x20));
    0x0004ee5c cmp r2, r1                                        |             
                                                                 |             if (r2 == r1) {
    0x0004ee60 beq 0x4efa8                                       |                 goto label_14;
                                                                 |             }
    0x0004ee64 cmp r3, r1                                        |             
                                                                 |             if (r3 != r1) {
    0x0004ee68 beq 0x4ee78                                       |                 
    0x0004ee6c mov r1, r4                                        |                 r1 = r4;
    0x0004ee70 mov r0, r5                                        |                 r0 = r5;
    0x0004ee74 bl 0x4ecf0                                        |                 fcn_0004ecf0 (r0, r1);
                                                                 |             }
                                                                 | label_1:
    0x0004ee78 ldr r3, [r4]                                      |             r3 = *(r4);
    0x0004ee7c ldr r2, [sp, 0x10]                                |             r2 = var_10h;
    0x0004ee80 cmp r3, r2                                        |             
                                                                 |             if (r3 < r2) {
    0x0004ee84 bge 0x4eea4                                       |                 
    0x0004ee88 ldr r2, [r5, r3, lsl 2]                           |                 offset_0 = r3 << 2;
                                                                 |                 r2 = *((r5 + offset_0));
    0x0004ee8c ldrb r1, [r2]                                     |                 r1 = *(r2);
    0x0004ee90 cmp r1, 0x2d                                      |                 
                                                                 |                 if (r1 != 0x2d) {
    0x0004ee94 bne 0x4efb4                                       |                     goto label_15;
                                                                 |                 }
    0x0004ee98 ldrb r2, [r2, 1]                                  |                 r2 = *((r2 + 1));
    0x0004ee9c cmp r2, 0                                         |                 
                                                                 |                 if (r2 == 0) {
    0x0004eea0 beq 0x4efb4                                       |                     goto label_15;
                                                                 |                 }
                                                                 |             }
    0x0004eea4 str r3, [r4, 0x24]                                |             *((r4 + 0x24)) = r3;
                                                                 |         }
    0x0004eea8 ldr r6, [r4]                                      |         r6 = *(r4);
    0x0004eeac ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0004eeb0 cmp r6, r3                                        |         
                                                                 |         if (r6 != r3) {
    0x0004eeb4 beq 0x4ef0c                                       |             
    0x0004eeb8 ldr r1, [pc, 0x6a4]                               |             r1 = *(0x4f560);
    0x0004eebc ldr r0, [r5, r6, lsl 2]                           |             offset_1 = r6 << 2;
                                                                 |             r0 = *((r5 + offset_1));
    0x0004eec0 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0004eec4 bl 0x3e430                                        |             r0 = strcoll ();
    0x0004eec8 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0004eecc bne 0x4ef0c                                       |                 goto label_16;
                                                                 |             }
    0x0004eed0 ldr r2, [r4, 0x20]                                |             r2 = *((r4 + 0x20));
    0x0004eed4 ldr r3, [r4, 0x24]                                |             r3 = *((r4 + 0x24));
    0x0004eed8 add r6, r6, 1                                     |             r6++;
    0x0004eedc cmp r2, r3                                        |             
    0x0004eee0 str r6, [r4]                                      |             *(r4) = r6;
                                                                 |             if (r2 != r3) {
    0x0004eee4 streq r6, [r4, 0x20]                              |                 *((r4 + 0x20)) = r6;
                                                                 |             }
                                                                 |             if (r2 != r3) {
    0x0004eee8 beq 0x4ef00                                       |                 
    0x0004eeec cmp r6, r3                                        |                 
                                                                 |                 if (r6 == r3) {
    0x0004eef0 beq 0x4ef00                                       |                     goto label_17;
                                                                 |                 }
    0x0004eef4 mov r1, r4                                        |                 r1 = r4;
    0x0004eef8 mov r0, r5                                        |                 r0 = r5;
    0x0004eefc bl 0x4ecf0                                        |                 fcn_0004ecf0 (r0, r1);
                                                                 |             }
                                                                 | label_17:
    0x0004ef00 ldr r3, [sp, 0x10]                                |             r3 = var_10h;
    0x0004ef04 str r3, [r4, 0x24]                                |             *((r4 + 0x24)) = r3;
    0x0004ef08 str r3, [r4]                                      |             *(r4) = r3;
                                                                 |         }
                                                                 | label_16:
    0x0004ef0c ldr r1, [r4]                                      |         r1 = *(r4);
    0x0004ef10 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0004ef14 cmp r1, r3                                        |         
                                                                 |         if (r1 != r3) {
    0x0004ef18 bne 0x4efc0                                       |             goto label_18;
                                                                 |         }
    0x0004ef1c ldr r3, [r4, 0x20]                                |         r3 = *((r4 + 0x20));
    0x0004ef20 ldr r2, [r4, 0x24]                                |         r2 = *((r4 + 0x24));
    0x0004ef24 cmp r3, r2                                        |         
                                                                 |         if (r3 == r2) {
    0x0004ef28 strne r3, [r4]                                    |             *(r4) = r3;
                                                                 |         }
    0x0004ef2c b 0x4ede0                                         |         
                                                                 |     }
                                                                 | label_11:
    0x0004ef30 mov r3, 1                                         |     r3 = 1;
    0x0004ef34 str r3, [r4]                                      |     *(r4) = r3;
                                                                 | label_12:
    0x0004ef38 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0004ef3c ldr r0, [pc, 0x624]                               |     r0 = *(0x4f564);
    0x0004ef40 mov r6, 0                                         |     r6 = 0;
    0x0004ef44 str r3, [r4, 0x24]                                |     *((r4 + 0x24)) = r3;
    0x0004ef48 str r3, [r4, 0x20]                                |     *((r4 + 0x20)) = r3;
    0x0004ef4c str r6, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r6;
    0x0004ef50 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0004ef54 bl 0x4b980                                        |     r0 = getenv (r0);
    0x0004ef58 subs r3, r0, r6                                   |     r3 = r0 - r6;
                                                                 |     if (r3 == r0) {
    0x0004ef5c movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0004ef60 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x0004ef64 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0004ef68 cmp r3, 0x2d                                      |     
                                                                 |     if (r3 != 0x2d) {
    0x0004ef6c moveq r3, 2                                       |         r3 = 2;
                                                                 |     }
                                                                 |     if (r3 != 0x2d) {
    0x0004ef70 streq r3, [r4, 0x14]                              |         *((r4 + 0x14)) = r3;
                                                                 |     }
                                                                 |     if (r3 != 0x2d) {
    0x0004ef74 beq 0x4ef84                                       |         
    0x0004ef78 cmp r3, 0x2b                                      |         
                                                                 |         if (r3 != 0x2b) {
    0x0004ef7c bne 0x4ef94                                       |             goto label_19;
                                                                 |         }
    0x0004ef80 str r6, [r4, 0x14]                                |         *((r4 + 0x14)) = r6;
                                                                 |     }
    0x0004ef84 add r7, r7, 1                                     |     r7++;
                                                                 |     do {
    0x0004ef88 mov r3, 1                                         |         r3 = 1;
    0x0004ef8c str r3, [r4, 0x10]                                |         *((r4 + 0x10)) = r3;
    0x0004ef90 b 0x4ee14                                         |         goto label_0;
                                                                 | label_19:
    0x0004ef94 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0004ef98 moveq r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x0004ef9c strne r6, [r4, 0x14]                              |             *((r4 + 0x14)) = r6;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0004efa0 streq r3, [r4, 0x14]                              |             *((r4 + 0x14)) = r3;
                                                                 |         }
    0x0004efa4 b 0x4ef88                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x0004efa8 cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x0004efac strne r3, [r4, 0x20]                              |         *((r4 + 0x20)) = r3;
                                                                 |     }
    0x0004efb0 b 0x4ee78                                         |     goto label_1;
                                                                 | label_15:
    0x0004efb4 add r3, r3, 1                                     |     r3++;
    0x0004efb8 str r3, [r4]                                      |     *(r4) = r3;
    0x0004efbc b 0x4ee78                                         |     goto label_1;
                                                                 | label_18:
    0x0004efc0 ldr r3, [r5, r1, lsl 2]                           |     offset_2 = r1 << 2;
                                                                 |     r3 = *((r5 + offset_2));
    0x0004efc4 ldrb r2, [r3]                                     |     r2 = *(r3);
    0x0004efc8 cmp r2, 0x2d                                      |     
                                                                 |     if (r2 == 0x2d) {
    0x0004efcc bne 0x4efdc                                       |         
    0x0004efd0 ldrb r0, [r3, 1]                                  |         r0 = *((r3 + 1));
    0x0004efd4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0004efd8 bne 0x4effc                                       |             goto label_20;
                                                                 |         }
                                                                 |     }
    0x0004efdc ldr r2, [r4, 0x14]                                |     r2 = *((r4 + 0x14));
    0x0004efe0 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0004efe4 beq 0x4ede0                                       |         goto label_2;
                                                                 |     }
    0x0004efe8 add r1, r1, 1                                     |     r1++;
    0x0004efec str r1, [r4]                                      |     *(r4) = r1;
    0x0004eff0 str r3, [r4, 8]                                   |     *((r4 + 8)) = r3;
    0x0004eff4 mov r0, 1                                         |     r0 = 1;
    0x0004eff8 b 0x4ede4                                         |     goto label_3;
                                                                 | label_20:
    0x0004effc sub r2, r0, 0x2d                                  |     r2 = r0 - 0x2d;
    0x0004f000 cmp sl, 0                                         |     
    0x0004f004 clz r2, r2                                        |     r2 &= r2;
    0x0004f008 lsr r2, r2, 5                                     |     r2 >>= 5;
                                                                 |     if (sl != 0) {
    0x0004f00c moveq r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0004f010 add r2, r2, 1                                     |     r2++;
    0x0004f014 add r3, r3, r2                                    |     r3 += r2;
    0x0004f018 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
                                                                 | label_13:
    0x0004f01c cmp sl, 0                                         |     
                                                                 |     if (sl == 0) {
    0x0004f020 beq 0x4f418                                       |         goto label_21;
                                                                 |     }
    0x0004f024 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0004f028 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0004f02c lsl r3, r3, 2                                     |     r3 <<= 2;
    0x0004f030 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x0004f034 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0004f038 ldr r3, [r5, r3, lsl 2]                           |     offset_3 = r3 << 2;
                                                                 |     r3 = *((r5 + offset_3));
    0x0004f03c str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0004f040 ldrb r3, [r3, 1]                                  |     r3 = *((r3 + 1));
    0x0004f044 cmp r3, 0x2d                                      |     
    0x0004f048 str r3, [sp, 0x24]                                |     var_24h = r3;
                                                                 |     if (r3 != 0x2d) {
    0x0004f04c beq 0x4f080                                       |         
    0x0004f050 ldr r3, [sp, 0x64]                                |         r3 = *(arg_64h);
    0x0004f054 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0004f058 beq 0x4f418                                       |             goto label_21;
                                                                 |         }
    0x0004f05c ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x0004f060 ldrb r3, [r3, 2]                                  |         r3 = *((r3 + 2));
    0x0004f064 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0004f068 bne 0x4f080                                       |             goto label_22;
                                                                 |         }
    0x0004f06c ldr r1, [sp, 0x24]                                |         r1 = var_24h;
    0x0004f070 mov r0, r7                                        |         r0 = r7;
    0x0004f074 bl 0x3ef3c                                        |         r0 = index ();
    0x0004f078 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0004f07c bne 0x4f418                                       |             goto label_21;
                                                                 |         }
                                                                 |     }
                                                                 | label_22:
    0x0004f080 ldr r3, [r4, 0x1c]                                |     r3 = *((r4 + 0x1c));
    0x0004f084 str r3, [sp, 0xc]                                 |     s2 = r3;
                                                                 |     do {
    0x0004f088 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x0004f08c ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0004f090 ldrb r2, [r3], 1                                  |         r2 = *(r3);
                                                                 |         r3++;
    0x0004f094 subs r8, r2, 0x3d                                 |         r8 = r2 - 0x3d;
                                                                 |         if (r8 == r2) {
    0x0004f098 movne r8, 1                                       |             r8 = 1;
                                                                 |         }
    0x0004f09c cmp r2, 0                                         |         
                                                                 |         if (r2 != 0) {
    0x0004f0a0 moveq r8, 0                                       |             r8 = 0;
                                                                 |         }
    0x0004f0a4 cmp r8, 0                                         |         
    0x0004f0a8 bne 0x4f088                                       |         
                                                                 |     } while (r8 != 0);
    0x0004f0ac mvn r3, 0                                         |     r3 = ~0;
    0x0004f0b0 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0004f0b4 ldr r2, [sp, 0xc]                                 |     r2 = s2;
    0x0004f0b8 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0004f0bc mov r6, r8                                        |     r6 = r8;
    0x0004f0c0 sub r3, r3, r2                                    |     r3 -= r2;
    0x0004f0c4 str r8, [sp, 0x18]                                |     var_18h = r8;
    0x0004f0c8 str r3, [sp, 0x2c]                                |     var_2ch = r3;
                                                                 |     do {
    0x0004f0cc ldr r3, [sl]                                      |         r3 = *(sl);
    0x0004f0d0 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0004f0d4 bne 0x4f140                                       |             
                                                                 | label_5:
    0x0004f0d8 ldr r2, [sp, 0x18]                                |             r2 = var_18h;
    0x0004f0dc cmp r2, 0                                         |             
                                                                 |             if (r2 == 0) {
    0x0004f0e0 eorne r3, r3, 1                                   |                 r3 ^= 1;
                                                                 |             }
                                                                 |             if (r2 != 0) {
    0x0004f0e4 moveq r3, 0                                       |                 r3 = 0;
                                                                 |             }
    0x0004f0e8 cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x0004f0ec beq 0x4f1f0                                       |                 goto label_23;
                                                                 |             }
    0x0004f0f0 cmp sb, 0                                         |             
                                                                 |             if (sb != 0) {
    0x0004f0f4 beq 0x4f118                                       |                 
    0x0004f0f8 ldr r3, [pc, 0x46c]                               |                 r3 = *(0x4f568);
    0x0004f0fc ldr r1, [pc, 0x46c]                               |                 r1 = *(0x4f56c);
    0x0004f100 ldr r0, [fp, r3]                                  |                 r0 = *((fp + r3));
    0x0004f104 ldr r2, [r5]                                      |                 r2 = *(r5);
    0x0004f108 ldr r3, [sp, 0x20]                                |                 r3 = var_20h;
    0x0004f10c add r1, pc, r1                                    |                 r1 = pc + r1;
    0x0004f110 ldr r0, [r0]                                      |                 r0 = *(r0);
    0x0004f114 bl 0x34c9c                                        |                 fprintf (r0, r1, r2, r3)
                                                                 |             }
    0x0004f118 ldr r5, [r4, 0x1c]                                |             r5 = *((r4 + 0x1c));
    0x0004f11c mov r0, r5                                        |             r0 = r5;
    0x0004f120 bl 0x3e3c0                                        |             r0 = strlen ();
    0x0004f124 add r0, r5, r0                                    |             r0 = r5 + r0;
    0x0004f128 str r0, [r4, 0x1c]                                |             *((r4 + 0x1c)) = r0;
                                                                 | label_6:
    0x0004f12c ldr r3, [r4]                                      |             r3 = *(r4);
    0x0004f130 add r3, r3, 1                                     |             r3++;
    0x0004f134 str r3, [r4]                                      |             *(r4) = r3;
    0x0004f138 mov r3, 0                                         |             r3 = 0;
    0x0004f13c b 0x4f27c                                         |             goto label_24;
                                                                 |         }
    0x0004f140 ldr r2, [sp, 0x2c]                                |         r2 = var_2ch;
    0x0004f144 ldr r1, [sp, 0xc]                                 |         r1 = s2;
    0x0004f148 mov r0, r3                                        |         r0 = r3;
    0x0004f14c str r3, [sp, 0x34]                                |         s = r3;
    0x0004f150 bl 0x3eab8                                        |         r0 = strncmp (r0, r1, r2);
    0x0004f154 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0004f158 bne 0x4f1c8                                       |             
    0x0004f15c ldr r3, [sp, 0x34]                                |             r3 = s;
    0x0004f160 mov r0, r3                                        |             r0 = r3;
    0x0004f164 bl 0x3e3c0                                        |             strlen ();
    0x0004f168 ldr r3, [sp, 0x2c]                                |             r3 = var_2ch;
    0x0004f16c cmp r3, r0                                        |             
                                                                 |             if (r3 == r0) {
    0x0004f170 beq 0x4f1e0                                       |                 goto label_25;
                                                                 |             }
    0x0004f174 cmp r6, 0                                         |             
                                                                 |             if (r6 != 0) {
    0x0004f178 streq r8, [sp, 0x28]                              |                 var_28h = r8;
                                                                 |             }
                                                                 |             if (r6 != 0) {
    0x0004f17c moveq r6, sl                                      |                 r6 = sl;
                                                                 |             }
                                                                 |             if (r6 == 0) {
    0x0004f180 beq 0x4f1c8                                       |                 goto label_4;
                                                                 |             }
    0x0004f184 ldr r3, [sp, 0x64]                                |             r3 = *(arg_64h);
    0x0004f188 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0004f18c bne 0x4f1d4                                       |                 goto label_26;
                                                                 |             }
    0x0004f190 ldr r2, [r6, 4]                                   |             r2 = *((r6 + 4));
    0x0004f194 ldr r3, [sl, 4]                                   |             r3 = *((sl + 4));
    0x0004f198 cmp r2, r3                                        |             
                                                                 |             if (r2 != r3) {
    0x0004f19c bne 0x4f1d4                                       |                 goto label_26;
                                                                 |             }
    0x0004f1a0 ldr r2, [r6, 8]                                   |             r2 = *((r6 + 8));
    0x0004f1a4 ldr r3, [sl, 8]                                   |             r3 = *((sl + 8));
    0x0004f1a8 cmp r2, r3                                        |             
                                                                 |             if (r2 != r3) {
    0x0004f1ac bne 0x4f1d4                                       |                 goto label_26;
                                                                 |             }
    0x0004f1b0 ldr r2, [r6, 0xc]                                 |             r2 = *((r6 + 0xc));
    0x0004f1b4 ldr r3, [sl, 0xc]                                 |             r3 = *((sl + 0xc));
    0x0004f1b8 ldr r1, [sp, 0x18]                                |             r1 = var_18h;
    0x0004f1bc cmp r2, r3                                        |             
                                                                 |             if (r2 == r3) {
    0x0004f1c0 movne r1, 1                                       |                 r1 = 1;
                                                                 |             }
    0x0004f1c4 str r1, [sp, 0x18]                                |             var_18h = r1;
                                                                 |         }
                                                                 | label_4:
    0x0004f1c8 add sl, sl, 0x10                                  |         sl += 0x10;
    0x0004f1cc add r8, r8, 1                                     |         r8++;
    0x0004f1d0 b 0x4f0cc                                         |         
                                                                 |     } while (1);
                                                                 | label_26:
    0x0004f1d4 mov r3, 1                                         |     r3 = 1;
    0x0004f1d8 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0004f1dc b 0x4f1c8                                         |     goto label_4;
                                                                 | label_25:
    0x0004f1e0 str r8, [sp, 0x28]                                |     var_28h = r8;
    0x0004f1e4 mov r6, sl                                        |     r6 = sl;
    0x0004f1e8 mov r3, 1                                         |     r3 = 1;
    0x0004f1ec b 0x4f0d8                                         |     goto label_5;
                                                                 | label_23:
    0x0004f1f0 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0004f1f4 beq 0x4f36c                                       |         goto label_27;
                                                                 |     }
    0x0004f1f8 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0004f1fc ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x0004f200 add r3, r3, 1                                     |     r3++;
    0x0004f204 str r3, [r4]                                      |     *(r4) = r3;
    0x0004f208 ldrb r1, [r1]                                     |     r1 = *(r1);
    0x0004f20c ldr r2, [r6, 4]                                   |     r2 = *((r6 + 4));
    0x0004f210 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0004f214 beq 0x4f2a4                                       |         goto label_28;
                                                                 |     }
    0x0004f218 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0004f21c ldrne r3, [sp, 0x1c]                              |         r3 = var_1ch;
                                                                 |     }
                                                                 |     if (r2 == 0) {
    0x0004f220 addne r3, r3, 1                                   |         r3++;
                                                                 |     }
                                                                 |     if (r2 != 0) {
    0x0004f224 bne 0x4f2d0                                       |         goto label_29;
                                                                 |     }
    0x0004f228 cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x0004f22c beq 0x4f264                                       |         goto label_30;
                                                                 |     }
    0x0004f230 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0004f234 ldr r2, [pc, 0x330]                               |     r2 = *(0x4f568);
    0x0004f238 ldr r1, [r5, r3, lsl 2]                           |     offset_4 = r3 << 2;
                                                                 |     r1 = *((r5 + offset_4));
    0x0004f23c ldr r2, [fp, r2]                                  |     r2 = *((fp + r2));
    0x0004f240 ldrb ip, [r1, 1]                                  |     ip = *((r1 + 1));
    0x0004f244 ldr r0, [r2]                                      |     r0 = *(0x4f568);
    0x0004f248 cmp ip, 0x2d                                      |     
    0x0004f24c ldr r3, [r6]                                      |     r3 = *(r6);
    0x0004f250 ldr r2, [r5]                                      |     r2 = *(r5);
                                                                 |     if (ip != 0x2d) {
    0x0004f254 bne 0x4f288                                       |         goto label_31;
                                                                 |     }
    0x0004f258 ldr r1, [pc, 0x314]                               |     r1 = *(0x4f570);
    0x0004f25c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0004f260 bl 0x34c9c                                        |     fprintf (r0, r1)
                                                                 |     do {
                                                                 | label_30:
    0x0004f264 ldr r5, [r4, 0x1c]                                |         r5 = *((r4 + 0x1c));
    0x0004f268 mov r0, r5                                        |         r0 = r5;
    0x0004f26c bl 0x3e3c0                                        |         strlen ();
    0x0004f270 ldr r3, [r6, 0xc]                                 |         r3 = *((r6 + 0xc));
    0x0004f274 add r0, r5, r0                                    |         r0 = r5 + r0;
    0x0004f278 str r0, [r4, 0x1c]                                |         *((r4 + 0x1c)) = r0;
                                                                 | label_24:
    0x0004f27c str r3, [r4, 0xc]                                 |         *((r4 + 0xc)) = r3;
                                                                 | label_7:
    0x0004f280 mov r0, 0x3f                                      |         r0 = 0x3f;
    0x0004f284 b 0x4ede4                                         |         goto label_3;
                                                                 | label_31:
    0x0004f288 ldrb r1, [r1]                                     |         r1 = *(r1);
    0x0004f28c str r3, [sp]                                      |         *(sp) = r3;
    0x0004f290 mov r3, r1                                        |         r3 = r1;
    0x0004f294 ldr r1, [pc, 0x2dc]                               |         r1 = *(0x4f574);
    0x0004f298 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0004f29c bl 0x34c9c                                        |         fprintf (r0, r1, r2, r3)
    0x0004f2a0 b 0x4f264                                         |         
                                                                 |     } while (1);
                                                                 | label_28:
    0x0004f2a4 cmp r2, 1                                         |     
                                                                 |     if (r2 == 1) {
    0x0004f2a8 bne 0x4f2d4                                       |         
    0x0004f2ac ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x0004f2b0 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x0004f2b4 bge 0x4f310                                       |             goto label_32;
                                                                 |         }
    0x0004f2b8 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0004f2bc add r3, r3, 2                                     |         r3 += 2;
    0x0004f2c0 str r3, [r4]                                      |         *(r4) = r3;
    0x0004f2c4 ldr r3, [sp, 0x30]                                |         r3 = var_30h;
    0x0004f2c8 add r5, r5, r3                                    |         r5 += r3;
    0x0004f2cc ldr r3, [r5, 4]                                   |         r3 = *((r5 + 4));
                                                                 | label_29:
    0x0004f2d0 str r3, [r4, 8]                                   |         *((r4 + 8)) = r3;
                                                                 |     }
    0x0004f2d4 ldr r0, [sp, 0xc]                                 |     r0 = s2;
    0x0004f2d8 bl 0x3e3c0                                        |     strlen ();
    0x0004f2dc ldr r3, [sp, 0xc]                                 |     r3 = s2;
    0x0004f2e0 add r0, r3, r0                                    |     r0 = r3 + r0;
    0x0004f2e4 ldr r3, [sp, 0x60]                                |     r3 = *(stream);
    0x0004f2e8 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x0004f2ec cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0004f2f0 ldrne r2, [sp, 0x28]                              |         r2 = var_28h;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0004f2f4 strne r2, [r3]                                    |         *(r3) = r2;
                                                                 |     }
    0x0004f2f8 ldr r3, [r6, 8]                                   |     r3 = *((r6 + 8));
    0x0004f2fc ldr r0, [r6, 0xc]                                 |     r0 = *((r6 + 0xc));
    0x0004f300 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0004f304 strne r0, [r3]                                    |         *(r3) = r0;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0004f308 movne r0, 0                                       |         r0 = 0;
                                                                 |     }
    0x0004f30c b 0x4ede4                                         |     goto label_3;
                                                                 | label_32:
    0x0004f310 cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0004f314 beq 0x4f33c                                       |         
    0x0004f318 ldr r3, [pc, 0x24c]                               |         r3 = *(0x4f568);
    0x0004f31c ldr r1, [pc, 0x258]                               |         r1 = *(0x4f578);
    0x0004f320 ldr r0, [fp, r3]                                  |         r0 = *((fp + r3));
    0x0004f324 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0004f328 ldr r2, [r5]                                      |         r2 = *(r5);
    0x0004f32c ldr r3, [r5, r3, lsl 2]                           |         offset_5 = r3 << 2;
                                                                 |         r3 = *((r5 + offset_5));
    0x0004f330 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0004f334 ldr r0, [r0]                                      |         r0 = *(r0);
    0x0004f338 bl 0x34c9c                                        |         fprintf (r0, r1, r2, r3)
                                                                 |     }
    0x0004f33c ldr r5, [r4, 0x1c]                                |     r5 = *((r4 + 0x1c));
    0x0004f340 mov r0, r5                                        |     r0 = r5;
    0x0004f344 bl 0x3e3c0                                        |     strlen ();
    0x0004f348 ldr r3, [r6, 0xc]                                 |     r3 = *((r6 + 0xc));
    0x0004f34c str r3, [r4, 0xc]                                 |     *((r4 + 0xc)) = r3;
    0x0004f350 add r0, r5, r0                                    |     r0 = r5 + r0;
    0x0004f354 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x0004f358 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0004f35c cmp r3, 0x3a                                      |     
                                                                 |     if (r3 == 0x3a) {
    0x0004f360 movne r0, 0x3f                                    |         r0 = 0x3f;
                                                                 |     }
                                                                 |     if (r3 != 0x3a) {
    0x0004f364 moveq r0, 0x3a                                    |         r0 = 0x3a;
                                                                 |     }
    0x0004f368 b 0x4ede4                                         |     goto label_3;
                                                                 | label_27:
    0x0004f36c ldr r3, [sp, 0x64]                                |     r3 = *(arg_64h);
    0x0004f370 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0004f374 beq 0x4f3d4                                       |         goto label_33;
                                                                 |     }
    0x0004f378 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0004f37c cmp r3, 0x2d                                      |     
                                                                 |     if (r3 == 0x2d) {
    0x0004f380 beq 0x4f554                                       |         goto label_34;
                                                                 |     }
    0x0004f384 ldr r3, [sp, 0xc]                                 |     r3 = s2;
    0x0004f388 mov r0, r7                                        |     r0 = r7;
    0x0004f38c ldrb r1, [r3]                                     |     r1 = *(r3);
    0x0004f390 bl 0x3ef3c                                        |     r0 = index ();
    0x0004f394 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0004f398 bne 0x4f418                                       |         goto label_21;
                                                                 |     }
    0x0004f39c cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x0004f3a0 beq 0x4f408                                       |         goto label_10;
                                                                 |     }
                                                                 |     do {
    0x0004f3a4 ldr r2, [pc, 0x1c0]                               |         r2 = *(0x4f568);
    0x0004f3a8 ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x0004f3ac ldr r0, [fp, r2]                                  |         r0 = *((fp + r2));
    0x0004f3b0 ldr r1, [pc, 0x1c8]                               |         r1 = *(0x4f57c);
    0x0004f3b4 ldr r2, [sp, 0xc]                                 |         r2 = s2;
    0x0004f3b8 ldrb r3, [r3]                                     |         r3 = *(r3);
    0x0004f3bc add r1, pc, r1                                    |         r1 = pc + r1;
    0x0004f3c0 str r2, [sp]                                      |         *(sp) = r2;
    0x0004f3c4 ldr r2, [r5]                                      |         r2 = *(r5);
    0x0004f3c8 ldr r0, [r0]                                      |         r0 = *(r0);
    0x0004f3cc bl 0x34c9c                                        |         fprintf (r0, r1, r2, r3)
    0x0004f3d0 b 0x4f408                                         |         goto label_10;
                                                                 | label_33:
    0x0004f3d4 cmp sb, 0                                         |         
                                                                 |         if (sb == 0) {
    0x0004f3d8 beq 0x4f408                                       |             goto label_10;
                                                                 |         }
    0x0004f3dc ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0004f3e0 cmp r3, 0x2d                                      |         
    0x0004f3e4 bne 0x4f3a4                                       |         
                                                                 |     } while (r3 != 0x2d);
                                                                 | label_9:
    0x0004f3e8 ldr r3, [pc, 0x17c]                               |     r3 = *(0x4f568);
    0x0004f3ec ldr r1, [pc, 0x190]                               |     r1 = *(0x4f580);
    0x0004f3f0 ldr r0, [fp, r3]                                  |     r0 = *((fp + r3));
    0x0004f3f4 ldr r2, [r5]                                      |     r2 = *(r5);
    0x0004f3f8 ldr r3, [sp, 0xc]                                 |     r3 = s2;
    0x0004f3fc add r1, pc, r1                                    |     r1 = pc + r1;
    0x0004f400 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0004f404 bl 0x34c9c                                        |     fprintf (r0, r1, r2, r3)
                                                                 | label_10:
    0x0004f408 ldr r3, [pc, 0x178]                               |     r3 = *(0x4f584);
    0x0004f40c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0004f410 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
    0x0004f414 b 0x4f12c                                         |     goto label_6;
                                                                 | label_21:
    0x0004f418 ldr r8, [r4, 0x1c]                                |     r8 = *((r4 + 0x1c));
    0x0004f41c mov r0, r7                                        |     r0 = r7;
    0x0004f420 add sl, r8, 1                                     |     sl = r8 + 1;
    0x0004f424 str sl, [r4, 0x1c]                                |     *((r4 + 0x1c)) = sl;
    0x0004f428 ldrb r6, [r8]                                     |     r6 = *(r8);
    0x0004f42c mov r1, r6                                        |     r1 = r6;
    0x0004f430 bl 0x3ef3c                                        |     index ();
    0x0004f434 ldrb r3, [r8, 1]                                  |     r3 = *((r8 + 1));
    0x0004f438 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0004f43c ldreq r3, [r4]                                    |         r3 = *(r4);
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0004f440 addeq r3, r3, 1                                   |         r3++;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0004f444 streq r3, [r4]                                    |         *(r4) = r3;
                                                                 |     }
    0x0004f448 cmp r6, 0x3a                                      |     
    0x0004f44c cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
                                                                 |     if (r6 != 0x3a) {
    0x0004f450 bne 0x4f49c                                       |         goto label_35;
                                                                 |     }
    0x0004f454 cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x0004f458 beq 0x4f488                                       |         goto label_36;
                                                                 |     }
    0x0004f45c ldr r3, [pc, 0x108]                               |     r3 = *(0x4f568);
    0x0004f460 ldr r2, [r5]                                      |     r2 = *(r5);
    0x0004f464 ldr r3, [fp, r3]                                  |     r3 = *((fp + r3));
    0x0004f468 ldr r0, [r3]                                      |     r0 = *(0x4f568);
    0x0004f46c ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x0004f470 cmp r3, 0                                         |     
    0x0004f474 mov r3, r6                                        |     r3 = r6;
                                                                 |     if (r3 == 0) {
    0x0004f478 beq 0x4f490                                       |         goto label_37;
                                                                 |     }
    0x0004f47c ldr r1, [pc, 0x108]                               |     r1 = *(0x4f588);
    0x0004f480 add r1, pc, r1                                    |     r1 = pc + r1;
                                                                 |     do {
    0x0004f484 bl 0x34c9c                                        |         fprintf (r0, r1)
                                                                 | label_36:
    0x0004f488 str r6, [r4, 0xc]                                 |         *((r4 + 0xc)) = r6;
    0x0004f48c b 0x4f280                                         |         goto label_7;
                                                                 | label_37:
    0x0004f490 ldr r1, [pc, 0xf8]                                |         r1 = *(0x4f58c);
    0x0004f494 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0004f498 b 0x4f484                                         |         
                                                                 |     } while (1);
                                                                 | label_35:
    0x0004f49c ldrb r3, [r0, 1]                                  |     r3 = *((r0 + 1));
    0x0004f4a0 cmp r3, 0x3a                                      |     
                                                                 |     if (r3 != 0x3a) {
    0x0004f4a4 bne 0x4f4dc                                       |         goto label_38;
                                                                 |     }
    0x0004f4a8 ldrb r3, [r0, 2]                                  |     r3 = *((r0 + 2));
    0x0004f4ac ldrb r2, [r8, 1]                                  |     r2 = *((r8 + 1));
    0x0004f4b0 cmp r3, 0x3a                                      |     
                                                                 |     if (r3 != 0x3a) {
    0x0004f4b4 bne 0x4f4e4                                       |         goto label_39;
                                                                 |     }
    0x0004f4b8 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0004f4bc strne sl, [r4, 8]                                 |         *((r4 + 8)) = sl;
                                                                 |     }
                                                                 |     if (r2 == 0) {
    0x0004f4c0 ldrne r3, [r4]                                    |         r3 = *(r4);
                                                                 |     }
                                                                 |     if (r2 != 0) {
    0x0004f4c4 streq r2, [r4, 8]                                 |         *((r4 + 8)) = r2;
                                                                 |     }
    0x0004f4c8 beq 0x4f4d4                                       |     
                                                                 |     while (r2 != 0) {
    0x0004f4cc add r3, r3, 1                                     |         r3++;
    0x0004f4d0 str r3, [r4]                                      |         *(r4) = r3;
                                                                 | label_8:
    0x0004f4d4 mov r3, 0                                         |         r3 = 0;
    0x0004f4d8 str r3, [r4, 0x1c]                                |         *((r4 + 0x1c)) = r3;
                                                                 | label_38:
    0x0004f4dc mov r0, r6                                        |         r0 = r6;
    0x0004f4e0 b 0x4ede4                                         |         goto label_3;
                                                                 | label_39:
    0x0004f4e4 cmp r2, 0                                         |         
    0x0004f4e8 ldr r3, [r4]                                      |         r3 = *(r4);
                                                                 |         if (r2 == 0) {
    0x0004f4ec strne sl, [r4, 8]                                 |             *((r4 + 8)) = sl;
                                                                 |         }
    0x0004f4f0 bne 0x4f4cc                                       |         
                                                                 |     }
    0x0004f4f4 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0004f4f8 cmp r2, r3                                        |     
                                                                 |     if (r2 == r3) {
    0x0004f4fc bne 0x4f540                                       |         
    0x0004f500 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x0004f504 beq 0x4f528                                       |             
    0x0004f508 ldr r3, [pc, 0x5c]                                |             r3 = *(0x4f568);
    0x0004f50c ldr r1, [pc, 0x80]                                |             r1 = *(0x4f590);
    0x0004f510 ldr r0, [fp, r3]                                  |             r0 = *((fp + r3));
    0x0004f514 ldr r2, [r5]                                      |             r2 = *(r5);
    0x0004f518 mov r3, r6                                        |             r3 = r6;
    0x0004f51c add r1, pc, r1                                    |             r1 = pc + r1;
    0x0004f520 ldr r0, [r0]                                      |             r0 = *(r0);
    0x0004f524 bl 0x34c9c                                        |             fprintf (r0, r1, r2, r3)
                                                                 |         }
    0x0004f528 str r6, [r4, 0xc]                                 |         *((r4 + 0xc)) = r6;
    0x0004f52c ldrb r3, [r7]                                     |         r3 = *(r7);
    0x0004f530 cmp r3, 0x3a                                      |         
                                                                 |         if (r3 == 0x3a) {
    0x0004f534 movne r6, 0x3f                                    |             r6 = 0x3f;
                                                                 |         }
                                                                 |         if (r3 != 0x3a) {
    0x0004f538 moveq r6, 0x3a                                    |             r6 = 0x3a;
                                                                 |         }
    0x0004f53c b 0x4f4d4                                         |         goto label_8;
                                                                 |     }
    0x0004f540 add r2, r3, 1                                     |     r2 = r3 + 1;
    0x0004f544 ldr r3, [r5, r3, lsl 2]                           |     offset_6 = r3 << 2;
                                                                 |     r3 = *((r5 + offset_6));
    0x0004f548 str r2, [r4]                                      |     *(r4) = r2;
    0x0004f54c str r3, [r4, 8]                                   |     *((r4 + 8)) = r3;
    0x0004f550 b 0x4f4d4                                         |     goto label_8;
                                                                 | label_34:
    0x0004f554 cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0004f558 bne 0x4f3e8                                       |         goto label_9;
                                                                 |     }
    0x0004f55c b 0x4f408                                         |     goto label_10;
                                                                 | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x18060 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.__assert ()                      | void assert (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00018060 push {r0, r1, r2, r3, r4, lr}     |     
    0x00018064 ldr lr, [pc, 0x64]                |     lr = *(0x180cc);
    0x00018068 mov r4, r2                        |     r4 = r2;
    0x0001806c add lr, pc, lr                    |     lr = pc + lr;
    0x00018070 ldr r2, [lr]                      |     r2 = *(0x180cc);
    0x00018074 ldr ip, [pc, 0x58]                |     ip = *(0x180d0);
    0x00018078 cmp r2, 0                         |     
    0x0001807c add ip, pc, ip                    |     
                                                 |     if (r2 == 0) {
    0x00018080 bne 0x180cc                       |         
    0x00018084 mov r2, 1                         |         r2 = 1;
    0x00018088 str r2, [lr]                      |         *(lr) = r2;
    0x0001808c ldr r2, [pc, 0x44]                |         r2 = *(0x180d4);
    0x00018090 mov r5, r0                        |         r5 = r0;
    0x00018094 ldr r2, [ip, r2]                  |         r2 = *((ip + r2));
    0x00018098 cmp r3, 0                         |         
    0x0001809c ldr r0, [r2]                      |         r0 = *(0x180d4);
    0x000180a0 ldr r2, [pc, 0x34]                |         
    0x000180a4 add r2, pc, r2                    |         r2 = pc + r2;
    0x000180a8 ldr r2, [r2]                      |         r2 = *(0x180d8);
                                                 |         if (r3 != 0) {
    0x000180ac ldreq r3, [pc, 0x2c]              |             r3 = *((pc + 0x2c));
                                                 |         }
                                                 |         if (r3 != 0) {
    0x000180b0 addeq r3, pc, r3                  |             r3 = pc + r3;
                                                 |         }
    0x000180b4 stmib sp, {r3, r5}                |         __asm ("stmib sp, {r3, r5}");
    0x000180b8 mov r3, r1                        |         r3 = r1;
    0x000180bc ldr r1, [pc, 0x20]                |         r1 = *(0x180e0);
    0x000180c0 str r4, [sp]                      |         *(sp) = r4;
    0x000180c4 add r1, pc, r1                    |         r1 = pc + r1;
    0x000180c8 bl 0x34c9c                        |         r0 = fprintf (r0, r1, r2, r3, r4, r5)
                                                 |     }
    0x000180cc bl 0x4b870                        |     abort ();
                                                 |     if (r3 != 0) {
    0x000180d0 muleq r7, r8, r2                  |         r7 = r8 * r2;
                                                 |     }
                                                 |     if (r3 != 0) {
    0x000180d4 andeq pc, r6, r4, asr 23          |         pc = r6 & (r4 >> 23);
                                                 |     }
                                                 |     if (r3 != 0) {
    0x000180d8 andeq r0, r0, r0, lsl 7           |         r0 &= (r0 << 7);
                                                 |     }
                                                 |     if (r3 != 0) {
    0x000180dc andeq r0, r7, r0, lsl 4           |         r0 = r7 & (r0 << 4);
                                                 |     }
                                                 |     if (r3 != 0) {
    0x000180e0 andeq sl, r5, sb, ror 5           |         sl = r5 & (sb >>> 5);
                                                 |     }
                                                 |     /* 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. */
    0x000180e4 andeq sl, r5, r0, ror 5           |     return sl = r5 & (r0 >>> 5);
                                                 | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x1e368 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.addmntent ()             | void addmntent (int32_t arg1, int32_t arg2) {
                                         |     int32_t var_0h;
                                         |     int32_t var_4h;
                                         |     int32_t var_8h;
                                         |     int32_t var_ch;
                                         |     int32_t var_14h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0001e368 push {r4, r5, lr}         |     
    0x0001e36c mov r2, 2                 |     r2 = 2;
    0x0001e370 sub sp, sp, 0x14          |     
    0x0001e374 mov r4, r1                |     r4 = r1;
    0x0001e378 mov r1, 0                 |     r1 = 0;
    0x0001e37c mov r5, r0                |     r5 = r0;
    0x0001e380 bl 0x33f94                |     r0 = fseeko ();
    0x0001e384 cmp r0, 0                 |     
                                         |     if (r0 >= 0) {
    0x0001e388 movlt r0, 1               |         r0 = 1;
                                         |     }
                                         |     if (r0 >= 0) {
    0x0001e38c blt 0x1e3c8               |         
    0x0001e390 ldr r3, [r4, 0x14]        |         r3 = *((r4 + 0x14));
    0x0001e394 ldr r1, [pc, 0x34]        |         r1 = *(0x1e3cc);
    0x0001e398 str r3, [sp, 0xc]         |         var_ch = r3;
    0x0001e39c ldr r3, [r4, 0x10]        |         r3 = *((r4 + 0x10));
    0x0001e3a0 add r1, pc, r1            |         r1 = pc + r1;
    0x0001e3a4 str r3, [sp, 8]           |         var_8h = r3;
    0x0001e3a8 ldr r3, [r4, 0xc]         |         r3 = *((r4 + 0xc));
    0x0001e3ac mov r0, r5                |         r0 = r5;
    0x0001e3b0 str r3, [sp, 4]           |         var_4h = r3;
    0x0001e3b4 ldr r3, [r4, 8]           |         r3 = *((r4 + 8));
    0x0001e3b8 str r3, [sp]              |         *(sp) = r3;
    0x0001e3bc ldm r4, {r2, r3}          |         r2 = *(r4);
                                         |         r3 = *((r4 + 4));
    0x0001e3c0 bl 0x34c9c                |         r0 = fprintf (r0, r1, r2, r3, r4)
    0x0001e3c4 lsr r0, r0, 0x1f          |         r0 >>= 0x1f;
                                         |     }
    0x0001e3c8 add sp, sp, 0x14          |     
    0x0001e3cc pop {r4, r5, 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/lib/libuClibc-1.0.31.so @ 0x19164 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.error ()                                 | void error (int32_t errname, int32_t status) {
                                                         |     int32_t var_4h_3;
                                                         |     char * format;
                                                         |     int32_t var_24h;
                                                         |     r1 = errname;
                                                         |     r0 = status;
    0x00019164 push {r2, r3}                             |     
    0x00019168 ldr r3, [pc, 0x110]                       |     r3 = *(0x1927c);
    0x0001916c push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00019170 ldr r4, [pc, 0x10c]                       |     r4 = *(0x19280);
    0x00019174 mov r6, r0                                |     r6 = r0;
    0x00019178 add r4, pc, r4                            |     r4 = pc + r4;
    0x0001917c ldr r3, [r4, r3]                          |     r3 = *(0x19280);
    0x00019180 mov r7, r1                                |     r7 = r1;
    0x00019184 ldr r0, [r3]                              |     r0 = *(0x19280);
    0x00019188 bl 0x3bec8                                |     fflush ();
    0x0001918c ldr r3, [pc, 0xf4]                        |     r3 = *(0x19284);
    0x00019190 ldr r2, [pc, 0xf4]                        |     r2 = *(0x19288);
    0x00019194 ldr r3, [r4, r3]                          |     
    0x00019198 ldr r5, [r4, r2]                          |     r5 = *(0x19280);
    0x0001919c ldr r3, [r3]                              |     r3 = *(0x19280);
    0x000191a0 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000191a4 beq 0x1923c                               |         goto label_1;
                                                         |     }
    0x000191a8 blx r3                                    |     uint32_t (*r3)() ();
                                                         |     do {
    0x000191ac add r2, sp, 0x24                          |         r2 += var_24h;
    0x000191b0 ldr r1, [sp, 0x20]                        |         r1 = format;
    0x000191b4 ldr r0, [r5]                              |         r0 = *(r5);
    0x000191b8 str r2, [sp, 4]                           |         var_4h_3 = r2;
    0x000191bc bl 0x37bd0                                |         vfprintf ()
    0x000191c0 ldr r3, [pc, 0xc8]                        |         r3 = *(0x1928c);
    0x000191c4 cmp r7, 0                                 |         
    0x000191c8 ldr r2, [r4, r3]                          |         r2 = *((r4 + r3));
    0x000191cc ldr r3, [r2]                              |         r3 = *(r2);
    0x000191d0 add r3, r3, 1                             |         r3++;
    0x000191d4 str r3, [r2]                              |         *(r2) = r3;
                                                         |         if (r7 != 0) {
    0x000191d8 beq 0x191fc                               |             
    0x000191dc mov r0, r7                                |             r0 = r7;
    0x000191e0 ldr r4, [r5]                              |             r4 = *(r5);
    0x000191e4 bl 0x3f158                                |             strerror ();
    0x000191e8 ldr r1, [pc, 0xa4]                        |             r1 = *(0x19290);
    0x000191ec add r1, pc, r1                            |             r1 = pc + r1;
    0x000191f0 mov r2, r0                                |             r2 = r0;
    0x000191f4 mov r0, r4                                |             r0 = r4;
    0x000191f8 bl 0x34c9c                                |             fprintf (r0, r1, r2)
                                                         |         }
    0x000191fc ldr r1, [r5]                              |         r1 = *(r5);
    0x00019200 ldr r3, [r1, 0x34]                        |         r3 = *((r1 + 0x34));
    0x00019204 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00019208 beq 0x19264                               |             goto label_2;
                                                         |         }
    0x0001920c ldr r3, [r1, 0x10]                        |         r3 = *((r1 + 0x10));
    0x00019210 ldr r2, [r1, 0x1c]                        |         r2 = *((r1 + 0x1c));
    0x00019214 cmp r3, r2                                |         
                                                         |         if (r3 >= r2) {
    0x00019218 bhs 0x19258                               |             goto label_3;
                                                         |         }
    0x0001921c add r2, r3, 1                             |         r2 = r3 + 1;
    0x00019220 str r2, [r1, 0x10]                        |         *((r1 + 0x10)) = r2;
    0x00019224 mov r2, 0xa                               |         r2 = 0xa;
    0x00019228 strb r2, [r3]                             |         *(r3) = r2;
                                                         | label_0:
    0x0001922c cmp r6, 0                                 |         
                                                         |         if (r6 == 0) {
    0x00019230 beq 0x19270                               |             goto label_4;
                                                         |         }
    0x00019234 mov r0, r6                                |         r0 = r6;
    0x00019238 bl 0x4e878                                |         exit (r0);
                                                         | label_1:
    0x0001923c ldr r3, [pc, 0x54]                        |         r3 = *(0x19294);
    0x00019240 ldr r1, [pc, 0x54]                        |         r1 = *(0x19298);
    0x00019244 ldr r2, [pc, r3]                          |         r2 = *(0x0001924c);
    0x00019248 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001924c ldr r0, [r5]                              |         r0 = *(r5);
    0x00019250 bl 0x34c9c                                |         fprintf (r0, r1, r2, r3)
    0x00019254 b 0x191ac                                 |         
                                                         |     } while (1);
                                                         | label_3:
    0x00019258 mov r0, 0xa                               |     r0 = 0xa;
    0x0001925c bl 0x3d7f0                                |     fputc_unlocked ();
    0x00019260 b 0x1922c                                 |     goto label_0;
                                                         | label_2:
    0x00019264 mov r0, 0xa                               |     r0 = 0xa;
    0x00019268 bl 0x3c374                                |     fputc ();
    0x0001926c b 0x1922c                                 |     goto label_0;
                                                         | label_4:
    0x00019270 add sp, sp, 0xc                           |     
    0x00019274 pop {r4, r5, r6, r7, lr}                  |     
    0x00019278 add sp, sp, 8                             |     
    0x0001927c bx lr                                     |     return;
                                                         | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x192a0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.error_at_line ()                                 | void error_at_line (char * format, int32_t arg_2ch, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000192a0 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x000192a4 ldr r4, [pc, 0x180]                               |     r4 = *(0x19428);
    0x000192a8 mov r8, r3                                        |     r8 = r3;
    0x000192ac ldr r3, [pc, 0x17c]                               |     r3 = *(0x1942c);
    0x000192b0 add r4, pc, r4                                    |     r4 = pc + r4;
    0x000192b4 ldr r3, [r4, r3]                                  |     
    0x000192b8 mov r7, r0                                        |     r7 = r0;
    0x000192bc ldr r3, [r3]                                      |     r3 = *(0x19428);
    0x000192c0 mov sb, r1                                        |     sb = r1;
    0x000192c4 cmp r3, 0                                         |     
    0x000192c8 mov r6, r2                                        |     r6 = r2;
                                                                 |     if (r3 != 0) {
    0x000192cc beq 0x19310                                       |         
    0x000192d0 ldr r3, [pc, 0x15c]                               |         r3 = *(0x19430);
    0x000192d4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000192d8 ldr r2, [r3]                                      |         r2 = *(0x19430);
    0x000192dc cmp r2, r8                                        |         
                                                                 |         if (r2 == r8) {
    0x000192e0 bne 0x19300                                       |             
    0x000192e4 ldr r0, [r3, 4]                                   |             r0 = *((r3 + 4));
    0x000192e8 cmp r0, r6                                        |             
                                                                 |             if (r0 == r6) {
    0x000192ec beq 0x19424                                       |                 goto label_1;
                                                                 |             }
    0x000192f0 mov r1, r6                                        |             r1 = r6;
    0x000192f4 bl 0x3e430                                        |             r0 = strcoll ();
    0x000192f8 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000192fc beq 0x19424                                       |                 goto label_1;
                                                                 |             }
                                                                 |         }
    0x00019300 ldr r3, [pc, 0x130]                               |         r3 = *(0x19434);
    0x00019304 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00019308 str r6, [r3, 4]                                   |         *((r3 + 4)) = r6;
    0x0001930c str r8, [r3]                                      |         *(r3) = r8;
                                                                 |     }
    0x00019310 ldr r3, [pc, 0x124]                               |     r3 = *(0x19438);
    0x00019314 ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x00019318 ldr r0, [r3]                                      |     r0 = *(0x19438);
    0x0001931c bl 0x3bec8                                        |     fflush ();
    0x00019320 ldr r3, [pc, 0x118]                               |     
    0x00019324 ldr r2, [pc, 0x118]                               |     r2 = *(0x19440);
    0x00019328 ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x0001932c ldr r5, [r4, r2]                                  |     r5 = *((r4 + r2));
    0x00019330 ldr r3, [r3]                                      |     r3 = *(0x1943c);
    0x00019334 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00019338 beq 0x193f0                                       |         goto label_2;
                                                                 |     }
    0x0001933c blx r3                                            |     uint32_t (*r3)() ();
                                                                 |     do {
    0x00019340 cmp r6, 0                                         |         
                                                                 |         if (r6 != 0) {
    0x00019344 beq 0x19360                                       |             
    0x00019348 ldr r1, [pc, 0xf8]                                |             r1 = *(0x19444);
    0x0001934c mov r3, r8                                        |             r3 = r8;
    0x00019350 mov r2, r6                                        |             r2 = r6;
    0x00019354 add r1, pc, r1                                    |             r1 = pc + r1;
    0x00019358 ldr r0, [r5]                                      |             r0 = *(r5);
    0x0001935c bl 0x34c9c                                        |             fprintf (r0, r1, r2, r3)
                                                                 |         }
    0x00019360 add r2, sp, 0x2c                                  |         r2 += arg_2ch;
    0x00019364 ldr r1, [sp, 0x28]                                |         r1 = *(format);
    0x00019368 ldr r0, [r5]                                      |         r0 = *(r5);
    0x0001936c str r2, [sp, 4]                                   |         var_4h = r2;
    0x00019370 bl 0x37bd0                                        |         vfprintf ()
    0x00019374 ldr r3, [pc, 0xd0]                                |         r3 = *(0x19448);
    0x00019378 cmp sb, 0                                         |         
    0x0001937c ldr r2, [r4, r3]                                  |         r2 = *((r4 + r3));
    0x00019380 ldr r3, [r2]                                      |         r3 = *(r2);
    0x00019384 add r3, r3, 1                                     |         r3++;
    0x00019388 str r3, [r2]                                      |         *(r2) = r3;
                                                                 |         if (sb != 0) {
    0x0001938c beq 0x193b0                                       |             
    0x00019390 mov r0, sb                                        |             r0 = sb;
    0x00019394 ldr r4, [r5]                                      |             r4 = *(r5);
    0x00019398 bl 0x3f158                                        |             strerror ();
    0x0001939c ldr r1, [pc, 0xac]                                |             r1 = *(0x1944c);
    0x000193a0 add r1, pc, r1                                    |             r1 = pc + r1;
    0x000193a4 mov r2, r0                                        |             r2 = r0;
    0x000193a8 mov r0, r4                                        |             r0 = r4;
    0x000193ac bl 0x34c9c                                        |             fprintf (r0, r1, r2)
                                                                 |         }
    0x000193b0 ldr r1, [r5]                                      |         r1 = *(r5);
    0x000193b4 ldr r3, [r1, 0x34]                                |         r3 = *((r1 + 0x34));
    0x000193b8 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000193bc beq 0x19418                                       |             goto label_3;
                                                                 |         }
    0x000193c0 ldr r3, [r1, 0x10]                                |         r3 = *((r1 + 0x10));
    0x000193c4 ldr r2, [r1, 0x1c]                                |         r2 = *((r1 + 0x1c));
    0x000193c8 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x000193cc bhs 0x1940c                                       |             goto label_4;
                                                                 |         }
    0x000193d0 add r2, r3, 1                                     |         r2 = r3 + 1;
    0x000193d4 str r2, [r1, 0x10]                                |         *((r1 + 0x10)) = r2;
    0x000193d8 mov r2, 0xa                                       |         r2 = 0xa;
    0x000193dc strb r2, [r3]                                     |         *(r3) = r2;
                                                                 | label_0:
    0x000193e0 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x000193e4 beq 0x19424                                       |             goto label_1;
                                                                 |         }
    0x000193e8 mov r0, r7                                        |         r0 = r7;
    0x000193ec bl 0x4e878                                        |         exit (r0);
                                                                 | label_2:
    0x000193f0 ldr r3, [pc, 0x5c]                                |         r3 = *(0x19450);
    0x000193f4 ldr r1, [pc, 0x5c]                                |         r1 = *(0x19454);
    0x000193f8 ldr r2, [pc, r3]                                  |         r2 = *(0x00019400);
    0x000193fc add r1, pc, r1                                    |         r1 = pc + r1;
    0x00019400 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00019404 bl 0x34c9c                                        |         fprintf (r0, r1, r2, r3)
    0x00019408 b 0x19340                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x0001940c mov r0, 0xa                                       |     r0 = 0xa;
    0x00019410 bl 0x3d7f0                                        |     fputc_unlocked ();
    0x00019414 b 0x193e0                                         |     goto label_0;
                                                                 | label_3:
    0x00019418 mov r0, 0xa                                       |     r0 = 0xa;
    0x0001941c bl 0x3c374                                        |     fputc ();
    0x00019420 b 0x193e0                                         |     goto label_0;
                                                                 | label_1:
    0x00019424 add sp, sp, 0xc                                   |     
    0x00019428 pop {r4, r5, r6, r7, r8, sb, 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/lib/libuClibc-1.0.31.so @ 0x192a0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.error_at_line ()                                 | void error_at_line (char * format, int32_t arg_2ch, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000192a0 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x000192a4 ldr r4, [pc, 0x180]                               |     r4 = *(0x19428);
    0x000192a8 mov r8, r3                                        |     r8 = r3;
    0x000192ac ldr r3, [pc, 0x17c]                               |     r3 = *(0x1942c);
    0x000192b0 add r4, pc, r4                                    |     r4 = pc + r4;
    0x000192b4 ldr r3, [r4, r3]                                  |     
    0x000192b8 mov r7, r0                                        |     r7 = r0;
    0x000192bc ldr r3, [r3]                                      |     r3 = *(0x19428);
    0x000192c0 mov sb, r1                                        |     sb = r1;
    0x000192c4 cmp r3, 0                                         |     
    0x000192c8 mov r6, r2                                        |     r6 = r2;
                                                                 |     if (r3 != 0) {
    0x000192cc beq 0x19310                                       |         
    0x000192d0 ldr r3, [pc, 0x15c]                               |         r3 = *(0x19430);
    0x000192d4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000192d8 ldr r2, [r3]                                      |         r2 = *(0x19430);
    0x000192dc cmp r2, r8                                        |         
                                                                 |         if (r2 == r8) {
    0x000192e0 bne 0x19300                                       |             
    0x000192e4 ldr r0, [r3, 4]                                   |             r0 = *((r3 + 4));
    0x000192e8 cmp r0, r6                                        |             
                                                                 |             if (r0 == r6) {
    0x000192ec beq 0x19424                                       |                 goto label_1;
                                                                 |             }
    0x000192f0 mov r1, r6                                        |             r1 = r6;
    0x000192f4 bl 0x3e430                                        |             r0 = strcoll ();
    0x000192f8 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000192fc beq 0x19424                                       |                 goto label_1;
                                                                 |             }
                                                                 |         }
    0x00019300 ldr r3, [pc, 0x130]                               |         r3 = *(0x19434);
    0x00019304 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00019308 str r6, [r3, 4]                                   |         *((r3 + 4)) = r6;
    0x0001930c str r8, [r3]                                      |         *(r3) = r8;
                                                                 |     }
    0x00019310 ldr r3, [pc, 0x124]                               |     r3 = *(0x19438);
    0x00019314 ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x00019318 ldr r0, [r3]                                      |     r0 = *(0x19438);
    0x0001931c bl 0x3bec8                                        |     fflush ();
    0x00019320 ldr r3, [pc, 0x118]                               |     
    0x00019324 ldr r2, [pc, 0x118]                               |     r2 = *(0x19440);
    0x00019328 ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x0001932c ldr r5, [r4, r2]                                  |     r5 = *((r4 + r2));
    0x00019330 ldr r3, [r3]                                      |     r3 = *(0x1943c);
    0x00019334 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00019338 beq 0x193f0                                       |         goto label_2;
                                                                 |     }
    0x0001933c blx r3                                            |     uint32_t (*r3)() ();
                                                                 |     do {
    0x00019340 cmp r6, 0                                         |         
                                                                 |         if (r6 != 0) {
    0x00019344 beq 0x19360                                       |             
    0x00019348 ldr r1, [pc, 0xf8]                                |             r1 = *(0x19444);
    0x0001934c mov r3, r8                                        |             r3 = r8;
    0x00019350 mov r2, r6                                        |             r2 = r6;
    0x00019354 add r1, pc, r1                                    |             r1 = pc + r1;
    0x00019358 ldr r0, [r5]                                      |             r0 = *(r5);
    0x0001935c bl 0x34c9c                                        |             fprintf (r0, r1, r2, r3)
                                                                 |         }
    0x00019360 add r2, sp, 0x2c                                  |         r2 += arg_2ch;
    0x00019364 ldr r1, [sp, 0x28]                                |         r1 = *(format);
    0x00019368 ldr r0, [r5]                                      |         r0 = *(r5);
    0x0001936c str r2, [sp, 4]                                   |         var_4h = r2;
    0x00019370 bl 0x37bd0                                        |         vfprintf ()
    0x00019374 ldr r3, [pc, 0xd0]                                |         r3 = *(0x19448);
    0x00019378 cmp sb, 0                                         |         
    0x0001937c ldr r2, [r4, r3]                                  |         r2 = *((r4 + r3));
    0x00019380 ldr r3, [r2]                                      |         r3 = *(r2);
    0x00019384 add r3, r3, 1                                     |         r3++;
    0x00019388 str r3, [r2]                                      |         *(r2) = r3;
                                                                 |         if (sb != 0) {
    0x0001938c beq 0x193b0                                       |             
    0x00019390 mov r0, sb                                        |             r0 = sb;
    0x00019394 ldr r4, [r5]                                      |             r4 = *(r5);
    0x00019398 bl 0x3f158                                        |             strerror ();
    0x0001939c ldr r1, [pc, 0xac]                                |             r1 = *(0x1944c);
    0x000193a0 add r1, pc, r1                                    |             r1 = pc + r1;
    0x000193a4 mov r2, r0                                        |             r2 = r0;
    0x000193a8 mov r0, r4                                        |             r0 = r4;
    0x000193ac bl 0x34c9c                                        |             fprintf (r0, r1, r2)
                                                                 |         }
    0x000193b0 ldr r1, [r5]                                      |         r1 = *(r5);
    0x000193b4 ldr r3, [r1, 0x34]                                |         r3 = *((r1 + 0x34));
    0x000193b8 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000193bc beq 0x19418                                       |             goto label_3;
                                                                 |         }
    0x000193c0 ldr r3, [r1, 0x10]                                |         r3 = *((r1 + 0x10));
    0x000193c4 ldr r2, [r1, 0x1c]                                |         r2 = *((r1 + 0x1c));
    0x000193c8 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x000193cc bhs 0x1940c                                       |             goto label_4;
                                                                 |         }
    0x000193d0 add r2, r3, 1                                     |         r2 = r3 + 1;
    0x000193d4 str r2, [r1, 0x10]                                |         *((r1 + 0x10)) = r2;
    0x000193d8 mov r2, 0xa                                       |         r2 = 0xa;
    0x000193dc strb r2, [r3]                                     |         *(r3) = r2;
                                                                 | label_0:
    0x000193e0 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x000193e4 beq 0x19424                                       |             goto label_1;
                                                                 |         }
    0x000193e8 mov r0, r7                                        |         r0 = r7;
    0x000193ec bl 0x4e878                                        |         exit (r0);
                                                                 | label_2:
    0x000193f0 ldr r3, [pc, 0x5c]                                |         r3 = *(0x19450);
    0x000193f4 ldr r1, [pc, 0x5c]                                |         r1 = *(0x19454);
    0x000193f8 ldr r2, [pc, r3]                                  |         r2 = *(0x00019400);
    0x000193fc add r1, pc, r1                                    |         r1 = pc + r1;
    0x00019400 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00019404 bl 0x34c9c                                        |         fprintf (r0, r1, r2, r3)
    0x00019408 b 0x19340                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x0001940c mov r0, 0xa                                       |     r0 = 0xa;
    0x00019410 bl 0x3d7f0                                        |     fputc_unlocked ();
    0x00019414 b 0x193e0                                         |     goto label_0;
                                                                 | label_3:
    0x00019418 mov r0, 0xa                                       |     r0 = 0xa;
    0x0001941c bl 0x3c374                                        |     fputc ();
    0x00019420 b 0x193e0                                         |     goto label_0;
                                                                 | label_1:
    0x00019424 add sp, sp, 0xc                                   |     
    0x00019428 pop {r4, r5, r6, r7, r8, sb, 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/lib/libuClibc-1.0.31.so @ 0x41b08 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.herror ()                        | void herror (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
    0x00041b08 push {r0, r1, r4, lr}             |     
    0x00041b0c ldr r4, [pc, 0x8c]                |     r4 = *(0x41b9c);
    0x00041b10 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x00041b14 add r4, pc, r4                    |     r4 = pc + r4;
                                                 |     if (r2 == r0) {
    0x00041b18 beq 0x41b78                       |         goto label_2;
                                                 |     }
    0x00041b1c ldrb r3, [r2]                     |     r3 = *(r2);
    0x00041b20 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x00041b24 beq 0x41b88                       |         goto label_3;
                                                 |     }
    0x00041b28 ldr r3, [pc, 0x74]                |     r3 = *(0x41ba0);
    0x00041b2c add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     do {
    0x00041b30 ldr r1, [pc, 0x70]                |         r1 = *(0x41ba4);
    0x00041b34 bl 0x11934                        |         fcn_00011934 ();
    0x00041b38 ldr r1, [pc, r1]                  |         r1 = *(0x00041b40);
    0x00041b3c ldr r1, [r0, r1]                  |         r1 = *((r0 + r1));
    0x00041b40 cmp r1, 4                         |         
                                                 |         if (r1 > 4) {
    0x00041b44 bhi 0x41b94                       |             goto label_4;
                                                 |         }
    0x00041b48 ldr r0, [pc, 0x5c]                |         r0 = *(0x41ba8);
    0x00041b4c add r0, pc, r0                    |         r0 = pc + r0;
    0x00041b50 ldr r1, [r0, r1, lsl 2]           |         r1 = *(0x41ba8);
                                                 | label_1:
    0x00041b54 ldr r0, [pc, 0x54]                |         
    0x00041b58 ldr r0, [r4, r0]                  |         r0 = *((r4 + r0));
    0x00041b5c str r1, [sp]                      |         *(sp) = r1;
    0x00041b60 ldr r1, [pc, 0x4c]                |         r1 = *(0x41bb0);
    0x00041b64 ldr r0, [r0]                      |         r0 = *(0x41bac);
    0x00041b68 add r1, pc, r1                    |         r1 = pc + r1;
    0x00041b6c bl 0x34c9c                        |         fprintf (r0, r1)
    0x00041b70 add sp, sp, 8                     |         
    0x00041b74 pop {r4, pc}                      |         
                                                 | label_2:
    0x00041b78 ldr r3, [pc, 0x38]                |         r3 = *(0x41bb4);
    0x00041b7c add r3, pc, r3                    |         r3 = pc + r3;
                                                 | label_0:
    0x00041b80 add r3, r3, 2                     |         r3 += 2;
    0x00041b84 b 0x41b30                         |         
                                                 |     } while (1);
                                                 | label_3:
    0x00041b88 ldr r3, [pc, 0x2c]                |     r3 = *(0x41bb8);
    0x00041b8c add r3, pc, r3                    |     r3 = pc + r3;
    0x00041b90 b 0x41b80                         |     goto label_0;
                                                 | label_4:
    0x00041b94 ldr r1, [pc, 0x24]                |     r1 = "v7";
    0x00041b98 add r1, pc, r1                    |     r1 = pc + r1;
    0x00041b9c b 0x41b54                         |     goto label_1;
                                                 | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x4abd0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.malloc_stats ()          | void malloc_stats () {
                                         |     int32_t var_8h;
                                         |     int32_t var_ch;
                                         |     int32_t var_10h;
                                         |     int32_t var_14h;
                                         |     int32_t var_18h;
                                         |     char * format;
                                         |     int32_t var_2ch;
                                         |     int32_t var_30h;
                                         |     int32_t var_34h;
                                         |     int32_t var_3ch;
                                         |     int32_t var_40h;
                                         |     int32_t var_44h;
                                         |     int32_t var_48h;
    0x0004abd0 push {r4, lr}             |     
    0x0004abd4 ldr r4, [pc, 0x68]        |     r4 = *(0x4ac40);
    0x0004abd8 sub sp, sp, 0x48          |     
    0x0004abdc add r0, sp, 0x20          |     r0 += format;
    0x0004abe0 bl 0x4aa48                |     mallinfo ();
    0x0004abe4 ldr ip, [sp, 0x44]        |     ip = var_44h;
    0x0004abe8 ldr r0, [pc, 0x58]        |     r0 = *(0x4ac44);
    0x0004abec add r4, pc, r4            |     r4 = pc + r4;
    0x0004abf0 ldr r0, [r4, r0]          |     
    0x0004abf4 str ip, [sp, 0x18]        |     var_18h = ip;
    0x0004abf8 ldr ip, [sp, 0x40]        |     ip = var_40h;
    0x0004abfc ldr r1, [sp, 0x20]        |     r1 = format;
    0x0004ac00 str ip, [sp, 0x14]        |     var_14h = ip;
    0x0004ac04 ldr ip, [sp, 0x34]        |     ip = var_34h;
    0x0004ac08 ldr r2, [sp, 0x30]        |     r2 = var_30h;
    0x0004ac0c ldr r3, [sp, 0x3c]        |     r3 = var_3ch;
    0x0004ac10 str ip, [sp, 0x10]        |     var_10h = ip;
    0x0004ac14 ldr ip, [sp, 0x2c]        |     ip = var_2ch;
    0x0004ac18 str r3, [sp, 0xc]         |     var_ch = r3;
    0x0004ac1c str r2, [sp, 8]           |     var_8h = r2;
    0x0004ac20 stm sp, {r1, ip}          |     *(sp) = r1;
                                         |     *((sp + 4)) = ip;
    0x0004ac24 ldr r0, [r0]              |     r0 = *(0x4ac40);
    0x0004ac28 add r3, r2, r3            |     r3 = r2 + r3;
    0x0004ac2c add r2, r1, r2            |     r2 = r1 + r2;
    0x0004ac30 ldr r1, [pc, 0x14]        |     r1 = *(0x4ac48);
    0x0004ac34 add r1, pc, r1            |     r1 = pc + r1;
    0x0004ac38 bl 0x34c9c                |     fprintf (r0, r1, r2, r3, r4)
    0x0004ac3c add sp, sp, 0x48          |     
    0x0004ac40 pop {r4, 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/lib/libuClibc-1.0.31.so @ 0x344b0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.perror ()                | void perror (const char * s) {
                                         |     r0 = s;
    0x000344b0 ldr r1, [pc, 0x54]        |     r1 = *(0x34508);
    0x000344b4 subs r2, r0, 0            |     r2 = r0 - 0;
    0x000344b8 add r1, pc, r1            |     r1 = pc + r1;
                                         |     if (r2 == r0) {
    0x000344bc beq 0x344ec               |         goto label_1;
                                         |     }
    0x000344c0 ldrb r3, [r2]             |     r3 = *(r2);
    0x000344c4 cmp r3, 0                 |     
                                         |     if (r3 == 0) {
    0x000344c8 beq 0x34500               |         goto label_2;
                                         |     }
    0x000344cc ldr r3, [pc, 0x3c]        |     r3 = *(0x3450c);
    0x000344d0 add r3, pc, r3            |     r3 = pc + r3;
                                         |     do {
    0x000344d4 ldr r0, [pc, 0x38]        |         
    0x000344d8 ldr r0, [r1, r0]          |         r0 = *((r1 + r0));
    0x000344dc ldr r1, [pc, 0x34]        |         r1 = *(0x34514);
    0x000344e0 ldr r0, [r0]              |         r0 = *(0x34510);
    0x000344e4 add r1, pc, r1            |         r1 = pc + r1;
    0x000344e8 b 0x34c9c                 |         void (*0x34c9c)() ();
                                         | label_1:
    0x000344ec ldr r3, [pc, 0x28]        |         r3 = *(0x34518);
    0x000344f0 add r3, pc, r3            |         r3 = pc + r3;
                                         | label_0:
    0x000344f4 add r3, r3, 2             |         r3 += 2;
    0x000344f8 mov r2, r3                |         r2 = r3;
    0x000344fc b 0x344d4                 |         
                                         |     } while (1);
                                         | label_2:
    0x00034500 ldr r3, [pc, 0x18]        |     r3 = *(0x3451c);
    0x00034504 add r3, pc, r3            |     r3 = pc + r3;
    0x00034508 b 0x344f4                 |     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/lib/libuClibc-1.0.31.so @ 0x3f56c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.psignal ()                           | void psignal (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0003f56c ldr r3, [pc, 0x74]                    |     r3 = *(0x3f5e4);
    0x0003f570 push {r0, r1, r4, r5, r6, lr}         |     
    0x0003f574 subs r5, r1, 0                        |     r5 = r1 - 0;
    0x0003f578 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r5 == r1) {
    0x0003f57c beq 0x3f5c8                           |         goto label_1;
                                                     |     }
    0x0003f580 ldrb r2, [r5]                         |     r2 = *(r5);
    0x0003f584 cmp r2, 0                             |     
                                                     |     if (r2 == 0) {
    0x0003f588 beq 0x3f5dc                           |         goto label_2;
                                                     |     }
    0x0003f58c ldr r4, [pc, 0x58]                    |     r4 = *(0x3f5e8);
    0x0003f590 add r4, pc, r4                        |     r4 = pc + r4;
                                                     |     do {
    0x0003f594 ldr r2, [pc, 0x54]                    |         r2 = *(0x3f5ec);
    0x0003f598 ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x0003f59c ldr r6, [r3]                          |         r6 = *(r3);
    0x0003f5a0 bl 0x3f348                            |         strsignal ();
    0x0003f5a4 ldr r1, [pc, 0x48]                    |         r1 = *(0x3f5f0);
    0x0003f5a8 mov r3, r4                            |         r3 = r4;
    0x0003f5ac mov r2, r5                            |         r2 = r5;
    0x0003f5b0 add r1, pc, r1                        |         r1 = pc + r1;
    0x0003f5b4 str r0, [sp]                          |         *(sp) = r0;
    0x0003f5b8 mov r0, r6                            |         r0 = r6;
    0x0003f5bc bl 0x34c9c                            |         fprintf (r0, r1, r2, r3)
    0x0003f5c0 add sp, sp, 8                         |         
    0x0003f5c4 pop {r4, r5, r6, pc}                  |         
                                                     | label_1:
    0x0003f5c8 ldr r4, [pc, 0x28]                    |         r4 = *(0x3f5f4);
    0x0003f5cc add r4, pc, r4                        |         r4 = pc + r4;
                                                     | label_0:
    0x0003f5d0 add r4, r4, 2                         |         r4 += 2;
    0x0003f5d4 mov r5, r4                            |         r5 = r4;
    0x0003f5d8 b 0x3f594                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0003f5dc ldr r4, [pc, 0x18]                    |     r4 = *(0x3f5f8);
    0x0003f5e0 add r4, pc, r4                        |     r4 = pc + r4;
    0x0003f5e4 b 0x3f5d0                             |     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/lib/libuClibc-1.0.31.so @ 0x31f80 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.putgrent ()                                      | void putgrent (uint32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00031f80 cmp r1, 0                                         |     
    0x00031f84 cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
    0x00031f88 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
                                                                 |     if (r1 == 0) {
    0x00031f8c bne 0x31fb4                                       |         
    0x00031f90 ldr r3, [pc, 0x194]                               |         r3 = *(0x32128);
    0x00031f94 bl 0x11934                                        |         fcn_00011934 ();
    0x00031f98 mov r2, 0x16                                      |         r2 = 0x16;
    0x00031f9c ldr r3, [pc, r3]                                  |         r3 = *(0x00031fa4);
    0x00031fa0 mvn r6, 0                                         |         r6 = ~0;
    0x00031fa4 str r2, [r0, r3]                                  |         *((r0 + r3)) = r2;
                                                                 | label_0:
    0x00031fa8 mov r0, r6                                        |         r0 = r6;
    0x00031fac add sp, sp, 0xc                                   |         
    0x00031fb0 pop {r4, r5, r6, r7, r8, sb, pc}                  |         
                                                                 |     }
    0x00031fb4 ldr r7, [r1, 0x34]                                |     r7 = *((r1 + 0x34));
    0x00031fb8 mov r5, r1                                        |     r5 = r1;
    0x00031fbc cmp r7, 0                                         |     
    0x00031fc0 mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r7 != 0) {
    0x00031fc4 bne 0x32030                                       |         goto label_4;
                                                                 |     }
    0x00031fc8 ldr r3, [r1, 0x40]                                |     r3 = *((r1 + 0x40));
    0x00031fcc bl 0x11934                                        |     r0 = fcn_00011934 ();
    0x00031fd0 sub r8, r0, 0x490                                 |     r8 = r0 - 0x490;
    0x00031fd4 cmp r3, r8                                        |     
                                                                 |     if (r3 == r8) {
    0x00031fd8 beq 0x32024                                       |         goto label_5;
                                                                 |     }
    0x00031fdc add sb, r1, 0x38                                  |     sb = r1 + 0x38;
    0x00031fe0 mov r2, sb                                        |     r2 = sb;
    0x00031fe4 mov r1, 1                                         |     r1 = 1;
    0x00031fe8 mov r4, r7                                        |     r4 = r7;
                                                                 |     do {
    0x00031fec ldr r3, [r2]                                      |         r3 = *(r2);
    0x00031ff0 cmp r3, r4                                        |         
                                                                 |         if (r3 != r4) {
    0x00031ff4 bne 0x32010                                       |             goto label_6;
                                                                 |         }
    0x00031ff8 mov r0, r4                                        |         r0 = r4;
    0x00031ffc mvn r3, 0xf000                                    |         r3 = ~0xf000;
    0x00032000 mov lr, pc                                        |         lr = pc;
    0x00032004 sub pc, r3, 0x3f                                  |         pc = r3 - 0x3f;
    0x00032008 blo 0x31fec                                       |         
                                                                 |     } while (r3 <= r4);
    0x0003200c mov r3, r4                                        |     r3 = r4;
                                                                 | label_6:
    0x00032010 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00032014 beq 0x32020                                       |         
    0x00032018 mov r0, sb                                        |         r0 = sb;
    0x0003201c bl 0x657d8                                        |         fcn_000657d8 (r0);
                                                                 |     }
    0x00032020 str r8, [r5, 0x40]                                |     *((r5 + 0x40)) = r8;
                                                                 | label_5:
    0x00032024 ldr r3, [r5, 0x3c]                                |     r3 = *((r5 + 0x3c));
    0x00032028 add r3, r3, 1                                     |     r3++;
    0x0003202c str r3, [r5, 0x3c]                                |     *((r5 + 0x3c)) = r3;
                                                                 | label_4:
    0x00032030 ldr r3, [r6, 8]                                   |     r3 = *((r6 + 8));
    0x00032034 ldr r1, [pc, 0xf4]                                |     r1 = *(0x3212c);
    0x00032038 str r3, [sp]                                      |     *(sp) = r3;
    0x0003203c add r1, pc, r1                                    |     r1 = pc + r1;
    0x00032040 ldm r6, {r2, r3}                                  |     r2 = *(r6);
                                                                 |     r3 = *((r6 + 4));
    0x00032044 mov r0, r5                                        |     r0 = r5;
    0x00032048 bl 0x34c9c                                        |     r0 = fprintf (r0, r1, r2, r3, r4, r5, r6)
    0x0003204c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00032050 blt 0x32124                                       |         goto label_7;
                                                                 |     }
    0x00032054 ldr r1, [pc, 0xd8]                                |     r1 = *(0x32130);
    0x00032058 ldr r4, [r6, 0xc]                                 |     r4 = *((r6 + 0xc));
    0x0003205c ldr r6, [pc, 0xd4]                                |     r6 = *(0x32134);
    0x00032060 add r1, pc, r1                                    |     r1 = pc + r1;
    0x00032064 sub r4, r4, 4                                     |     r4 -= 4;
    0x00032068 add r1, r1, 1                                     |     r1++;
    0x0003206c add r6, pc, r6                                    |     r6 = pc + r6;
                                                                 | label_2:
    0x00032070 ldr r2, [r4, 4]!                                  |     r2 = *((r4 += 4));
    0x00032074 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00032078 bne 0x32110                                       |         goto label_8;
                                                                 |     }
    0x0003207c mov r1, r5                                        |     r1 = r5;
    0x00032080 mov r0, 0xa                                       |     r0 = 0xa;
    0x00032084 bl 0x3d7f0                                        |     r0 = fputc_unlocked ();
    0x00032088 asr r6, r0, 0x1f                                  |     r6 = r0 >> 0x1f;
                                                                 | label_3:
    0x0003208c cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00032090 bne 0x31fa8                                       |         goto label_0;
                                                                 |     }
    0x00032094 ldr r3, [r5, 0x3c]                                |     r3 = *((r5 + 0x3c));
    0x00032098 sub r3, r3, 1                                     |     r3--;
    0x0003209c cmp r3, 0                                         |     
    0x000320a0 str r3, [r5, 0x3c]                                |     *((r5 + 0x3c)) = r3;
                                                                 |     if (r3 != 0) {
    0x000320a4 bne 0x31fa8                                       |         goto label_0;
                                                                 |     }
    0x000320a8 add r8, r5, 0x38                                  |     r8 = r5 + 0x38;
    0x000320ac str r7, [r5, 0x40]                                |     *((r5 + 0x40)) = r7;
                                                                 | label_1:
    0x000320b0 ldr r7, [r5, 0x38]                                |     r7 = *((r5 + 0x38));
    0x000320b4 mov r1, 0                                         |     r1 = 0;
    0x000320b8 mov r2, r8                                        |     r2 = r8;
    0x000320bc mov r4, r7                                        |     r4 = r7;
                                                                 |     do {
    0x000320c0 ldr r3, [r2]                                      |         r3 = *(r2);
    0x000320c4 cmp r3, r4                                        |         
                                                                 |         if (r3 != r4) {
    0x000320c8 bne 0x320e4                                       |             goto label_9;
                                                                 |         }
    0x000320cc mov r0, r4                                        |         r0 = r4;
    0x000320d0 mvn r3, 0xf000                                    |         r3 = ~0xf000;
    0x000320d4 mov lr, pc                                        |         lr = pc;
    0x000320d8 sub pc, r3, 0x3f                                  |         pc = r3 - 0x3f;
    0x000320dc blo 0x320c0                                       |         
                                                                 |     } while (r3 <= r4);
    0x000320e0 mov r3, r4                                        |     r3 = r4;
                                                                 | label_9:
    0x000320e4 cmp r7, r3                                        |     
                                                                 |     if (r7 != r3) {
    0x000320e8 bne 0x320b0                                       |         goto label_1;
                                                                 |     }
    0x000320ec cmp r7, 1                                         |     
                                                                 |     if (r7 <= 1) {
    0x000320f0 ble 0x31fa8                                       |         goto label_0;
                                                                 |     }
    0x000320f4 mov r0, r8                                        |     r0 = r8;
    0x000320f8 mov r1, 0x81                                      |     r1 = 0x81;
    0x000320fc mov r2, 1                                         |     r2 = 1;
    0x00032100 mov r3, 0                                         |     r3 = 0;
    0x00032104 mov r7, 0xf0                                      |     r7 = 0xf0;
    0x00032108 svc 0                                             |     __asm ("svc 0");
    0x0003210c b 0x31fa8                                         |     goto label_0;
                                                                 | label_8:
    0x00032110 mov r0, r5                                        |     r0 = r5;
    0x00032114 bl 0x34c9c                                        |     fprintf (r0, r1)
    0x00032118 mov r1, r6                                        |     r1 = r6;
    0x0003211c cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00032120 bge 0x32070                                       |         goto label_2;
                                                                 |     }
                                                                 | label_7:
    0x00032124 mvn r6, 0                                         |     r6 = ~0;
    0x00032128 b 0x3208c                                         |     goto label_3;
                                                                 | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x32328 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.putpwent ()                              | void putpwent (uint32_t arg1, uint32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_4h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_1ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00032328 cmp r1, 0                                 |     
    0x0003232c cmpne r0, 0                               |     __asm ("cmpne r0, 0");
    0x00032330 push {r0, r1, r2, r3, r4, r5, r6, lr}     |     
                                                         |     if (r1 != 0) {
    0x00032334 bne 0x32358                               |         goto label_0;
                                                         |     }
    0x00032338 ldr r3, [pc, 0x60]                        |     r3 = *(0x3239c);
    0x0003233c bl 0x11934                                |     fcn_00011934 ();
    0x00032340 mov r2, 0x16                              |     r2 = 0x16;
    0x00032344 ldr r3, [pc, r3]                          |     r3 = *(0x0003234c);
    0x00032348 str r2, [r0, r3]                          |     *((r0 + r3)) = r2;
    0x0003234c mvn r0, 0                                 |     r0 = ~0;
                                                         |     do {
    0x00032350 add sp, sp, 0x1c                          |         
    0x00032354 pop {pc}                                  |         
                                                         | label_0:
    0x00032358 mov r2, r0                                |         r2 = r0;
    0x0003235c ldr r3, [r2, 0x18]                        |         r3 = *((r2 + 0x18));
    0x00032360 mov r0, r1                                |         r0 = r1;
    0x00032364 str r3, [sp, 0x10]                        |         var_10h = r3;
    0x00032368 ldr r3, [r2, 0x14]                        |         r3 = *((r2 + 0x14));
    0x0003236c ldr r1, [pc, 0x30]                        |         r1 = "_m";
    0x00032370 str r3, [sp, 0xc]                         |         var_ch = r3;
    0x00032374 ldr r3, [r2, 0x10]                        |         r3 = *((r2 + 0x10));
    0x00032378 add r1, pc, r1                            |         r1 = pc + r1;
    0x0003237c str r3, [sp, 8]                           |         var_8h = r3;
    0x00032380 ldr r3, [r2, 0xc]                         |         r3 = *((r2 + 0xc));
    0x00032384 str r3, [sp, 4]                           |         var_4h = r3;
    0x00032388 ldr r3, [r2, 8]                           |         r3 = *((r2 + 8));
    0x0003238c str r3, [sp]                              |         *(sp) = r3;
    0x00032390 ldm r2, {r2, r3}                          |         r2 = *(r2);
                                                         |         r3 = *((r2 + 4));
    0x00032394 bl 0x34c9c                                |         r0 = fprintf (r0, "_m", r2, r3)
    0x00032398 asr r0, r0, 0x1f                          |         r0 >>= 0x1f;
    0x0003239c b 0x32350                                 |         
                                                         |     } while (1);
                                                         | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x32fcc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.putspent ()                              | void putspent (int32_t arg1, int32_t arg2) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00032fcc push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00032fd0 ldr r7, [r1, 0x34]                        |     r7 = *((r1 + 0x34));
    0x00032fd4 mov r6, r0                                |     r6 = r0;
    0x00032fd8 cmp r7, 0                                 |     
    0x00032fdc mov r5, r1                                |     r5 = r1;
                                                         |     if (r7 != 0) {
    0x00032fe0 bne 0x3304c                               |         goto label_4;
                                                         |     }
    0x00032fe4 ldr r3, [r1, 0x40]                        |     r3 = *((r1 + 0x40));
    0x00032fe8 bl 0x11934                                |     r0 = fcn_00011934 ();
    0x00032fec sub r8, r0, 0x490                         |     r8 = r0 - 0x490;
    0x00032ff0 cmp r3, r8                                |     
                                                         |     if (r3 == r8) {
    0x00032ff4 beq 0x33040                               |         goto label_5;
                                                         |     }
    0x00032ff8 add sb, r1, 0x38                          |     sb = r1 + 0x38;
    0x00032ffc mov r2, sb                                |     r2 = sb;
    0x00033000 mov r1, 1                                 |     r1 = 1;
    0x00033004 mov r4, r7                                |     r4 = r7;
                                                         |     do {
    0x00033008 ldr r3, [r2]                              |         r3 = *(r2);
    0x0003300c cmp r3, r4                                |         
                                                         |         if (r3 != r4) {
    0x00033010 bne 0x3302c                               |             goto label_6;
                                                         |         }
    0x00033014 mov r0, r4                                |         r0 = r4;
    0x00033018 mvn r3, 0xf000                            |         r3 = ~0xf000;
    0x0003301c mov lr, pc                                |         lr = pc;
    0x00033020 sub pc, r3, 0x3f                          |         pc = r3 - 0x3f;
    0x00033024 blo 0x33008                               |         
                                                         |     } while (r3 <= r4);
    0x00033028 mov r3, r4                                |     r3 = r4;
                                                         | label_6:
    0x0003302c cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00033030 beq 0x3303c                               |         
    0x00033034 mov r0, sb                                |         r0 = sb;
    0x00033038 bl 0x657d8                                |         fcn_000657d8 (r0);
                                                         |     }
    0x0003303c str r8, [r5, 0x40]                        |     *((r5 + 0x40)) = r8;
                                                         | label_5:
    0x00033040 ldr r3, [r5, 0x3c]                        |     r3 = *((r5 + 0x3c));
    0x00033044 add r3, r3, 1                             |     r3++;
    0x00033048 str r3, [r5, 0x3c]                        |     *((r5 + 0x3c)) = r3;
                                                         | label_4:
    0x0003304c ldm r6, {r2, r3}                          |     r2 = *(r6);
                                                         |     r3 = *((r6 + 4));
    0x00033050 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00033054 ldreq r3, [pc, 0x138]                     |         r3 = *((pc + 0x138));
                                                         |     }
                                                         |     if (r3 != 0) {
    0x00033058 addeq r3, pc, r3                          |         r3 = pc + r3;
                                                         |     }
    0x0003305c ldr r1, [pc, 0x134]                       |     r1 = *(0x33194);
    0x00033060 mov r0, r5                                |     r0 = r5;
    0x00033064 add r1, pc, r1                            |     r1 = pc + r1;
    0x00033068 bl 0x34c9c                                |     r0 = fprintf (r0, r1, r2, r3, r4, r5, r6)
    0x0003306c cmp r0, 0                                 |     
                                                         |     if (r0 >= 0) {
    0x00033070 bge 0x33100                               |         goto label_7;
                                                         |     }
                                                         | label_1:
    0x00033074 mvn r6, 0                                 |     r6 = ~0;
                                                         | label_3:
    0x00033078 cmp r7, 0                                 |     
                                                         |     if (r7 != 0) {
    0x0003307c bne 0x330f8                               |         goto label_8;
                                                         |     }
    0x00033080 ldr r3, [r5, 0x3c]                        |     r3 = *((r5 + 0x3c));
    0x00033084 sub r3, r3, 1                             |     r3--;
    0x00033088 cmp r3, 0                                 |     
    0x0003308c str r3, [r5, 0x3c]                        |     *((r5 + 0x3c)) = r3;
                                                         |     if (r3 != 0) {
    0x00033090 bne 0x330f8                               |         goto label_8;
                                                         |     }
    0x00033094 add r8, r5, 0x38                          |     r8 = r5 + 0x38;
    0x00033098 str r7, [r5, 0x40]                        |     *((r5 + 0x40)) = r7;
                                                         | label_0:
    0x0003309c ldr r7, [r5, 0x38]                        |     r7 = *((r5 + 0x38));
    0x000330a0 mov r1, 0                                 |     r1 = 0;
    0x000330a4 mov r2, r8                                |     r2 = r8;
    0x000330a8 mov r4, r7                                |     r4 = r7;
                                                         |     do {
    0x000330ac ldr r3, [r2]                              |         r3 = *(r2);
    0x000330b0 cmp r3, r4                                |         
                                                         |         if (r3 != r4) {
    0x000330b4 bne 0x330d0                               |             goto label_9;
                                                         |         }
    0x000330b8 mov r0, r4                                |         r0 = r4;
    0x000330bc mvn r3, 0xf000                            |         r3 = ~0xf000;
    0x000330c0 mov lr, pc                                |         lr = pc;
    0x000330c4 sub pc, r3, 0x3f                          |         pc = r3 - 0x3f;
    0x000330c8 blo 0x330ac                               |         
                                                         |     } while (r3 <= r4);
    0x000330cc mov r3, r4                                |     r3 = r4;
                                                         | label_9:
    0x000330d0 cmp r7, r3                                |     
                                                         |     if (r7 != r3) {
    0x000330d4 bne 0x3309c                               |         goto label_0;
                                                         |     }
    0x000330d8 cmp r7, 1                                 |     
                                                         |     if (r7 > 1) {
    0x000330dc ble 0x330f8                               |         
    0x000330e0 mov r0, r8                                |         r0 = r8;
    0x000330e4 mov r1, 0x81                              |         r1 = 0x81;
    0x000330e8 mov r2, 1                                 |         r2 = 1;
    0x000330ec mov r3, 0                                 |         r3 = 0;
    0x000330f0 mov r7, 0xf0                              |         r7 = 0xf0;
    0x000330f4 svc 0                                     |         __asm ("svc 0");
                                                         |     }
                                                         | label_8:
    0x000330f8 mov r0, r6                                |     r0 = r6;
    0x000330fc pop {r4, r5, r6, r7, r8, sb, sl, pc}      |     
                                                         | label_7:
    0x00033100 ldr r8, [pc, 0x94]                        |     r8 = *(0x33198);
    0x00033104 ldr sb, [pc, 0x94]                        |     sb = *(0x3319c);
    0x00033108 add r8, pc, r8                            |     r8 = pc + r8;
    0x0003310c mov r4, 0                                 |     r4 = 0;
    0x00033110 add sb, pc, sb                            |     sb = pc + sb;
    0x00033114 add r8, r8, 3                             |     r8 += 3;
                                                         | label_2:
    0x00033118 ldrb r3, [r4, sb]                         |     r3 = *((r4 + sb));
    0x0003311c ldr r2, [r6, r3]                          |     r2 = *((r6 + r3));
    0x00033120 cmn r2, 1                                 |     
                                                         |     if (r2 != 1) {
    0x00033124 moveq r1, r8                              |         r1 = r8;
                                                         |     }
                                                         |     if (r2 == 1) {
    0x00033128 ldrne r1, [pc, 0x74]                      |         r1 = *((pc + 0x74));
                                                         |     }
                                                         |     if (r2 == 1) {
    0x0003312c addne r1, pc, r1                          |         r1 = pc + r1;
                                                         |     }
    0x00033130 mov r0, r5                                |     r0 = r5;
    0x00033134 bl 0x34c9c                                |     r0 = fprintf (r0, r1, r2, r3, r4)
    0x00033138 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x0003313c blt 0x33074                               |         goto label_1;
                                                         |     }
    0x00033140 add r4, r4, 1                             |     r4++;
    0x00033144 cmp r4, 6                                 |     
                                                         |     if (r4 != 6) {
    0x00033148 bne 0x33118                               |         goto label_2;
                                                         |     }
    0x0003314c ldr r2, [r6, 0x20]                        |     r2 = *((r6 + 0x20));
    0x00033150 cmn r2, 1                                 |     
    0x00033154 bne 0x33178                               |     
                                                         |     while (r0 >= 0) {
    0x00033158 mov r1, r5                                |         r1 = r5;
    0x0003315c mov r0, 0xa                               |         r0 = 0xa;
    0x00033160 bl 0x3d7f0                                |         r0 = fputc_unlocked ();
    0x00033164 cmp r0, 0                                 |         
                                                         |         if (r0 <= 0) {
    0x00033168 movgt r0, 0                               |             r0 = 0;
                                                         |         }
                                                         |         if (r0 > 0) {
    0x0003316c movle r0, 1                               |             r0 = 1;
                                                         |         }
    0x00033170 rsb r6, r0, 0                             |         r6 = r0 - ;
    0x00033174 b 0x33078                                 |         goto label_3;
    0x00033178 ldr r1, [pc, 0x28]                        |         r1 = *(0x331a4);
    0x0003317c mov r0, r5                                |         r0 = r5;
    0x00033180 add r1, pc, r1                            |         r1 = pc + r1;
    0x00033184 bl 0x34c9c                                |         r0 = fprintf (r0, r1)
    0x00033188 cmp r0, 0                                 |         
    0x0003318c bge 0x33158                               |         
                                                         |     }
    0x00033190 b 0x33074                                 |     goto label_1;
                                                         | }
    ; 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/lib/libuClibc-1.0.31.so @ 0x1909c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.vwarn ()                                     | void vwarn (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             | label_2:
    0x00018ecc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00018ed0 ldr r4, [pc, 0x1a8]                           |     r4 = *(0x1907c);
    0x00018ed4 sub sp, sp, 0x4c                              |     
    0x00018ed8 cmp r2, 0                                     |     
    0x00018edc add r4, pc, r4                                |     r4 = pc + r4;
    0x00018ee0 mov sl, r0                                    |     sl = r0;
    0x00018ee4 str r1, [sp, 4]                               |     var_4h = r1;
    0x00018ee8 add sb, sp, 8                                 |     sb += var_8h;
                                                             |     if (r2 == 0) {
    0x00018eec beq 0x19070                                   |         goto label_3;
                                                             |     }
    0x00018ef0 ldr r3, [pc, 0x18c]                           |     r3 = *(0x19080);
    0x00018ef4 bl 0x11934                                    |     fcn_00011934 ();
    0x00018ef8 mov r2, 0x40                                  |     r2 = 0x40;
    0x00018efc ldr r3, [pc, r3]                              |     r3 = *(0x00018f04);
    0x00018f00 mov r1, sb                                    |     r1 = sb;
    0x00018f04 ldr r0, [r0, r3]                              |     r0 = *((r0 + r3));
    0x00018f08 bl 0x3f464                                    |     xpg_strerror_r ();
    0x00018f0c ldr r5, [pc, 0x174]                           |     r5 = *(0x19084);
    0x00018f10 add r5, pc, r5                                |     r5 = pc + r5;
    0x00018f14 add r5, r5, 7                                 |     r5 += 7;
                                                             | label_1:
    0x00018f18 ldr r3, [pc, 0x16c]                           |     r3 = *(0x19088);
    0x00018f1c ldr r6, [r4, r3]                              |     r6 = *((r4 + r3));
    0x00018f20 ldr r7, [r6]                                  |     r7 = *(r6);
    0x00018f24 ldr r8, [r7, 0x34]                            |     r8 = *((r7 + 0x34));
    0x00018f28 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00018f2c bne 0x18fa0                                   |         goto label_4;
                                                             |     }
    0x00018f30 ldr r3, [r7, 0x40]                            |     r3 = *((r7 + 0x40));
    0x00018f34 bl 0x11934                                    |     r0 = fcn_00011934 ();
    0x00018f38 sub fp, r0, 0x490                             |     
    0x00018f3c cmp r3, fp                                    |     
                                                             |     if (r3 == fp) {
    0x00018f40 beq 0x18f90                                   |         goto label_5;
                                                             |     }
    0x00018f44 add r7, r7, 0x38                              |     r7 += 0x38;
    0x00018f48 mov r1, 1                                     |     r1 = 1;
    0x00018f4c mov r2, r7                                    |     r2 = r7;
    0x00018f50 mov r4, r8                                    |     r4 = r8;
                                                             |     do {
    0x00018f54 ldr r3, [r2]                                  |         r3 = *(r2);
    0x00018f58 cmp r3, r4                                    |         
                                                             |         if (r3 != r4) {
    0x00018f5c bne 0x18f78                                   |             goto label_6;
                                                             |         }
    0x00018f60 mov r0, r4                                    |         r0 = r4;
    0x00018f64 mvn r3, 0xf000                                |         r3 = ~0xf000;
    0x00018f68 mov lr, pc                                    |         lr = pc;
    0x00018f6c sub pc, r3, 0x3f                              |         pc = r3 - 0x3f;
    0x00018f70 blo 0x18f54                                   |         
                                                             |     } while (r3 <= r4);
    0x00018f74 mov r3, r4                                    |     r3 = r4;
                                                             | label_6:
    0x00018f78 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00018f7c beq 0x18f88                                   |         
    0x00018f80 mov r0, r7                                    |         r0 = r7;
    0x00018f84 bl 0x657d8                                    |         fcn_000657d8 (r0);
                                                             |     }
    0x00018f88 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00018f8c str fp, [r3, 0x40]                            |     *((r3 + 0x40)) = fp;
                                                             | label_5:
    0x00018f90 ldr r2, [r6]                                  |     r2 = *(r6);
    0x00018f94 ldr r3, [r2, 0x3c]                            |     r3 = *((r2 + 0x3c));
    0x00018f98 add r3, r3, 1                                 |     r3++;
    0x00018f9c str r3, [r2, 0x3c]                            |     *((r2 + 0x3c)) = r3;
                                                             | label_4:
    0x00018fa0 ldr r3, [pc, 0xe8]                            |     r3 = *(0x1908c);
    0x00018fa4 ldr r1, [pc, 0xe8]                            |     r1 = *(0x19090);
    0x00018fa8 ldr r2, [pc, r3]                              |     r2 = *(0x00018fb0);
    0x00018fac add r1, pc, r1                                |     r1 = pc + r1;
    0x00018fb0 ldr r0, [r6]                                  |     r0 = *(r6);
    0x00018fb4 bl 0x34c9c                                    |     fprintf (r0, r1, r2, r3)
    0x00018fb8 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x00018fbc beq 0x18fd4                                   |         
    0x00018fc0 ldr r2, [sp, 4]                               |         r2 = var_4h;
    0x00018fc4 mov r1, sl                                    |         r1 = sl;
    0x00018fc8 ldr r0, [r6]                                  |         r0 = *(r6);
    0x00018fcc bl 0x37bd0                                    |         vfprintf ()
    0x00018fd0 sub r5, r5, 2                                 |         r5 -= 2;
                                                             |     }
    0x00018fd4 mov r2, sb                                    |     r2 = sb;
    0x00018fd8 mov r1, r5                                    |     r1 = r5;
    0x00018fdc ldr r0, [r6]                                  |     r0 = *(r6);
    0x00018fe0 bl 0x34c9c                                    |     fprintf (r0, r1, r2, r3, r4, r5)
    0x00018fe4 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00018fe8 bne 0x19068                                   |         goto label_7;
                                                             |     }
    0x00018fec ldr r5, [r6]                                  |     r5 = *(r6);
    0x00018ff0 ldr r3, [r5, 0x3c]                            |     r3 = *((r5 + 0x3c));
    0x00018ff4 sub r3, r3, 1                                 |     r3--;
    0x00018ff8 cmp r3, 0                                     |     
    0x00018ffc str r3, [r5, 0x3c]                            |     *((r5 + 0x3c)) = r3;
                                                             |     if (r3 != 0) {
    0x00019000 bne 0x19068                                   |         goto label_7;
                                                             |     }
    0x00019004 add r7, r5, 0x38                              |     r7 = r5 + 0x38;
    0x00019008 str r8, [r5, 0x40]                            |     *((r5 + 0x40)) = r8;
                                                             | label_0:
    0x0001900c ldr r6, [r5, 0x38]                            |     r6 = *((r5 + 0x38));
    0x00019010 mov r1, 0                                     |     r1 = 0;
    0x00019014 mov r2, r7                                    |     r2 = r7;
    0x00019018 mov r4, r6                                    |     r4 = r6;
                                                             |     do {
    0x0001901c ldr r3, [r2]                                  |         r3 = *(r2);
    0x00019020 cmp r3, r4                                    |         
                                                             |         if (r3 != r4) {
    0x00019024 bne 0x19040                                   |             goto label_8;
                                                             |         }
    0x00019028 mov r0, r4                                    |         r0 = r4;
    0x0001902c mvn r3, 0xf000                                |         r3 = ~0xf000;
    0x00019030 mov lr, pc                                    |         lr = pc;
    0x00019034 sub pc, r3, 0x3f                              |         pc = r3 - 0x3f;
    0x00019038 blo 0x1901c                                   |         
                                                             |     } while (r3 <= r4);
    0x0001903c mov r3, r4                                    |     r3 = r4;
                                                             | label_8:
    0x00019040 cmp r6, r3                                    |     
                                                             |     if (r6 != r3) {
    0x00019044 bne 0x1900c                                   |         goto label_0;
                                                             |     }
    0x00019048 cmp r6, 1                                     |     
                                                             |     if (r6 > 1) {
    0x0001904c ble 0x19068                                   |         
    0x00019050 mov r0, r7                                    |         r0 = r7;
    0x00019054 mov r1, 0x81                                  |         r1 = 0x81;
    0x00019058 mov r2, 1                                     |         r2 = 1;
    0x0001905c mov r3, 0                                     |         r3 = 0;
    0x00019060 mov r7, 0xf0                                  |         r7 = 0xf0;
    0x00019064 svc 0                                         |         __asm ("svc 0");
                                                             |     }
                                                             | label_7:
    0x00019068 add sp, sp, 0x4c                              |     
    0x0001906c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_3:
    0x00019070 ldr r5, [pc, 0x20]                            |     
    0x00019074 add r5, pc, r5                                |     r5 = pc + r5;
    0x00019078 add r5, r5, 0xb                               |     r5 = 0x1909f;
    0x0001907c b 0x18f18                                     |     goto label_1;
    0x0001909c mov r2, 1                                     |     r2 = 1;
    0x000190a0 b 0x18ecc                                     |     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/lib/libuClibc-1.0.31.so @ 0x190cc */
                                 | #include <stdint.h>
                                 |  
    ; (fcn) sym.vwarnx ()        | void vwarnx (int32_t arg1, int32_t arg2) {
                                 |     r0 = arg1;
                                 |     r1 = arg2;
    0x000190cc mov r2, 0         |     r2 = 0;
    0x000190d0 b 0x18ecc         |     return void (*0x18ecc)() ();
                                 | }

[*] Function fprintf used 37 times libuClibc-1.0.31.so