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

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


[*] Function strcpy 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 @ 0x118d4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000118d4 ()                  | void fcn_000118d4 () {
    0x000118d4 add ip, pc, 0, 12             |     
    0x000118d8 add ip, ip, 0x76000           |     
    0x000118dc ldr pc, [ip, 0x388]!          |     pc = *((ip += 0x388));
                                             | }
    ; 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 @ 0x2c050 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0002c050 ()                                      | void fcn_0002c050 (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     char * var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     void * s2;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_44h;
                                                                 |     char * buf;
                                                                 |     int32_t var_50h;
                                                                 |     int32_t var_90h;
                                                                 |     r0 = arg1;
    0x0002c050 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0002c054 ldr r7, [pc, 0x588]                               |     r7 = *(0x2c5e0);
    0x0002c058 sub sp, sp, 0x94                                  |     
    0x0002c05c mov r3, 0                                         |     r3 = 0;
    0x0002c060 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0002c064 ldr r3, [pc, 0x57c]                               |     r3 = *(0x2c5e4);
    0x0002c068 add r7, pc, r7                                    |     r7 = pc + r7;
    0x0002c06c ldr r3, [r7, r3]                                  |     r3 = *(0x2c5e0);
    0x0002c070 ldr r4, [pc, 0x574]                               |     r4 = *(0x2c5e8);
    0x0002c074 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0002c078 add r4, pc, r4                                    |     r4 = pc + r4;
    0x0002c07c add r3, sp, 0xc                                   |     r3 += var_ch;
    0x0002c080 mov r2, r4                                        |     r2 = r4;
    0x0002c084 ldr r1, [sp, 4]                                   |     r1 = var_4h;
    0x0002c088 mov r8, r0                                        |     r8 = r0;
    0x0002c08c mov r0, r3                                        |     r0 = r3;
    0x0002c090 str r3, [sp]                                      |     *(sp) = r3;
    0x0002c094 bl 0x11dc0                                        |     fcn_00011dc0 ();
    0x0002c098 mov r0, r4                                        |     r0 = r4;
    0x0002c09c bl 0x68ab8                                        |     pthread_mutex_lock ();
    0x0002c0a0 ldr r0, [pc, 0x548]                               |     r0 = *(0x2c5ec);
    0x0002c0a4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0002c0a8 bl 0x4b980                                        |     r0 = getenv (r0);
    0x0002c0ac subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 == r0) {
    0x0002c0b0 bne 0x2c110                                       |         
    0x0002c0b4 ldr r0, [pc, 0x538]                               |         r0 = *(0x2c5f0);
    0x0002c0b8 mov r1, r4                                        |         r1 = r4;
    0x0002c0bc add r0, pc, r0                                    |         r0 = pc + r0;
    0x0002c0c0 bl 0x147dc                                        |         r0 = open (r0, r1, r2);
    0x0002c0c4 subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 < r0) {
    0x0002c0c8 blt 0x2c280                                       |             goto label_12;
                                                                 |         }
    0x0002c0cc add r5, sp, 0x4c                                  |         r5 += buf;
    0x0002c0d0 mov r2, 0x44                                      |         r2 = 0x44;
    0x0002c0d4 mov r1, r5                                        |         r1 = r5;
    0x0002c0d8 bl 0x155c0                                        |         r0 = read (r0, r1, r2);
    0x0002c0dc cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x0002c0e0 blt 0x2c100                                       |             
    0x0002c0e4 add r0, r5, r0                                    |             r0 = r5 + r0;
    0x0002c0e8 cmp r0, r5                                        |             
                                                                 |             if (r0 < r5) {
    0x0002c0ec bls 0x2c100                                       |                 goto label_0;
                                                                 |             }
    0x0002c0f0 ldrb r3, [r0, -1]                                 |             r3 = *((r0 - 1));
    0x0002c0f4 cmp r3, 0xa                                       |             
                                                                 |             if (r3 != 0xa) {
    0x0002c0f8 strbeq r4, [r0, -1]                               |                 *((r0 - 1)) = r4;
                                                                 |             }
                                                                 |             if (r3 == 0xa) {
    0x0002c0fc moveq r4, r5                                      |                 r4 = r5;
                                                                 |                 goto label_0;
                                                                 |             }
                                                                 |         }
                                                                 | label_0:
    0x0002c100 mov r0, r6                                        |         r0 = r6;
    0x0002c104 bl 0x15ac8                                        |         close (r0);
    0x0002c108 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x0002c10c beq 0x2c298                                       |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x0002c110 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0002c114 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002c118 beq 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c11c ldr r5, [pc, 0x4d4]                               |     r5 = *(0x2c5f4);
    0x0002c120 cmp r3, 0x3a                                      |     
                                                                 |     if (r3 != 0x3a) {
    0x0002c124 addeq r4, r4, 1                                   |         r4++;
                                                                 |     }
    0x0002c128 add r5, pc, r5                                    |     r5 = pc + r5;
    0x0002c12c mov r1, r5                                        |     r1 = r5;
    0x0002c130 mov r0, r4                                        |     r0 = r4;
    0x0002c134 bl 0x3e430                                        |     r0 = strcoll ();
    0x0002c138 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002c13c beq 0x2c318                                       |         goto label_13;
                                                                 |     }
    0x0002c140 ldr sl, [pc, 0x4b4]                               |     sl = *(0x2c5f8);
    0x0002c144 mov r0, r5                                        |     r0 = r5;
    0x0002c148 mov r2, 0x44                                      |     r2 = 0x44;
    0x0002c14c mov r1, r4                                        |     r1 = r4;
    0x0002c150 mov r5, 0                                         |     r5 = 0;
    0x0002c154 mov sb, 2                                         |     sb = 2;
    0x0002c158 add sl, pc, sl                                    |     sl = pc + sl;
    0x0002c15c bl 0x3ed10                                        |     strncpy ();
    0x0002c160 strb r5, [sp, 0x44]                               |     var_44h = r5;
                                                                 |     do {
    0x0002c164 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0002c168 add r2, sp, 0x90                                  |         r2 += var_90h;
    0x0002c16c cmp r3, 0x3c                                      |         
    0x0002c170 mov r3, 0x18                                      |         r3 = 0x18;
    0x0002c174 mla r2, r3, r5, r2                                |         __asm ("mla r2, r3, r5, r2");
    0x0002c178 ldr r0, [sl]                                      |         r0 = *(sl);
                                                                 |         if (r3 != 0x3c) {
    0x0002c17c addeq r4, r4, 1                                   |             r4++;
                                                                 |         }
                                                                 |         if (r3 != 0x3c) {
    0x0002c180 moveq ip, 0x3e                                    |             
                                                                 |         }
                                                                 |         if (r3 == 0x3c) {
    0x0002c184 movne ip, 0                                       |             
                                                                 |         }
    0x0002c188 sub r3, r2, 0x64                                  |         r3 = r2 - 0x64;
    0x0002c18c mov lr, 0                                         |         lr = 0;
                                                                 | label_2:
    0x0002c190 mov r6, r4                                        |         r6 = r4;
    0x0002c194 ldrb r1, [r4], 1                                  |         r1 = *(r4);
                                                                 |         r4++;
    0x0002c198 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x0002c19c beq 0x2c1dc                                       |             
    0x0002c1a0 tst r1, 0x80                                      |             
                                                                 |             if ((r1 & 0x80) != 0) {
    0x0002c1a4 bne 0x2c1dc                                       |                 goto label_14;
                                                                 |             }
    0x0002c1a8 lsl r2, r1, 1                                     |             r2 = r1 << 1;
    0x0002c1ac ldrh r2, [r0, r2]                                 |             r2 = *((r0 + r2));
    0x0002c1b0 tst r2, 4                                         |             
                                                                 |             if ((r2 & 4) != 0) {
    0x0002c1b4 bne 0x2c3dc                                       |                 goto label_15;
                                                                 |             }
    0x0002c1b8 cmp ip, 0                                         |             
                                                                 |             if (ip == 0) {
    0x0002c1bc beq 0x2c1dc                                       |                 goto label_14;
                                                                 |             }
    0x0002c1c0 sub fp, r1, 0x2b                                  |             
    0x0002c1c4 tst fp, 0xfd                                      |             
    0x0002c1c8 lsr r2, r2, 0xb                                   |             r2 >>= 0xb;
                                                                 |             if ((fp & 0xfd) == 0) {
    0x0002c1cc andne r2, r2, 1                                   |                 r2 &= 1;
                                                                 |             }
                                                                 |             if ((fp & 0xfd) != 0) {
    0x0002c1d0 moveq r2, 1                                       |                 r2 = 1;
                                                                 |             }
    0x0002c1d4 cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x0002c1d8 bne 0x2c3dc                                       |                 goto label_15;
                                                                 |             }
                                                                 |         }
                                                                 | label_14:
    0x0002c1dc mov r2, 0                                         |         r2 = 0;
    0x0002c1e0 cmp lr, 2                                         |         
    0x0002c1e4 strb r2, [r3]                                     |         *(r3) = r2;
                                                                 |         if (lr <= 2) {
    0x0002c1e8 ble 0x2c298                                       |             goto label_3;
                                                                 |         }
    0x0002c1ec cmp ip, r2                                        |         
                                                                 |         if (ip != r2) {
    0x0002c1f0 beq 0x2c200                                       |             
    0x0002c1f4 ldrb r3, [r6], 1                                  |             r3 = *(r6);
                                                                 |             r6++;
    0x0002c1f8 cmp ip, r3                                        |             
                                                                 |             if (ip != r3) {
    0x0002c1fc bne 0x2c298                                       |                 goto label_3;
                                                                 |             }
                                                                 |         }
    0x0002c200 ldrb r3, [r6]                                     |         r3 = *(r6);
    0x0002c204 sub r2, r3, 0x2b                                  |         r2 = r3 - 0x2b;
    0x0002c208 tst r2, 0xfd                                      |         
                                                                 |         if ((r2 & 0xfd) == 0) {
    0x0002c20c beq 0x2c420                                       |             goto label_16;
                                                                 |         }
    0x0002c210 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0002c214 beq 0x2c3f0                                       |             goto label_17;
                                                                 |         }
    0x0002c218 sub r3, r3, 0x30                                  |         r3 -= 0x30;
    0x0002c21c cmp r3, 9                                         |         
                                                                 |         if (r3 < 9) {
    0x0002c220 bls 0x2c3f0                                       |             goto label_17;
                                                                 |         }
    0x0002c224 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0002c228 mov r4, r6                                        |         r4 = r6;
    0x0002c22c sub r3, r3, 0xe10                                 |         r3 -= 0xe10;
    0x0002c230 str r3, [sp, 8]                                   |         var_8h = r3;
                                                                 | label_4:
    0x0002c234 mov r3, 0x18                                      |         r3 = 0x18;
    0x0002c238 add r1, sp, 0x90                                  |         r1 += var_90h;
    0x0002c23c ldr r2, [sp, 8]                                   |         r2 = var_8h;
    0x0002c240 mla r1, r3, r5, r1                                |         __asm ("mla r1, r3, r5, r1");
    0x0002c244 cmp sb, 1                                         |         
    0x0002c248 str r2, [r1, -0x74]                               |         s2 = r2;
                                                                 |         if (sb == 1) {
    0x0002c24c beq 0x2c428                                       |             goto label_18;
                                                                 |         }
    0x0002c250 str r2, [sp, 0x34]                                |         var_34h = r2;
    0x0002c254 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0002c258 mov r5, 1                                         |         r5 = 1;
    0x0002c25c cmp r3, 0                                         |         
    0x0002c260 mov sb, r5                                        |         sb = r5;
    0x0002c264 bne 0x2c164                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_11:
    0x0002c268 ldr r0, [pc, 0x390]                               |     r0 = *(0x2c5fc);
    0x0002c26c mov r2, 0x30                                      |     r2 = 0x30;
    0x0002c270 add r1, sp, 0x1c                                  |     r1 += s2;
    0x0002c274 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0002c278 bl 0x3e480                                        |     memcpy (r0, r1, r2);
    0x0002c27c b 0x2c2d0                                         |     goto label_19;
                                                                 | label_12:
    0x0002c280 ldr r0, [pc, 0x37c]                               |     r0 = *(0x2c600);
    0x0002c284 mov r1, r4                                        |     r1 = r4;
    0x0002c288 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0002c28c bl 0x147dc                                        |     r0 = open (r0, r1, r2);
    0x0002c290 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x0002c294 bge 0x2c32c                                       |         
                                                                 | label_3:
    0x0002c298 ldr r4, [pc, 0x368]                               |         r4 = *(0x2c604);
    0x0002c29c ldr r3, [pc, 0x368]                               |         r3 = *(0x2c608);
    0x0002c2a0 add r4, pc, r4                                    |         r4 = pc + r4;
    0x0002c2a4 mov r1, 0                                         |         r1 = 0;
    0x0002c2a8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0002c2ac mov r2, 0x30                                      |         r2 = 0x30;
    0x0002c2b0 mov r0, r4                                        |         r0 = r4;
    0x0002c2b4 strb r1, [r3]                                     |         *(r3) = r1;
    0x0002c2b8 bl 0x3e310                                        |         memset (r0, r1, r2);
    0x0002c2bc ldr r1, [pc, 0x34c]                               |         r1 = *(0x2c60c);
    0x0002c2c0 add r0, r4, 0x10                                  |         r0 = r4 + 0x10;
    0x0002c2c4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0002c2c8 add r1, r1, 3                                     |         r1 += 3;
    0x0002c2cc bl 0x3e970                                        |         strcpy (r0, r1)
                                                                 | label_19:
    0x0002c2d0 ldr r3, [pc, 0x33c]                               |         r3 = *(0x2c610);
    0x0002c2d4 ldr r2, [r7, r3]                                  |         r2 = *((r7 + r3));
    0x0002c2d8 ldr r3, [pc, 0x338]                               |         
    0x0002c2dc add r3, pc, r3                                    |         r3 = pc + r3;
    0x0002c2e0 add r1, r3, 0x10                                  |         r1 = r3 + 0x10;
    0x0002c2e4 str r1, [r2]                                      |         *(r2) = r1;
    0x0002c2e8 add r1, r3, 0x28                                  |         r1 = r3 + 0x28;
    0x0002c2ec str r1, [r2, 4]                                   |         *((r2 + 4)) = r1;
    0x0002c2f0 ldr r2, [pc, 0x324]                               |         r2 = *(0x2c618);
    0x0002c2f4 ldr r1, [r7, r2]                                  |         r1 = *((r7 + r2));
    0x0002c2f8 ldrb r2, [r3, 0x28]                               |         r2 = *((r3 + 0x28));
    0x0002c2fc ldr r3, [r3]                                      |         r3 = *(0x2c614);
    0x0002c300 adds r2, r2, 0                                    |         r2 += 0;
                                                                 |         if (r2 == r2) {
    0x0002c304 movne r2, 1                                       |             r2 = 1;
                                                                 |         }
    0x0002c308 str r2, [r1]                                      |         *(r1) = r2;
    0x0002c30c ldr r2, [pc, 0x30c]                               |         r2 = *(0x2c61c);
    0x0002c310 ldr r2, [r7, r2]                                  |         r2 = *((r7 + r2));
    0x0002c314 str r3, [r2]                                      |         *(r2) = r3;
                                                                 | label_13:
    0x0002c318 mov r1, 1                                         |         r1 = 1;
    0x0002c31c ldr r0, [sp]                                      |         r0 = *(sp);
    0x0002c320 bl 0x11b38                                        |         fcn_00011b38 ();
    0x0002c324 add sp, sp, 0x94                                  |         
    0x0002c328 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 |     }
    0x0002c32c add r5, sp, 0x4c                                  |     r5 += buf;
    0x0002c330 mov r2, 0x44                                      |     r2 = 0x44;
    0x0002c334 mov r1, r5                                        |     r1 = r5;
    0x0002c338 bl 0x155c0                                        |     r0 = read (r0, r1, r2);
    0x0002c33c cmp r0, 0x44                                      |     
    0x0002c340 mov sl, r0                                        |     sl = r0;
                                                                 |     if (r0 != 0x44) {
    0x0002c344 bne 0x2c100                                       |         goto label_0;
                                                                 |     }
    0x0002c348 ldr r1, [pc, 0x2d4]                               |     r1 = *(0x2c620);
    0x0002c34c mov r2, 4                                         |     r2 = 4;
    0x0002c350 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0002c354 mov r0, r5                                        |     r0 = r5;
    0x0002c358 bl 0x3eab8                                        |     strncmp (r0, r1, r2);
    0x0002c35c subs sb, r0, 0                                    |     sb -= buf;
                                                                 |     if (sb != buf) {
    0x0002c360 bne 0x2c100                                       |         goto label_0;
                                                                 |     }
    0x0002c364 ldrb r3, [sp, 0x50]                               |     r3 = var_50h;
    0x0002c368 cmp r3, 1                                         |     
                                                                 |     if (r3 < 1) {
    0x0002c36c bls 0x2c100                                       |         goto label_0;
                                                                 |     }
    0x0002c370 mov r2, 2                                         |     r2 = 2;
    0x0002c374 mvn r1, 0x43                                      |     r1 = ~0x43;
    0x0002c378 mov r0, r6                                        |     r0 = r6;
    0x0002c37c bl 0x13644                                        |     r0 = lseek ();
    0x0002c380 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0002c384 blt 0x2c100                                       |         goto label_0;
                                                                 |     }
    0x0002c388 mov r2, sl                                        |     r2 = sl;
    0x0002c38c mov r1, r5                                        |     r1 = r5;
    0x0002c390 mov r0, r6                                        |     r0 = r6;
    0x0002c394 bl 0x155c0                                        |     r0 = read (r0, r1, r2);
    0x0002c398 cmp r0, 0                                         |     
                                                                 |     if (r0 <= 0) {
    0x0002c39c ble 0x2c100                                       |         goto label_0;
                                                                 |     }
    0x0002c3a0 sub r0, r0, 1                                     |     r0--;
    0x0002c3a4 ldrb r3, [r5, r0]                                 |     r3 = *((r5 + r0));
    0x0002c3a8 cmp r3, 0xa                                       |     
                                                                 |     if (r3 == 0xa) {
    0x0002c3ac strbeq sb, [r5, r0]                               |         *((r5 + r0)) = sb;
                                                                 |         goto label_20;
                                                                 |     }
                                                                 |     if (r3 != 0xa) {
                                                                 | label_20:
    0x0002c3b0 bne 0x2c100                                       |         goto label_0;
                                                                 |     }
                                                                 | label_1:
    0x0002c3b4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002c3b8 moveq r4, r0                                      |         r4 = r0;
                                                                 |         goto label_21;
                                                                 |     }
                                                                 |     if (r0 == 0) {
                                                                 | label_21:
    0x0002c3bc beq 0x2c100                                       |         goto label_0;
                                                                 |     }
    0x0002c3c0 sub r0, r0, 1                                     |     r0--;
    0x0002c3c4 ldrb r3, [r5, r0]                                 |     r3 = *((r5 + r0));
    0x0002c3c8 cmp r3, 0xa                                       |     
                                                                 |     if (r3 != 0xa) {
    0x0002c3cc bne 0x2c3b4                                       |         goto label_1;
                                                                 |     }
    0x0002c3d0 add r0, r0, 1                                     |     r0++;
    0x0002c3d4 add r4, r5, r0                                    |     r4 = r5 + r0;
    0x0002c3d8 b 0x2c100                                         |     goto label_0;
                                                                 | label_15:
    0x0002c3dc add lr, lr, 1                                     |     lr++;
    0x0002c3e0 cmp lr, 7                                         |     
    0x0002c3e4 strb r1, [r3], 1                                  |     *(r3) = r1;
                                                                 |     r3++;
                                                                 |     if (lr != 7) {
    0x0002c3e8 bne 0x2c190                                       |         goto label_2;
                                                                 |     }
    0x0002c3ec b 0x2c298                                         |     goto label_3;
                                                                 | label_17:
    0x0002c3f0 sub r0, r6, 1                                     |     r0 = r6 - 1;
                                                                 | label_5:
    0x0002c3f4 add r1, sp, 8                                     |     r1 += var_8h;
    0x0002c3f8 add r0, r0, 1                                     |     r0++;
    0x0002c3fc bl 0x2bfc4                                        |     r0 = fcn_0002bfc4 (r0, r1);
    0x0002c400 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 == r0) {
    0x0002c404 beq 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c408 ldrb r3, [r6]                                     |     r3 = *(r6);
    0x0002c40c cmp r3, 0x2d                                      |     
                                                                 |     if (r3 != 0x2d) {
    0x0002c410 ldreq r3, [sp, 8]                                 |         r3 = var_8h;
                                                                 |     }
    0x0002c414 rsbeq r3, r3, 0                                   |     __asm ("rsbeq r3, r3, 0");
                                                                 |     if (r3 != 0x2d) {
    0x0002c418 streq r3, [sp, 8]                                 |         var_8h = r3;
                                                                 |     }
    0x0002c41c b 0x2c234                                         |     goto label_4;
                                                                 | label_16:
    0x0002c420 mov r0, r6                                        |     r0 = r6;
    0x0002c424 b 0x2c3f4                                         |     goto label_5;
                                                                 | label_18:
    0x0002c428 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0002c42c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002c430 bne 0x2c448                                       |         
    0x0002c434 cmp r8, 0                                         |         
                                                                 |         if (r8 == 0) {
    0x0002c438 beq 0x2c500                                       |             goto label_22;
                                                                 |         }
    0x0002c43c ldr r4, [pc, 0x1e4]                               |         
    0x0002c440 add r4, pc, r4                                    |         r4 = pc + r4;
    0x0002c444 add r4, r4, 0x16                                  |         r4 = 0x2c63a;
                                                                 |     }
                                                                 | label_6:
    0x0002c448 ldr fp, [pc, 0x1dc]                               |     
    0x0002c44c ldr r8, [pc, 0x1dc]                               |     r8 = *(0x2c62c);
    0x0002c450 add fp, pc, fp                                    |     
    0x0002c454 mov r6, 2                                         |     r6 = 2;
    0x0002c458 mov r5, 0                                         |     r5 = 0;
    0x0002c45c add fp, fp, 0xa                                   |     fp = 0x2c632;
                                                                 | label_7:
    0x0002c460 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0002c464 cmp r3, 0x2c                                      |     
                                                                 |     if (r3 != 0x2c) {
    0x0002c468 bne 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c46c ldrb lr, [r4, 1]                                  |     
    0x0002c470 add ip, r4, 2                                     |     
    0x0002c474 cmp lr, 0x4d                                      |     
                                                                 |     if (lr != 0x4d) {
    0x0002c478 moveq r1, 0xc                                     |         r1 = 0xc;
                                                                 |     }
                                                                 |     if (lr != 0x4d) {
    0x0002c47c moveq r3, fp                                      |         r3 = fp;
                                                                 |     }
                                                                 |     if (lr == 0x4d) {
    0x0002c480 beq 0x2c4a4                                       |         goto label_23;
                                                                 |     }
    0x0002c484 cmp lr, 0x4a                                      |     
                                                                 |     if (lr == 0x4a) {
    0x0002c488 beq 0x2c518                                       |         goto label_24;
                                                                 |     }
    0x0002c48c ldr r3, [pc, 0x1a0]                               |     
    0x0002c490 add ip, r4, 1                                     |     
    0x0002c494 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0002c498 mov lr, 0                                         |     lr = 0;
    0x0002c49c mov r1, r8                                        |     r1 = r8;
    0x0002c4a0 add r3, r3, 0x10                                  |     r3 = 0x2c640;
                                                                 |     do {
                                                                 | label_23:
    0x0002c4a4 mov r0, 0x18                                      |         r0 = 0x18;
    0x0002c4a8 mul r4, r5, r0                                    |         r4 = r5 * r0;
    0x0002c4ac add r2, sp, 0x90                                  |         r2 += var_90h;
    0x0002c4b0 add r2, r2, r4                                    |         r2 += r4;
    0x0002c4b4 sub r2, r2, 0x66                                  |         r2 -= 0x66;
    0x0002c4b8 add r0, sp, 0x90                                  |         r0 += var_90h;
    0x0002c4bc cmp lr, 0x4d                                      |         
    0x0002c4c0 add r0, r0, r4                                    |         r0 += r4;
                                                                 |         if (lr == 0x4d) {
    0x0002c4c4 subne r2, r2, 4                                   |             r2 -= 4;
                                                                 |         }
    0x0002c4c8 mov r4, ip                                        |         r4 = ip;
    0x0002c4cc strh lr, [r0, -0x66]                              |         
                                                                 | label_9:
    0x0002c4d0 mov sb, r4                                        |         sb = r4;
    0x0002c4d4 mov r0, 3                                         |         r0 = 3;
    0x0002c4d8 mov ip, 0                                         |         
                                                                 | label_8:
    0x0002c4dc ldrb lr, [sb]                                     |         
    0x0002c4e0 mov r4, sb                                        |         r4 = sb;
    0x0002c4e4 sub lr, lr, 0x30                                  |         lr -= 0x30;
    0x0002c4e8 and sl, lr, 0xff                                  |         sl = lr & 0xff;
    0x0002c4ec cmp sl, 9                                         |         
    0x0002c4f0 add sb, sb, 1                                     |         sb++;
                                                                 |         if (sl < 9) {
    0x0002c4f4 bls 0x2c52c                                       |             goto label_25;
                                                                 |         }
    0x0002c4f8 cmp r0, 3                                         |         
    0x0002c4fc b 0x2c548                                         |         goto label_26;
                                                                 | label_22:
    0x0002c500 ldr r4, [pc, 0x130]                               |         
    0x0002c504 add r4, pc, r4                                    |         r4 = pc + r4;
    0x0002c508 add r4, r4, 0x26                                  |         r4 = 0x2c65a;
    0x0002c50c b 0x2c448                                         |         goto label_6;
                                                                 | label_10:
    0x0002c510 mov r6, r5                                        |         r6 = r5;
    0x0002c514 b 0x2c460                                         |         goto label_7;
                                                                 | label_24:
    0x0002c518 ldr r3, [pc, 0x11c]                               |         
    0x0002c51c mov r1, r8                                        |         r1 = r8;
    0x0002c520 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0002c524 add r3, r3, 0x12                                  |         r3 = 0x2c64a;
    0x0002c528 b 0x2c4a4                                         |         
                                                                 |     } while (1);
                                                                 | label_25:
    0x0002c52c mov sl, 0xa                                       |     sl = 0xa;
    0x0002c530 mla sl, ip, sl, lr                                |     __asm ("mla sl, ip, sl, lr");
    0x0002c534 subs r0, r0, 1                                    |     r0--;
    0x0002c538 mov r4, sb                                        |     r4 = sb;
    0x0002c53c mov ip, sl                                        |     
                                                                 |     if (r0 != r0) {
    0x0002c540 bne 0x2c4dc                                       |         goto label_8;
                                                                 |     }
    0x0002c544 cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
                                                                 | label_26:
    0x0002c548 beq 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c54c ldrb r0, [r3, 2]                                  |     r0 = *((r3 + 2));
    0x0002c550 sub r0, ip, r0                                    |     r0 = ip - r0;
    0x0002c554 cmp r0, r1                                        |     
                                                                 |     if (r0 > r1) {
    0x0002c558 bhi 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c55c ldrb r1, [r3, 1]                                  |     r1 = *((r3 + 1));
    0x0002c560 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0002c564 beq 0x2c57c                                       |         goto label_27;
                                                                 |     }
    0x0002c568 ldrb lr, [r4]                                     |     
    0x0002c56c add r0, r4, 1                                     |     r0 = r4 + 1;
    0x0002c570 cmp lr, r1                                        |     
                                                                 |     if (lr != r1) {
    0x0002c574 bne 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c578 mov r4, r0                                        |     r4 = r0;
                                                                 | label_27:
    0x0002c57c ldrb r1, [r3, 3]!                                 |     r1 = *((r3 += 3));
    0x0002c580 strh ip, [r2, -2]!                                |     *((r2 -= 2)) = ip;
    0x0002c584 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0002c588 bne 0x2c4d0                                       |         goto label_9;
                                                                 |     }
    0x0002c58c ldr r3, [pc, 0xac]                                |     r3 = *(0x2c63c);
    0x0002c590 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0002c594 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0002c598 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x0002c59c bne 0x2c5b4                                       |         goto label_28;
                                                                 |     }
    0x0002c5a0 add r0, r4, 1                                     |     r0 = r4 + 1;
    0x0002c5a4 add r1, sp, 8                                     |     r1 += var_8h;
    0x0002c5a8 bl 0x2bfc4                                        |     r0 = fcn_0002bfc4 (r0, r1);
    0x0002c5ac subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 == r0) {
    0x0002c5b0 beq 0x2c298                                       |         goto label_3;
                                                                 |     }
                                                                 | label_28:
    0x0002c5b4 mov r3, 0x18                                      |     r3 = 0x18;
    0x0002c5b8 add r2, sp, 0x90                                  |     r2 += var_90h;
    0x0002c5bc mla r2, r3, r5, r2                                |     __asm ("mla r2, r3, r5, r2");
    0x0002c5c0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0002c5c4 mov r5, 1                                         |     r5 = 1;
    0x0002c5c8 cmp r6, r5                                        |     
    0x0002c5cc str r3, [r2, -0x70]                               |     *((r2 - 0x70)) = r3;
                                                                 |     if (r6 != r5) {
    0x0002c5d0 bne 0x2c510                                       |         goto label_10;
                                                                 |     }
    0x0002c5d4 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0002c5d8 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002c5dc bne 0x2c298                                       |         goto label_3;
                                                                 |     }
    0x0002c5e0 b 0x2c268                                         |     goto label_11;
                                                                 | }


r2dec has crashed (info: /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 @ 0x2ccb8).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; 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 @ 0x39b9c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00039b9c ()                                  | void fcn_00039b9c (void * arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * dest;
                                                             |     int32_t var_1h;
                                                             |     int32_t var_1h_2;
                                                             |     int32_t var_2h;
                                                             |     int32_t var_bch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00039b9c ldr r3, [pc, 0x55c]                           |     r3 = *(0x3a0fc);
    0x00039ba0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00039ba4 ldr sl, [r0, 0x3c]                            |     sl = *((r0 + 0x3c));
    0x00039ba8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00039bac add r3, r3, sl                                |     r3 += sl;
    0x00039bb0 cmp sl, 1                                     |     
    0x00039bb4 sub sp, sp, 0xbc                              |     
    0x00039bb8 mov r7, r0                                    |     r7 = r0;
    0x00039bbc mov r4, r1                                    |     r4 = r1;
    0x00039bc0 ldrb r6, [r3, 0xa]                            |     r6 = *((r3 + 0xa));
                                                             |     if (sl != 1) {
    0x00039bc4 bne 0x39c58                                   |         goto label_14;
                                                             |     }
    0x00039bc8 ldr r8, [pc, 0x534]                           |     r8 = *(0x3a100);
    0x00039bcc add r8, pc, r8                                |     r8 = pc + r8;
                                                             |     do {
    0x00039bd0 mov r0, r4                                    |         r0 = r4;
    0x00039bd4 bl 0x397c4                                    |         r0 = fcn_000397c4 (r0);
    0x00039bd8 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x00039bdc blt 0x39bf0                                   |             
    0x00039be0 ldrb r2, [r8]                                 |             r2 = *(r8);
    0x00039be4 ldr r3, [r4]                                  |             r3 = *(r4);
    0x00039be8 cmp r2, r3                                    |             
                                                             |             if (r2 == r3) {
    0x00039bec beq 0x39c10                                   |                 goto label_15;
                                                             |             }
                                                             |         }
    0x00039bf0 mov r0, r4                                    |         r0 = r4;
    0x00039bf4 bl 0x39848                                    |         fcn_00039848 (r0);
    0x00039bf8 ldr r3, [pc, 0x508]                           |         r3 = *(0x3a104);
    0x00039bfc add r3, pc, r3                                |         r3 = pc + r3;
    0x00039c00 cmp r8, r3                                    |         
                                                             |         if (r8 < r3) {
    0x00039c04 bls 0x39c58                                   |             goto label_14;
                                                             |         }
                                                             | label_1:
    0x00039c08 mvn r0, 1                                     |         r0 = ~1;
    0x00039c0c b 0x39c2c                                     |         goto label_0;
                                                             | label_15:
    0x00039c10 ldrb r5, [r8, 1]!                             |         r5 = *((r8 += 1));
    0x00039c14 cmp r5, 0                                     |         
    0x00039c18 bne 0x39bd0                                   |         
                                                             |     } while (r5 != 0);
    0x00039c1c ldrb r3, [r7, 0x44]                           |     r3 = *((r7 + 0x44));
    0x00039c20 cmp r3, 0                                     |     
    0x00039c24 bne 0x39c34                                   |     
                                                             |     while (1) {
                                                             | label_2:
    0x00039c28 mov r0, 0                                     |         r0 = 0;
                                                             | label_0:
    0x00039c2c add sp, sp, 0xbc                              |         
    0x00039c30 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00039c34 ldr r3, [r7, 0x34]                            |         r3 = *((r7 + 0x34));
    0x00039c38 ldr r1, [r7, 0x38]                            |         r1 = *((r7 + 0x38));
    0x00039c3c ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x00039c40 add r3, r3, 1                                 |         r3++;
    0x00039c44 str r3, [r7, 0x34]                            |         *((r7 + 0x34)) = r3;
    0x00039c48 mov r2, 0                                     |         r2 = 0;
    0x00039c4c mov r3, 0                                     |         r3 = 0;
                                                             | label_3:
    0x00039c50 bl 0x369a8                                    |         fcn_000369a8 (r0, r1);
    0x00039c54 b 0x39c28                                     |         
                                                             |     }
                                                             | label_14:
    0x00039c58 mov r0, r4                                    |     r0 = r4;
    0x00039c5c bl 0x397c4                                    |     fcn_000397c4 (r0);
    0x00039c60 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00039c64 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00039c68 mvnlt r0, 0                                   |         r0 = ~0;
                                                             |         goto label_16;
                                                             |     }
                                                             |     if (r3 < 0) {
                                                             | label_16:
    0x00039c6c blt 0x39c2c                                   |         goto label_0;
                                                             |     }
    0x00039c70 sub r2, r3, 0x2b                              |     r2 = r3 - 0x2b;
    0x00039c74 bics r2, r2, 2                                |     __asm ("bics r2, r2, 2");
                                                             |     if (r3 == 0) {
    0x00039c78 addne r5, sp, 0x10                            |         r5 += var_10h;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00039c7c bne 0x39c90                                   |         
    0x00039c80 mov r0, r4                                    |         r0 = r4;
    0x00039c84 strb r3, [sp, 0x10]                           |         var_10h = r3;
    0x00039c88 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x00039c8c add r5, sp, 0x11                              |         r5 += dest;
                                                             |     }
    0x00039c90 tst r6, 0xef                                  |     
                                                             |     if ((r6 & 0xef) == 0) {
    0x00039c94 bne 0x39ce0                                   |         
    0x00039c98 ldr sb, [r4]                                  |         sb = *(r4);
    0x00039c9c cmp sb, 0x30                                  |         
                                                             |         if (sb != 0x30) {
    0x00039ca0 bne 0x39dd8                                   |             goto label_17;
                                                             |         }
    0x00039ca4 mov r0, r4                                    |         r0 = r4;
    0x00039ca8 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x00039cac ldr r8, [r4]                                  |         r8 = *(r4);
    0x00039cb0 mov r0, r4                                    |         r0 = r4;
    0x00039cb4 orr r8, r8, 0x20                              |         r8 |= 0x20;
    0x00039cb8 cmp r8, 0x78                                  |         
                                                             |         if (r8 != 0x78) {
    0x00039cbc bne 0x39db4                                   |             goto label_18;
                                                             |         }
    0x00039cc0 bl 0x397c4                                    |         r0 = fcn_000397c4 (r0);
    0x00039cc4 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x00039cc8 blt 0x39e58                                   |             goto label_9;
                                                             |         }
    0x00039ccc mov r3, r5                                    |         r3 = r5;
    0x00039cd0 strb sb, [r3], 2                              |         *(r3) = sb;
                                                             |         r3 += 2;
    0x00039cd4 mov r6, 0x10                                  |         r6 = 0x10;
    0x00039cd8 strb r8, [r5, 1]                              |         dest = r8;
    0x00039cdc mov r5, r3                                    |         r5 = r3;
                                                             |     }
                                                             | label_4:
    0x00039ce0 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00039ce4 cmp r3, 0x30                                  |     
                                                             |     if (r3 == 0x30) {
    0x00039ce8 beq 0x39de4                                   |         goto label_19;
                                                             |     }
    0x00039cec mov r8, 0                                     |     r8 = 0;
                                                             | label_5:
    0x00039cf0 ldr r1, [pc, 0x414]                           |     r1 = *(0x3a108);
    0x00039cf4 mov fp, 0                                     |     
    0x00039cf8 mov sb, fp                                    |     sb = fp;
    0x00039cfc add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_6:
    0x00039d00 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00039d04 ldr r0, [r1]                                  |     r0 = *(r1);
    0x00039d08 lsl r2, r3, 1                                 |     r2 = r3 << 1;
    0x00039d0c ldrh r2, [r0, r2]                             |     r2 = *((r0 + r2));
    0x00039d10 tst r2, 0x10                                  |     
                                                             |     if ((r2 & 0x10) != 0) {
    0x00039d14 beq 0x39d2c                                   |         
    0x00039d18 cmp r6, 0x10                                  |         
                                                             |         if (r6 == 0x10) {
    0x00039d1c beq 0x39e0c                                   |             goto label_20;
                                                             |         }
    0x00039d20 sub r2, r3, 0x2f                              |         r2 = r3 - 0x2f;
    0x00039d24 cmp r2, r6                                    |         
                                                             |         if (r2 <= r6) {
    0x00039d28 ble 0x39e0c                                   |             goto label_20;
                                                             |         }
                                                             |     }
    0x00039d2c ldr r3, [r7, 0x3c]                            |     r3 = *((r7 + 0x3c));
    0x00039d30 cmp r3, 7                                     |     
                                                             |     if (r3 <= 7) {
    0x00039d34 ldrgt sl, [r4, 0x3c]                          |         sl = *((r4 + 0x3c));
                                                             |     }
                                                             |     if (r3 > 7) {
    0x00039d38 bgt 0x39e6c                                   |         goto label_21;
                                                             |     }
    0x00039d3c mov r0, r4                                    |     r0 = r4;
    0x00039d40 bl 0x39848                                    |     fcn_00039848 (r0);
    0x00039d44 mov r3, 0                                     |     r3 = 0;
    0x00039d48 cmp r8, r3                                    |     
    0x00039d4c strb r3, [r5]                                 |     *(r5) = r3;
                                                             |     if (r8 == r3) {
    0x00039d50 beq 0x39c08                                   |         goto label_1;
                                                             |     }
    0x00039d54 ldrb r2, [r7, 0x44]                           |     r2 = *((r7 + 0x44));
    0x00039d58 cmp r2, r3                                    |     
                                                             |     if (r2 == r3) {
    0x00039d5c beq 0x39c28                                   |         goto label_2;
                                                             |     }
    0x00039d60 ldrb r2, [sp, 0x10]                           |     r2 = var_10h;
    0x00039d64 cmp r2, 0x2d                                  |     
                                                             |     if (r2 != 0x2d) {
    0x00039d68 beq 0x39d78                                   |         
    0x00039d6c cmp sl, 5                                     |         
                                                             |         if (sl <= 5) {
    0x00039d70 movgt r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (sl <= 5) {
    0x00039d74 movle r3, 1                                   |             r3 = 1;
                                                             |             goto label_22;
                                                             |         }
                                                             |     }
                                                             | label_22:
    0x00039d78 ldr r2, [r7, 0x34]                            |     r2 = *((r7 + 0x34));
    0x00039d7c rsb r3, r3, 1                                 |     r3 = 1 - r3;
    0x00039d80 add r2, r2, 1                                 |     r2++;
    0x00039d84 str r2, [r7, 0x34]                            |     *((r7 + 0x34)) = r2;
    0x00039d88 mov r1, 0                                     |     r1 = 0;
    0x00039d8c mov r2, r6                                    |     r2 = r6;
    0x00039d90 add r0, sp, 0x10                              |     r0 += var_10h;
    0x00039d94 ldr r4, [r7, 0x2c]                            |     r4 = *((r7 + 0x2c));
    0x00039d98 ldr r5, [r7, 0x38]                            |     r5 = *((r7 + 0x38));
    0x00039d9c bl 0x4d3c8                                    |     r0 = fcn_0004d3c8 (r0, r1);
    0x00039da0 mov r2, r0                                    |     r2 = r0;
    0x00039da4 mov r3, r1                                    |     r3 = r1;
    0x00039da8 mov r0, r4                                    |     r0 = r4;
    0x00039dac mov r1, r5                                    |     r1 = r5;
    0x00039db0 b 0x39c50                                     |     goto label_3;
                                                             | label_18:
    0x00039db4 bl 0x39848                                    |     fcn_00039848 (r0);
    0x00039db8 ldr r3, [r7, 0x3c]                            |     r3 = *((r7 + 0x3c));
    0x00039dbc str sb, [r4]                                  |     *(r4) = sb;
    0x00039dc0 cmp r3, 7                                     |     
                                                             |     if (r3 > 7) {
    0x00039dc4 lsrle r6, r6, 1                               |         r6 >>= 1;
                                                             |     }
                                                             |     if (r3 > 7) {
    0x00039dc8 addle r6, r6, 8                               |         r6 += 8;
                                                             |     }
                                                             |     if (r3 > 7) {
    0x00039dcc andle r6, r6, 0xff                            |         r6 &= 0xff;
                                                             |     }
                                                             |     if (r3 <= 7) {
    0x00039dd0 movgt r6, 0xa                                 |         r6 = 0xa;
                                                             |     }
    0x00039dd4 b 0x39ce0                                     |     goto label_4;
                                                             | label_17:
    0x00039dd8 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00039ddc moveq r6, 0xa                                 |         r6 = 0xa;
                                                             |     }
    0x00039de0 b 0x39ce0                                     |     goto label_4;
                                                             | label_19:
    0x00039de4 add r8, r5, 1                                 |     r8 += dest;
    0x00039de8 strb r3, [r5]                                 |     *(r5) = r3;
                                                             |     do {
    0x00039dec mov r0, r4                                    |         r0 = r4;
    0x00039df0 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x00039df4 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00039df8 cmp r3, 0x30                                  |         
    0x00039dfc beq 0x39dec                                   |         
                                                             |     } while (r3 == 0x30);
    0x00039e00 mov r5, r8                                    |     r5 = r8;
    0x00039e04 mov r8, 1                                     |     r8 = 1;
    0x00039e08 b 0x39cf0                                     |     goto label_5;
                                                             | label_20:
    0x00039e0c add r2, sp, 0x10                              |     r2 += var_10h;
    0x00039e10 sub r2, r5, r2                                |     r2 = r5 - r2;
    0x00039e14 cmp r2, 0x40                                  |     
                                                             |     if (r2 > 0x40) {
    0x00039e18 strble r3, [r5]                               |         *(r5) = r3;
                                                             |     }
                                                             |     if (r2 > 0x40) {
    0x00039e1c movle r8, 1                                   |         r8 = 1;
                                                             |     }
    0x00039e20 mov r0, r4                                    |     r0 = r4;
    0x00039e24 str r1, [sp, 4]                               |     var_4h = r1;
                                                             |     if (r2 > 0x40) {
    0x00039e28 addle r5, r5, 1                               |         r5 += var_1h;
                                                             |     }
                                                             |     if (r2 > 0x40) {
    0x00039e2c movle fp, r8                                  |         
                                                             |     }
                                                             |     if (r2 <= 0x40) {
    0x00039e30 addgt sb, sb, 1                               |         sb++;
                                                             |     }
    0x00039e34 bl 0x397c4                                    |     fcn_000397c4 (r0);
    0x00039e38 ldr r1, [sp, 4]                               |     r1 = var_4h;
    0x00039e3c b 0x39d00                                     |     goto label_6;
                                                             |     do {
    0x00039e40 ldr r1, [r4]                                  |         r1 = *(r4);
    0x00039e44 cmp r3, r1                                    |         
                                                             |         if (r3 != r1) {
    0x00039e48 beq 0x39e64                                   |             
    0x00039e4c ldr r3, [r4, 0x3c]                            |             r3 = *((r4 + 0x3c));
    0x00039e50 cmp r3, r2                                    |             
                                                             |             if (r3 >= r2) {
    0x00039e54 bhs 0x39f38                                   |                 goto label_23;
                                                             |             }
                                                             | label_9:
    0x00039e58 mov r0, r4                                    |             r0 = r4;
    0x00039e5c bl 0x39848                                    |             fcn_00039848 (r0);
    0x00039e60 b 0x39c08                                     |             goto label_1;
                                                             |         }
    0x00039e64 mov r0, r4                                    |         r0 = r4;
    0x00039e68 bl 0x397c4                                    |         fcn_000397c4 (r0);
                                                             | label_21:
    0x00039e6c mov r2, sl                                    |         r2 = sl;
    0x00039e70 ldrb r3, [sl], 1                              |         r3 = *(sl);
                                                             |         sl++;
    0x00039e74 cmp r3, 0                                     |         
    0x00039e78 bne 0x39e40                                   |         
                                                             |     } while (r3 != 0);
    0x00039e7c mov r0, r5                                    |     r0 = r5;
    0x00039e80 ldr r1, [r4, 0x30]                            |     r1 = *((r4 + 0x30));
    0x00039e84 bl 0x3e970                                    |     strcpy (r0, r1)
    0x00039e88 ldr r3, [r4, 0x34]                            |     r3 = *((r4 + 0x34));
    0x00039e8c cmp fp, 0                                     |     
    0x00039e90 add r5, r5, r3                                |     r5 += r3;
    0x00039e94 beq 0x39ea8                                   |     
                                                             |     while (r3 != 0x30) {
                                                             | label_7:
    0x00039e98 ldr sl, [pc, 0x270]                           |         sl = *(0x3a10c);
    0x00039e9c add fp, sp, 0x10                              |         
    0x00039ea0 add sl, pc, sl                                |         sl = pc + sl;
    0x00039ea4 b 0x39f00                                     |         goto label_24;
    0x00039ea8 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00039eac cmp r3, 0x30                                  |         
    0x00039eb0 bne 0x39e98                                   |         
                                                             |     }
    0x00039eb4 add r8, r5, 1                                 |     r8 = r5 + 1;
    0x00039eb8 add sb, sb, 1                                 |     sb++;
    0x00039ebc strb r3, [r5]                                 |     *(r5) = r3;
                                                             |     do {
    0x00039ec0 mov r0, r4                                    |         r0 = r4;
    0x00039ec4 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x00039ec8 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00039ecc sub sb, sb, 1                                 |         sb--;
    0x00039ed0 cmp r3, 0x30                                  |         
    0x00039ed4 beq 0x39ec0                                   |         
                                                             |     } while (r3 == 0x30);
    0x00039ed8 mov r5, r8                                    |     r5 = r8;
    0x00039edc mov r8, 1                                     |     r8 = 1;
    0x00039ee0 b 0x39e98                                     |     goto label_7;
                                                             |     do {
                                                             | label_8:
    0x00039ee4 sub r2, r5, fp                                |         r2 = r5 - fp;
    0x00039ee8 cmp r2, 0x40                                  |         
                                                             |         if (r2 > 0x40) {
    0x00039eec strble r3, [r5]                               |             *(r5) = r3;
                                                             |         }
    0x00039ef0 mov r0, r4                                    |         r0 = r4;
                                                             |         if (r2 > 0x40) {
    0x00039ef4 addle r5, r5, 1                               |             r5++;
                                                             |         }
                                                             |         if (r2 > 0x40) {
    0x00039ef8 movle r8, 1                                   |             r8 = 1;
                                                             |         }
    0x00039efc bl 0x397c4                                    |         fcn_000397c4 (r0);
                                                             | label_24:
    0x00039f00 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00039f04 ldr r1, [sl]                                  |         r1 = *(sl);
    0x00039f08 lsl r2, r3, 1                                 |         r2 = r3 << 1;
    0x00039f0c ldrh r2, [r1, r2]                             |         r2 = *((r1 + r2));
    0x00039f10 tst r2, 0x10                                  |         
                                                             |         if ((r2 & 0x10) == 0) {
    0x00039f14 beq 0x39f38                                   |             goto label_23;
                                                             |         }
    0x00039f18 cmp r6, 0x10                                  |         
    0x00039f1c beq 0x39ee4                                   |         
                                                             |     } while (r6 == 0x10);
    0x00039f20 sub r2, r3, 0x2f                              |     r2 = r3 - 0x2f;
    0x00039f24 cmp r2, r6                                    |     
                                                             |     if (r2 <= r6) {
    0x00039f28 ble 0x39ee4                                   |         goto label_8;
                                                             |     }
    0x00039f2c cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00039f30 beq 0x39f48                                   |         goto label_25;
                                                             |     }
    0x00039f34 b 0x3a02c                                     |     goto label_26;
                                                             | label_23:
    0x00039f38 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00039f3c bne 0x3a014                                   |         goto label_27;
                                                             |     }
    0x00039f40 cmp r6, 0x10                                  |     
                                                             |     if (r6 == 0x10) {
    0x00039f44 beq 0x39e58                                   |         goto label_9;
                                                             |     }
                                                             | label_25:
    0x00039f48 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00039f4c orr r2, r3, 0x20                              |     r2 = r3 | 0x20;
    0x00039f50 cmp r2, 0x69                                  |     
                                                             |     if (r2 == 0x69) {
    0x00039f54 beq 0x39f6c                                   |         goto label_28;
                                                             |     }
    0x00039f58 cmp r2, 0x6e                                  |     
                                                             |     if (r2 != 0x6e) {
    0x00039f5c bne 0x39e58                                   |         goto label_9;
                                                             |     }
    0x00039f60 ldr r6, [pc, 0x1ac]                           |     r6 = *(0x3a110);
    0x00039f64 add r6, pc, r6                                |     r6 = pc + r6;
    0x00039f68 b 0x39f78                                     |     goto label_29;
                                                             | label_28:
    0x00039f6c ldr r6, [pc, 0x1a4]                           |     r6 = *(0x3a114);
    0x00039f70 add r6, pc, r6                                |     r6 = pc + r6;
    0x00039f74 add r6, r6, 3                                 |     r6 += 3;
                                                             | label_29:
    0x00039f78 strb r3, [r5]                                 |     *(r5) = r3;
    0x00039f7c add r5, r5, 1                                 |     r5 += var_1h;
                                                             |     do {
    0x00039f80 mov r0, r4                                    |         r0 = r4;
    0x00039f84 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x00039f88 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00039f8c mov r8, r6                                    |         r8 = r6;
    0x00039f90 ldrb r2, [r6], 1                              |         r2 = *(r6);
                                                             |         r6++;
    0x00039f94 orr r1, r3, 0x20                              |         r1 = r3 | 0x20;
    0x00039f98 cmp r1, r2                                    |         
                                                             |         if (r1 != r2) {
    0x00039f9c strbeq r3, [r5], 1                            |             *(r5) = r3;
                                                             |             r5++;
                                                             |         }
    0x00039fa0 beq 0x39f80                                   |         
                                                             |     } while (r1 == r2);
    0x00039fa4 ldr r3, [pc, 0x170]                           |     r3 = *(0x3a118);
    0x00039fa8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00039fac add r3, r3, 5                                 |     r3 += 5;
    0x00039fb0 cmp r8, r3                                    |     
    0x00039fb4 cmpne r2, 0                                   |     __asm ("cmpne r2, 0");
                                                             |     if (r8 != r3) {
    0x00039fb8 bne 0x39e58                                   |         goto label_9;
                                                             |     }
                                                             |     do {
                                                             | label_10:
    0x00039fbc mov r3, 0                                     |         r3 = 0;
    0x00039fc0 strb r3, [r5]                                 |         *(r5) = r3;
    0x00039fc4 mov r2, sb                                    |         r2 = sb;
    0x00039fc8 add r1, sp, 0xc                               |         r1 += var_ch;
    0x00039fcc add r0, sp, 0x10                              |         r0 += var_10h;
    0x00039fd0 bl 0x4dc80                                    |         fcn_0004dc80 (r0, r1);
    0x00039fd4 ldrb ip, [r7, 0x44]                           |         ip = *((r7 + 0x44));
    0x00039fd8 cmp ip, 0                                     |         
    0x00039fdc mov r2, r0                                    |         r2 = r0;
    0x00039fe0 mov r3, r1                                    |         r3 = r1;
                                                             |         if (ip != 0) {
    0x00039fe4 beq 0x3a008                                   |             
    0x00039fe8 ldr ip, [r7, 0x38]                            |             ip = *((r7 + 0x38));
    0x00039fec ldr r5, [r7, 0x2c]                            |             r5 = *((r7 + 0x2c));
    0x00039ff0 tst ip, 0x800                                 |             
                                                             |             if ((ip & 0x800) == 0) {
    0x00039ff4 beq 0x3a0ec                                   |                 goto label_30;
                                                             |             }
                                                             | label_12:
    0x00039ff8 strd r2, r3, [r5]                             |             __asm ("strd r2, r3, [r5]");
                                                             | label_13:
    0x00039ffc ldr r3, [r7, 0x34]                            |             r3 = *((r7 + 0x34));
    0x0003a000 add r3, r3, 1                                 |             r3++;
    0x0003a004 str r3, [r7, 0x34]                            |             *((r7 + 0x34)) = r3;
                                                             |         }
    0x0003a008 mov r0, r4                                    |         r0 = r4;
    0x0003a00c bl 0x39848                                    |         fcn_00039848 (r0);
    0x0003a010 b 0x39c28                                     |         goto label_2;
                                                             | label_27:
    0x0003a014 cmp r6, 0x10                                  |         
                                                             |         if (r6 == 0x10) {
    0x0003a018 bne 0x3a02c                                   |             
    0x0003a01c ldr r3, [r4]                                  |             r3 = *(r4);
    0x0003a020 orr r3, r3, 0x20                              |             r3 |= 0x20;
    0x0003a024 cmp r3, 0x70                                  |             
                                                             |             if (r3 == 0x70) {
    0x0003a028 beq 0x3a03c                                   |                 goto label_31;
                                                             |             }
                                                             |         }
                                                             | label_26:
    0x0003a02c ldr r3, [r4]                                  |         r3 = *(r4);
    0x0003a030 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0003a034 cmp r3, 0x65                                  |         
    0x0003a038 bne 0x39fbc                                   |         
                                                             |     } while (r3 != 0x65);
                                                             | label_31:
    0x0003a03c ldr r3, [r4]                                  |     r3 = *(r4);
    0x0003a040 mov r0, r4                                    |     r0 = r4;
    0x0003a044 strb r3, [r5]                                 |     *(r5) = r3;
    0x0003a048 bl 0x397c4                                    |     fcn_000397c4 (r0);
    0x0003a04c ldr r3, [r4]                                  |     r3 = *(r4);
    0x0003a050 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x0003a054 blt 0x39e58                                   |         goto label_9;
                                                             |     }
    0x0003a058 sub r2, r3, 0x2b                              |     r2 = r3 - 0x2b;
    0x0003a05c bics r2, r2, 2                                |     __asm ("bics r2, r2, 2");
                                                             |     if (r3 == 0) {
    0x0003a060 addne r5, r5, 1                               |         r5 += var_1h;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0003a064 bne 0x3a07c                                   |         
    0x0003a068 strb r3, [r5, 1]                              |         var_1h_2 = r3;
    0x0003a06c mov r0, r4                                    |         r0 = r4;
    0x0003a070 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x0003a074 add r6, r5, 2                                 |         r6 += var_2h;
    0x0003a078 mov r5, r6                                    |         r5 = r6;
                                                             |     }
    0x0003a07c ldr r3, [r4]                                  |     r3 = *(r4);
    0x0003a080 cmp r3, 0x30                                  |     
                                                             |     if (r3 == 0x30) {
    0x0003a084 movne r6, 0                                   |         r6 = 0;
                                                             |     }
                                                             |     if (r3 != 0x30) {
    0x0003a088 bne 0x3a0b0                                   |         goto label_11;
                                                             |     }
    0x0003a08c add r6, r5, 1                                 |     r6 += var_1h_2;
    0x0003a090 strb r3, [r5]                                 |     *(r5) = r3;
                                                             |     do {
    0x0003a094 mov r0, r4                                    |         r0 = r4;
    0x0003a098 bl 0x397c4                                    |         fcn_000397c4 (r0);
    0x0003a09c ldr r3, [r4]                                  |         r3 = *(r4);
    0x0003a0a0 cmp r3, 0x30                                  |         
    0x0003a0a4 beq 0x3a094                                   |         
                                                             |     } while (r3 == 0x30);
    0x0003a0a8 mov r5, r6                                    |     r5 = r6;
    0x0003a0ac mov r6, 1                                     |     r6 = 1;
                                                             | label_11:
    0x0003a0b0 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0003a0b4 sub r2, r3, 0x30                              |     r2 = r3 - 0x30;
    0x0003a0b8 cmp r2, 9                                     |     
                                                             |     if (r2 < 9) {
    0x0003a0bc bls 0x3a0cc                                   |         goto label_32;
                                                             |     }
    0x0003a0c0 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x0003a0c4 bne 0x39fbc                                   |         goto label_10;
                                                             |     }
    0x0003a0c8 b 0x39e58                                     |     goto label_9;
                                                             | label_32:
    0x0003a0cc cmp r6, 0x13                                  |     
                                                             |     if (r6 > 0x13) {
    0x0003a0d0 addls r6, r6, 1                               |         r6++;
                                                             |     }
                                                             |     if (r6 > 0x13) {
    0x0003a0d4 strbls r3, [r5]                               |         *(r5) = r3;
                                                             |     }
    0x0003a0d8 mov r0, r4                                    |     r0 = r4;
                                                             |     if (r6 > 0x13) {
    0x0003a0dc andls r6, r6, 0xff                            |         r6 &= 0xff;
                                                             |     }
                                                             |     if (r6 > 0x13) {
    0x0003a0e0 addls r5, r5, 1                               |         r5 += var_1h_2;
                                                             |     }
    0x0003a0e4 bl 0x397c4                                    |     fcn_000397c4 (r0);
    0x0003a0e8 b 0x3a0b0                                     |     goto label_11;
                                                             | label_30:
    0x0003a0ec tst ip, 0x400                                 |     
                                                             |     if ((ip & 0x400) != 0) {
    0x0003a0f0 bne 0x39ff8                                   |         goto label_12;
                                                             |     }
    0x0003a0f4 bl 0x71818                                    |     fcn_00071818 (r0, r1);
    0x0003a0f8 str r0, [r5]                                  |     *(r5) = r0;
    0x0003a0fc b 0x39ffc                                     |     goto label_13;
                                                             | }
    ; 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 @ 0x43f34 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00043f34 ()                                  | void fcn_00043f34 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     char * src;
                                                             |     int8_t var_14h_2;
                                                             |     int8_t var_14h_3;
                                                             |     int8_t var_14h_4;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_0h_4;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00043f34 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00043f38 ldr sl, [pc, 0x12c]                           |     sl = *(0x0004406c);
    0x00043f3c ldr fp, [pc, 0x12c]                           |     fp = *(0x00044070);
    0x00043f40 sub sp, sp, 0x2c                              |     
    0x00043f44 mov r4, 0                                     |     r4 = 0;
    0x00043f48 add r3, r0, 3                                 |     r3 = r0 + 3;
    0x00043f4c mov r8, r1                                    |     r8 = r1;
    0x00043f50 sub r7, r0, 1                                 |     r7 = r0 - 1;
    0x00043f54 mov sb, 0x2e                                  |     sb = 0x2e;
    0x00043f58 str r2, [sp, 4]                               |     var_4h = r2;
    0x00043f5c strb r4, [sp, 0x14]                           |     src = r4;
    0x00043f60 str r3, [sp]                                  |     *(sp) = r3;
                                                             |     do {
    0x00043f64 ldrb r3, [r7, 1]!                             |         r3 = *((r7 += 1));
    0x00043f68 add r2, sp, 0x28                              |         r2 += var_28h;
    0x00043f6c umull r0, r1, r3, sl                          |         r0:r1 = r3 * sl;
    0x00043f70 add r2, r2, r4                                |         r2 += r4;
    0x00043f74 lsr r5, r1, 5                                 |         r5 = r1 >> 5;
    0x00043f78 umull r0, r1, r3, fp                          |         r0:r1 = r3 * fp;
    0x00043f7c add r5, r5, 0x30                              |         r5 += 0x30;
    0x00043f80 lsr r0, r1, 3                                 |         r0 = r1 >> 3;
    0x00043f84 and r5, r5, 0xff                              |         r5 &= 0xff;
    0x00043f88 lsl r0, r0, 0x18                              |         r0 <<= 0x18;
    0x00043f8c strb r5, [r2, -0x14]                          |         src = r5;
    0x00043f90 mov r1, 0xa                                   |         r1 = 0xa;
    0x00043f94 asr r0, r0, 0x18                              |         r0 >>= 0x18;
    0x00043f98 str r2, [sp, 0xc]                             |         var_ch = r2;
    0x00043f9c str r3, [sp, 8]                               |         var_8h = r3;
    0x00043fa0 bl 0x70dec                                    |         fcn_00070dec (r0, r1);
    0x00043fa4 cmp r5, 0x30                                  |         
    0x00043fa8 add r6, r4, 1                                 |         r6 = r4 + 1;
    0x00043fac ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00043fb0 ldr r2, [sp, 0xc]                             |         r2 = var_ch;
    0x00043fb4 add r1, r1, 0x30                              |         r1 += 0x30;
    0x00043fb8 and r1, r1, 0xff                              |         r1 &= 0xff;
                                                             |         if (r5 != 0x30) {
    0x00043fbc bne 0x44048                                   |             goto label_1;
                                                             |         }
    0x00043fc0 cmp r1, 0x30                                  |         
                                                             |         if (r1 == 0x30) {
    0x00043fc4 movne r4, r6                                  |             r4 = r6;
                                                             |         }
    0x00043fc8 strb r1, [r2, -0x14]                          |         *((r2 - 0x14)) = r1;
                                                             | label_0:
    0x00043fcc add r2, sp, 0x28                              |         r2 += var_28h;
    0x00043fd0 mov r0, r3                                    |         r0 = r3;
    0x00043fd4 mov r1, 0xa                                   |         r1 = 0xa;
    0x00043fd8 add r6, r2, r4                                |         r6 = r2 + r4;
    0x00043fdc bl 0x70cf0                                    |         fcn_00070cf0 (r0, r1);
    0x00043fe0 add r5, r4, 1                                 |         r5 = r4 + 1;
    0x00043fe4 add r3, sp, 0x28                              |         r3 += var_28h;
    0x00043fe8 add r5, r3, r5                                |         r5 = r3 + r5;
    0x00043fec ldr r3, [sp]                                  |         r3 = *(sp);
    0x00043ff0 add r4, r4, 2                                 |         r4 += 2;
    0x00043ff4 cmp r3, r7                                    |         
    0x00043ff8 add r1, r1, 0x30                              |         r1 += 0x30;
    0x00043ffc strb r1, [r6, -0x14]                          |         var_14h_3 = r1;
    0x00044000 strb sb, [r5, -0x14]                          |         var_14h_4 = sb;
    0x00044004 bne 0x43f64                                   |         
                                                             |     } while (r3 != r7);
    0x00044008 mov r4, 0                                     |     r4 = 0;
    0x0004400c strb r4, [r5, -0x14]                          |     var_14h_4 = r4;
    0x00044010 add r5, sp, 0x14                              |     r5 += src;
    0x00044014 mov r0, r5                                    |     r0 = r5;
    0x00044018 bl 0x3e3c0                                    |     strlen ();
    0x0004401c ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00044020 cmp r0, r3                                    |     
                                                             |     if (r0 < r3) {
    0x00044024 bls 0x4405c                                   |         goto label_2;
                                                             |     }
    0x00044028 ldr r3, [pc, 0x44]                            |     r3 = *(0x44070);
    0x0004402c bl 0x11934                                    |     fcn_00011934 ();
    0x00044030 mov r2, 0x1c                                  |     r2 = 0x1c;
    0x00044034 ldr r3, [pc, r3]                              |     r3 = *(0x0004403c);
    0x00044038 str r2, [r0, r3]                              |     *((r0 + r3)) = r2;
    0x0004403c mov r0, r4                                    |     r0 = r4;
                                                             |     do {
    0x00044040 add sp, sp, 0x2c                              |         
    0x00044044 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_1:
    0x00044048 add r2, sp, 0x28                              |         r2 += var_28h;
    0x0004404c add r6, r2, r6                                |         r6 = r2 + r6;
    0x00044050 add r4, r4, 2                                 |         r4 += 2;
    0x00044054 strb r1, [r6, -0x14]                          |         var_14h_2 = r1;
    0x00044058 b 0x43fcc                                     |         goto label_0;
                                                             | label_2:
    0x0004405c mov r1, r5                                    |         r1 = r5;
    0x00044060 mov r0, r8                                    |         r0 = r8;
    0x00044064 bl 0x3e970                                    |         strcpy (r0, r1)
    0x00044068 b 0x44040                                     |         
                                                             |     } 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 @ 0x44eb0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00044eb0 ()                                  | void fcn_00044eb0 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_6h;
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     void * s1;
                                                             |     void * addr;
                                                             |     char * src;
                                                             |     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_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_58h;
                                                             |     int32_t domain;
                                                             |     void * s2;
                                                             |     int32_t var_7ch;
                                                             |     int32_t var_80h;
                                                             |     int32_t var_84h;
                                                             |     int32_t var_88h;
                                                             |     void * var_8ch;
                                                             |     int32_t var_90h;
                                                             |     int32_t var_94h;
                                                             |     int32_t var_98h;
                                                             |     int32_t var_9ch;
                                                             |     void * s;
                                                             |     int32_t var_a4h;
                                                             |     int32_t var_b0h;
                                                             |     int32_t var_b4h;
                                                             |     int32_t var_bch;
                                                             |     int32_t var_c0h;
                                                             |     int32_t var_c4h;
                                                             |     char * var_d0h;
                                                             |     int32_t var_1d4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00044eb0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00044eb4 mov r4, r3                                    |     r4 = r3;
    0x00044eb8 ldr r3, [pc, 0x794]                           |     r3 = *(0x45650);
    0x00044ebc sub sp, sp, 0x1d4                             |     
    0x00044ec0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00044ec4 mov r6, r0                                    |     r6 = r0;
    0x00044ec8 mov r0, 0x200                                 |     r0 = 0x200;
    0x00044ecc str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00044ed0 str r1, [sp, 0x1c]                            |     var_1ch = r1;
    0x00044ed4 str r2, [sp, 0x2c]                            |     var_2ch = r2;
    0x00044ed8 bl 0x11a90                                    |     r0 = fcn_00011a90 ();
    0x00044edc mov r5, r0                                    |     r5 = r0;
    0x00044ee0 mov r0, r6                                    |     r0 = r6;
    0x00044ee4 bl 0x3e3c0                                    |     strlen ();
    0x00044ee8 ldr r3, [pc, 0x768]                           |     r3 = *(0x45654);
    0x00044eec cmp r0, r3                                    |     
    0x00044ef0 str r0, [sp, 0x18]                            |     src = r0;
                                                             |     if (r0 > r3) {
    0x00044ef4 bhi 0x45644                                   |         goto label_11;
                                                             |     }
    0x00044ef8 add r0, r0, 0x82                              |     r0 += 0x82;
    0x00044efc bl 0x11a90                                    |     fcn_00011a90 ();
    0x00044f00 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00044f04 moveq r7, 1                                   |         r7 = 1;
                                                             |     }
    0x00044f08 str r0, [sp, 0x10]                            |     s1 = r0;
    0x00044f0c clz r0, r0                                    |     r0 &= r0;
    0x00044f10 lsr r0, r0, 5                                 |     r0 >>= 5;
                                                             |     if (r5 == 0) {
    0x00044f14 movne r7, r0                                  |         r7 = r0;
                                                             |     }
    0x00044f18 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00044f1c bne 0x4564c                                   |         goto label_12;
                                                             |     }
    0x00044f20 ldrb r3, [r6]                                 |     r3 = *(r6);
    0x00044f24 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00044f28 beq 0x4564c                                   |         goto label_12;
                                                             |     }
    0x00044f2c ldr r3, [sp, 0x18]                            |     r3 = src;
    0x00044f30 mov r1, 0x2e                                  |     r1 = 0x2e;
    0x00044f34 add r3, r6, r3                                |     r3 = r6 + r3;
    0x00044f38 ldrb r3, [r3, -1]                             |     r3 = *((r3 - 1));
    0x00044f3c mov r0, r6                                    |     r0 = r6;
    0x00044f40 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x00044f44 bl 0x3ef3c                                    |     index ();
    0x00044f48 ldr r2, [sp, 0x18]                            |     r2 = src;
    0x00044f4c mov r1, r6                                    |     r1 = r6;
    0x00044f50 str r0, [sp, 0x38]                            |     var_38h = r0;
    0x00044f54 ldr r0, [sp, 0x10]                            |     r0 = s1;
    0x00044f58 bl 0x3e480                                    |     memcpy (r0, r1, r2);
    0x00044f5c mvn r3, 0                                     |     r3 = ~0;
    0x00044f60 str r7, [sp, 0x28]                            |     var_28h = r7;
    0x00044f64 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00044f68 mov r7, r3                                    |     r7 = r3;
    0x00044f6c ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00044f70 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             | label_0:
    0x00044f74 ldr r2, [sp, 0x30]                            |     r2 = var_30h;
    0x00044f78 ldr r3, [pc, 0x6dc]                           |     r3 = *(0x45658);
    0x00044f7c ldr r6, [pc, 0x6dc]                           |     r6 = *(0x4565c);
    0x00044f80 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00044f84 add r6, pc, r6                                |     r6 = pc + r6;
    0x00044f88 mov r1, r3                                    |     r1 = r3;
    0x00044f8c mov r2, r6                                    |     r2 = r6;
    0x00044f90 add r0, sp, 0xd0                              |     r0 += var_d0h;
    0x00044f94 str r3, [sp, 0x14]                            |     addr = r3;
    0x00044f98 bl 0x11dc0                                    |     fcn_00011dc0 ();
    0x00044f9c mov r0, r6                                    |     r0 = r6;
    0x00044fa0 bl 0x68ab8                                    |     pthread_mutex_lock ();
    0x00044fa4 bl 0x4572c                                    |     fcn_0004572c ();
    0x00044fa8 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00044fac cmp r3, 0xc                                   |     
                                                             |     if (r3 == 0xc) {
    0x00044fb0 ldrne r3, [pc, 0x6ac]                         |         r3 = "U_";
                                                             |     }
                                                             |     if (r3 == 0xc) {
    0x00044fb4 addne r3, pc, r3                              |         r3 = pc + r3;
                                                             |     }
                                                             |     if (r3 == 0xc) {
    0x00044fb8 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 == 0xc) {
    0x00044fbc strne r3, [sp, 0x28]                          |         var_28h = r3;
                                                             |     }
    0x00044fc0 ldr r3, [sp, 0x10]                            |     r3 = s1;
    0x00044fc4 ldr r2, [sp, 0x18]                            |     r2 = src;
    0x00044fc8 ldr r1, [sp, 0x28]                            |     r1 = var_28h;
    0x00044fcc add r2, r3, r2                                |     r2 = r3 + r2;
    0x00044fd0 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00044fd4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00044fd8 movne r3, r7                                  |         r3 = r7;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00044fdc addeq r3, r7, 1                               |         r3 = r7 + 1;
                                                             |     }
    0x00044fe0 cmp r1, r3                                    |     
                                                             |     if (r1 > r3) {
    0x00044fe4 movls r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r1 > r3) {
    0x00044fe8 strbls r3, [r2]                               |         *(r2) = r3;
                                                             |     }
                                                             |     if (r1 >= r3) {
    0x00044fec bls 0x4501c                                   |         
    0x00044ff0 mov r1, 0x2e                                  |         r1 = 0x2e;
    0x00044ff4 strb r1, [r2]                                 |         *(r2) = r1;
    0x00044ff8 ldr r2, [pc, 0x668]                           |         
    0x00044ffc ldr r1, [sp, 0x18]                            |         r1 = src;
    0x00045000 add r2, pc, r2                                |         r2 = pc + r2;
    0x00045004 ldr r2, [r2]                                  |         r2 = "U_";
    0x00045008 add r0, r1, 1                                 |         r0 = r1 + 1;
    0x0004500c ldr r1, [r2, r3, lsl 2]                       |         r1 = "U_";
    0x00045010 ldr r3, [sp, 0x10]                            |         r3 = s1;
    0x00045014 add r0, r3, r0                                |         r0 = r3 + r0;
    0x00045018 bl 0x3e970                                    |         strcpy (r0, r1)
                                                             |     }
    0x0004501c ldr r3, [pc, 0x648]                           |     
    0x00045020 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x00045024 add r3, pc, r3                                |     r3 = pc + r3;
    0x00045028 cmp r2, 0                                     |     
    0x0004502c ldr r3, [r3]                                  |     r3 = *(0x45668);
                                                             |     if (r2 < 0) {
    0x00045030 bge 0x45068                                   |         
    0x00045034 ldr r2, [pc, 0x634]                           |         r2 = *(0x4566c);
    0x00045038 add r2, pc, r2                                |         r2 = pc + r2;
    0x0004503c ldrh r2, [r2]                                 |         r2 = *(r2);
    0x00045040 str r2, [sp, 0x24]                            |         var_24h = r2;
    0x00045044 ldr r2, [pc, 0x628]                           |         
    0x00045048 add r2, pc, r2                                |         r2 = pc + r2;
    0x0004504c ldr r2, [r2]                                  |         r2 = *(0x45670);
    0x00045050 str r2, [sp, 0xc]                             |         var_ch = r2;
    0x00045054 ldr r2, [pc, 0x61c]                           |         r2 = *(0x45674);
    0x00045058 add r2, pc, r2                                |         r2 = pc + r2;
    0x0004505c ldrb r2, [r2]                                 |         r2 = *(r2);
    0x00045060 mul r1, r3, r2                                |         r1 = r3 * r2;
    0x00045064 str r1, [sp, 0x20]                            |         var_20h = r1;
                                                             |     }
    0x00045068 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x0004506c mov fp, 0x1c                                  |     
    0x00045070 cmp r2, r3                                    |     
    0x00045074 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
                                                             |     if (r2 < r3) {
    0x00045078 movhs r2, 0                                   |         r2 = 0;
                                                             |     }
    0x0004507c add r3, r3, 1                                 |     r3++;
    0x00045080 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00045084 lsl r2, r3, 0x10                              |     r2 = r3 << 0x10;
    0x00045088 lsr r2, r2, 0x10                              |     r2 >>= 0x10;
    0x0004508c str r2, [sp, 0x24]                            |     var_24h = r2;
    0x00045090 ldr r2, [pc, 0x5e4]                           |     r2 = *(0x45678);
    0x00045094 add lr, sp, 0x5c                              |     lr += domain;
    0x00045098 add r2, pc, r2                                |     r2 = pc + r2;
    0x0004509c strh r3, [r2]                                 |     *(r2) = r3;
    0x000450a0 ldr r3, [pc, 0x5d8]                           |     r3 = *(0x4567c);
    0x000450a4 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x000450a8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000450ac str r2, [r3]                                  |     *(r3) = r2;
    0x000450b0 ldr r3, [pc, 0x5cc]                           |     r3 = *(0x45680);
    0x000450b4 add r6, sp, 0xa0                              |     r6 += s;
    0x000450b8 ldr ip, [pc, r3]                              |     ip = *(0x000450c0);
    0x000450bc mov r3, r2                                    |     r3 = r2;
    0x000450c0 mla r3, fp, r3, ip                            |     __asm ("mla r3, fp, r3, ip");
    0x000450c4 mov sl, 1                                     |     sl = 1;
    0x000450c8 mov ip, r3                                    |     
    0x000450cc ldm ip!, {r0, r1, r2, r3}                     |     r0 = *(ip!);
                                                             |     r1 = *((ip! + 4));
                                                             |     r2 = *((ip! + 8));
                                                             |     r3 = *((ip! + 12));
    0x000450d0 stm lr!, {r0, r1, r2, r3}                     |     *(lr!) = r0;
                                                             |     *((lr! + 4)) = r1;
                                                             |     *((lr! + 8)) = r2;
                                                             |     *((lr! + 12)) = r3;
    0x000450d4 ldm ip, {r0, r1, r2}                          |     r0 = *(ip);
                                                             |     r1 = *((ip + 4));
                                                             |     r2 = *((ip + 8));
    0x000450d8 stm lr, {r0, r1, r2}                          |     *(lr) = r0;
                                                             |     *((lr + 4)) = r1;
                                                             |     *((lr + 8)) = r2;
    0x000450dc mov r1, 1                                     |     r1 = 1;
    0x000450e0 add r0, sp, 0xd0                              |     r0 += var_d0h;
    0x000450e4 bl 0x11b38                                    |     fcn_00011b38 ();
    0x000450e8 mov r2, 0x200                                 |     r2 = 0x200;
    0x000450ec mov r1, 0                                     |     r1 = 0;
    0x000450f0 mov r0, r5                                    |     r0 = r5;
    0x000450f4 bl 0x3e310                                    |     memset (r0, r1, r2);
    0x000450f8 mov r2, 0x30                                  |     r2 = 0x30;
    0x000450fc mov r1, 0                                     |     r1 = 0;
    0x00045100 mov r0, r6                                    |     r0 = r6;
    0x00045104 bl 0x3e310                                    |     memset (r0, r1, r2);
    0x00045108 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x0004510c mov r2, 0x200                                 |     r2 = 0x200;
    0x00045110 mov r1, r5                                    |     r1 = r5;
    0x00045114 mov r0, r6                                    |     r0 = r6;
    0x00045118 str r3, [sp, 0xa0]                            |     s = r3;
    0x0004511c str sl, [sp, 0xc0]                            |     var_c0h = sl;
    0x00045120 str sl, [sp, 0xb4]                            |     var_b4h = sl;
    0x00045124 bl 0x447c8                                    |     fcn_000447c8 (r0, r1);
    0x00045128 subs r8, r0, 0                                |     r8 -= s;
                                                             |     if (r8 < s) {
    0x0004512c blt 0x4564c                                   |         goto label_12;
                                                             |     }
    0x00045130 ldr r3, [sp, 0x10]                            |     r3 = s1;
    0x00045134 rsb r2, r8, 0x200                             |     r2 = 0x200 - r8;
    0x00045138 str r3, [sp, 0x50]                            |     var_50h = r3;
    0x0004513c ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00045140 add r1, r5, r8                                |     r1 = r5 + r8;
    0x00045144 add r0, sp, 0x50                              |     r0 += var_50h;
    0x00045148 str r3, [sp, 0x54]                            |     var_54h = r3;
    0x0004514c str sl, [sp, 0x58]                            |     var_58h = sl;
    0x00045150 bl 0x44b8c                                    |     fcn_00044b8c (r0, r1);
    0x00045154 subs sb, r0, 0                                |     sb -= var_50h;
                                                             |     if (sb < var_50h) {
    0x00045158 blt 0x4564c                                   |         goto label_12;
                                                             |     }
    0x0004515c add r3, sp, 0x5c                              |     r3 += domain;
    0x00045160 mov r2, 0x11                                  |     r2 = 0x11;
    0x00045164 mov r1, 2                                     |     r1 = 2;
    0x00045168 ldrh r0, [sp, 0x5c]                           |     r0 = domain;
    0x0004516c str r3, [sp, 0x14]                            |     addr = r3;
    0x00045170 bl 0x492e4                                    |     r0 = socket (r0, r1, r2);
    0x00045174 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 < r0) {
    0x00045178 blt 0x45234                                   |         goto label_3;
                                                             |     }
    0x0004517c ldr r3, [sp, 0x14]                            |     r3 = addr;
    0x00045180 mov r2, fp                                    |     r2 = fp;
    0x00045184 mov r1, r3                                    |     r1 = r3;
    0x00045188 bl 0x48c54                                    |     r0 = connect (r0, r1, r2);
    0x0004518c cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00045190 blt 0x45234                                   |         goto label_3;
                                                             |     }
    0x00045194 add r2, r8, sb                                |     r2 = r8 + sb;
    0x00045198 mov r3, 0                                     |     r3 = 0;
    0x0004519c mov r1, r5                                    |     r1 = r5;
    0x000451a0 mov r0, r6                                    |     r0 = r6;
    0x000451a4 bl 0x49034                                    |     send ();
    0x000451a8 ldr r3, [pc, 0x4d8]                           |     r3 = *(0x45684);
    0x000451ac add fp, sp, 0x48                              |     
    0x000451b0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000451b4 ldrb sb, [r3]                                 |     sb = *(r3);
    0x000451b8 mov r3, 0x3e8                                 |     r3 = 0x3e8;
    0x000451bc mul r2, r3, sb                                |     r2 = r3 * sb;
    0x000451c0 mov sb, r2                                    |     sb = r2;
                                                             |     do {
    0x000451c4 mov r2, sb                                    |         r2 = sb;
    0x000451c8 mov r1, 1                                     |         r1 = 1;
    0x000451cc mov r0, fp                                    |         r0 = fp;
    0x000451d0 str r6, [sp, 0x48]                            |         var_48h = r6;
    0x000451d4 strh sl, [fp, 4]                              |         var_4h = sl;
    0x000451d8 bl 0x1447c                                    |         r0 = poll ();
    0x000451dc cmp r0, 0                                     |         
                                                             |         if (r0 <= 0) {
    0x000451e0 ble 0x45234                                   |             goto label_3;
                                                             |         }
    0x000451e4 ldrh r3, [fp, 6]                              |         r3 = var_6h;
    0x000451e8 tst r3, 0x38                                  |         
                                                             |         if ((r3 & 0x38) != 0) {
    0x000451ec bne 0x45234                                   |             goto label_3;
                                                             |         }
    0x000451f0 sub r3, sb, 0x3e8                             |         r3 = sb - 0x3e8;
    0x000451f4 mov sb, r3                                    |         sb = r3;
    0x000451f8 mov r2, 0x200                                 |         r2 = 0x200;
    0x000451fc mov r3, 0x40                                  |         r3 = 0x40;
    0x00045200 mov r1, r5                                    |         r1 = r5;
    0x00045204 mov r0, r6                                    |         r0 = r6;
    0x00045208 bl 0x48e08                                    |         r0 = recv (r0, r1);
    0x0004520c cmp r0, 0xb                                   |         
    0x00045210 str r0, [sp, 0x14]                            |         addr = r0;
                                                             |         if (r0 > 0xb) {
    0x00045214 bgt 0x452a8                                   |             goto label_13;
                                                             |         }
                                                             | label_1:
    0x00045218 ldr r8, [sp, 0x14]                            |         r8 = addr;
    0x0004521c cmp sb, 0                                     |         
    0x00045220 mvn r8, r8                                    |         r8 = ~r8;
    0x00045224 lsr r8, r8, 0x1f                              |         r8 >>= 0x1f;
                                                             |         if (sb != 0) {
    0x00045228 moveq r8, 0                                   |             r8 = 0;
                                                             |         }
    0x0004522c cmp r8, 0                                     |         
    0x00045230 bne 0x451c4                                   |         
                                                             |     } while (r8 != 0);
                                                             | label_3:
    0x00045234 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00045238 mvn r7, 0                                     |     r7 = ~0;
    0x0004523c sub r3, r3, 1                                 |     r3--;
    0x00045240 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00045244 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00045248 add r3, r3, 1                                 |     r3++;
    0x0004524c str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             | label_2:
    0x00045250 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00045254 cmp r3, 0                                     |     
                                                             |     if (r3 <= 0) {
    0x00045258 bgt 0x45294                                   |         
                                                             | label_10:
    0x0004525c ldr r3, [pc, 0x428]                           |         r3 = *(0x45688);
    0x00045260 bl 0x11934                                    |         fcn_00011934 ();
    0x00045264 mvn r2, 0                                     |         r2 = ~0;
    0x00045268 ldr r3, [pc, r3]                              |         r3 = *(0x00045270);
    0x0004526c cmp r6, r2                                    |         
    0x00045270 str r2, [r0, r3]                              |         *((r0 + r3)) = r2;
                                                             |         if (r6 != r2) {
    0x00045274 bne 0x4531c                                   |             goto label_14;
                                                             |         }
                                                             | label_4:
    0x00045278 ldr r0, [sp, 0x10]                            |         r0 = s1;
    0x0004527c bl 0x120a8                                    |         fcn_000120a8 ();
    0x00045280 mov r0, r5                                    |         r0 = r5;
    0x00045284 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00045288 mvn r3, 0                                     |         r3 = ~0;
    0x0004528c str r3, [sp, 0x14]                            |         addr = r3;
    0x00045290 b 0x454b0                                     |         goto label_15;
                                                             |     }
    0x00045294 cmn r6, 1                                     |     
                                                             |     if (r6 == 1) {
    0x00045298 beq 0x44f74                                   |         goto label_0;
                                                             |     }
    0x0004529c mov r0, r6                                    |     r0 = r6;
    0x000452a0 bl 0x15ac8                                    |     close (r0);
    0x000452a4 b 0x44f74                                     |     goto label_0;
                                                             | label_13:
    0x000452a8 add r1, sp, 0xa0                              |     r1 += s;
    0x000452ac mov r0, r5                                    |     r0 = r5;
    0x000452b0 bl 0x448c0                                    |     fcn_000448c0 (r0, r1);
    0x000452b4 ldr r3, [sp, 0xa0]                            |     r3 = s;
    0x000452b8 ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x000452bc cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x000452c0 bne 0x45218                                   |         goto label_1;
                                                             |     }
    0x000452c4 ldr r3, [sp, 0xa4]                            |     r3 = var_a4h;
    0x000452c8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000452cc beq 0x45218                                   |         goto label_1;
                                                             |     }
    0x000452d0 ldr sl, [sp, 0xbc]                            |     sl = var_bch;
    0x000452d4 sub r3, sl, 2                                 |     r3 = sl - 2;
    0x000452d8 cmp r3, 1                                     |     
                                                             |     if (r3 > 1) {
    0x000452dc bhi 0x45328                                   |         goto label_16;
                                                             |     }
    0x000452e0 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000452e4 cmp r3, 0x2e                                  |     
                                                             |     if (r3 == 0x2e) {
    0x000452e8 beq 0x45300                                   |         goto label_17;
                                                             |     }
    0x000452ec ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x000452f0 sub r3, r3, 1                                 |     r3--;
    0x000452f4 cmp r3, r7                                    |     
                                                             |     if (r3 > r7) {
    0x000452f8 addgt r7, r7, 1                               |         r7++;
                                                             |         goto label_18;
                                                             |     }
                                                             |     if (r3 > r7) {
                                                             | label_18:
    0x000452fc bgt 0x45250                                   |         goto label_2;
                                                             |     }
                                                             | label_17:
    0x00045300 cmp sl, 2                                     |     
                                                             |     if (sl == 2) {
    0x00045304 beq 0x45234                                   |         goto label_3;
                                                             |     }
    0x00045308 ldr r3, [pc, 0x380]                           |     r3 = *(0x4568c);
    0x0004530c bl 0x11934                                    |     fcn_00011934 ();
    0x00045310 mov r2, 1                                     |     r2 = 1;
    0x00045314 ldr r3, [pc, r3]                              |     r3 = *(0x0004531c);
                                                             | label_5:
    0x00045318 str r2, [r0, r3]                              |     *((r0 + r3)) = r2;
                                                             | label_14:
    0x0004531c mov r0, r6                                    |     r0 = r6;
    0x00045320 bl 0x15ac8                                    |     close (r0);
    0x00045324 b 0x45278                                     |     goto label_4;
                                                             | label_16:
    0x00045328 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x0004532c bne 0x45234                                   |         goto label_3;
                                                             |     }
    0x00045330 ldr r3, [sp, 0xc4]                            |     r3 = var_c4h;
    0x00045334 cmp r3, 0                                     |     
                                                             |     if (r3 <= 0) {
    0x00045338 ble 0x454bc                                   |         goto label_19;
                                                             |     }
    0x0004533c ldr r7, [sp, 0xc0]                            |     r7 = var_c0h;
    0x00045340 mov ip, sl                                    |     
    0x00045344 mov sb, 0xc                                   |     sb = 0xc;
                                                             | label_6:
    0x00045348 cmp r7, ip                                    |     
                                                             |     if (r7 > ip) {
    0x0004534c bgt 0x454d0                                   |         goto label_20;
                                                             |     }
    0x00045350 mov r3, 0                                     |     r3 = 0;
    0x00045354 str r3, [r4]                                  |     *(r4) = r3;
    0x00045358 add r3, sp, 0xd0                              |     r3 += var_d0h;
    0x0004535c mov fp, 1                                     |     
    0x00045360 mov r8, r3                                    |     r8 = r3;
                                                             | label_9:
    0x00045364 ldr r3, [sp, 0xc4]                            |     r3 = var_c4h;
    0x00045368 cmp r3, sl                                    |     
                                                             |     if (r3 <= sl) {
    0x0004536c ble 0x45484                                   |         goto label_8;
                                                             |     }
    0x00045370 mov r3, 0x100                                 |     r3 = 0x100;
    0x00045374 str r3, [sp]                                  |     *(sp) = r3;
    0x00045378 ldr r2, [sp, 0x14]                            |     r2 = addr;
    0x0004537c mov r3, r8                                    |     r3 = r8;
    0x00045380 mov r1, sb                                    |     r1 = sb;
    0x00045384 mov r0, r5                                    |     r0 = r5;
    0x00045388 bl 0x44a74                                    |     r0 = fcn_00044a74 (r0, r1, r2);
    0x0004538c cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00045390 blt 0x45470                                   |         
    0x00045394 ldr r3, [sp, 0x14]                            |         r3 = addr;
    0x00045398 add r2, r0, 0xa                               |         r2 = r0 + 0xa;
    0x0004539c add r1, sb, r2                                |         r1 = sb + r2;
    0x000453a0 subs r1, r3, r1                               |         r1 = r3 - r1;
    0x000453a4 str r2, [sp, 0x44]                            |         var_44h = r2;
    0x000453a8 str r1, [sp, 0x40]                            |         var_40h = r1;
                                                             |         if (r1 < r3) {
    0x000453ac bmi 0x45470                                   |             goto label_21;
                                                             |         }
    0x000453b0 add r3, sb, r0                                |         r3 = sb + r0;
    0x000453b4 mov r0, r8                                    |         r0 = r8;
    0x000453b8 add r7, r5, r3                                |         r7 = r5 + r3;
    0x000453bc str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x000453c0 bl 0x3f894                                    |         strdup ();
    0x000453c4 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x000453c8 ldrb lr, [r7, 1]                              |         
    0x000453cc ldrb ip, [r5, r3]                             |         ip = *((r5 + r3));
    0x000453d0 ldr r1, [sp, 0x40]                            |         r1 = var_40h;
    0x000453d4 orr lr, ip, lr, lsl 8                         |         lr = ip | (lr << 8);
    0x000453d8 lsr ip, lr, 8                                 |         
    0x000453dc orr ip, ip, lr, lsl 8                         |         
    0x000453e0 lsl ip, ip, 0x10                              |         
    0x000453e4 lsr ip, ip, 0x10                              |         
    0x000453e8 ldrb lr, [r7, 3]                              |         
    0x000453ec str ip, [sp, 0x7c]                            |         var_7ch = ip;
    0x000453f0 ldrb ip, [r7, 2]                              |         ip = *((r7 + 2));
    0x000453f4 add r3, r3, 0xa                               |         r3 += 0xa;
    0x000453f8 orr lr, ip, lr, lsl 8                         |         lr = ip | (lr << 8);
    0x000453fc lsr ip, lr, 8                                 |         
    0x00045400 orr ip, ip, lr, lsl 8                         |         
    0x00045404 lsl ip, ip, 0x10                              |         
    0x00045408 lsr ip, ip, 0x10                              |         
    0x0004540c str ip, [sp, 0x80]                            |         var_80h = ip;
    0x00045410 ldrb ip, [r7, 5]                              |         ip = *((r7 + 5));
    0x00045414 ldrb lr, [r7, 4]                              |         
    0x00045418 lsl ip, ip, 0x10                              |         
    0x0004541c orr ip, ip, lr, lsl 24                        |         
    0x00045420 ldrb lr, [r7, 7]                              |         
    0x00045424 add r7, r7, 0xa                               |         r7 += 0xa;
    0x00045428 orr ip, ip, lr                                |         
    0x0004542c ldrb lr, [r7, -4]                             |         
    0x00045430 str r0, [sp, 0x78]                            |         s2 = r0;
    0x00045434 orr ip, ip, lr, lsl 8                         |         
    0x00045438 str ip, [sp, 0x84]                            |         var_84h = ip;
    0x0004543c ldrb lr, [r7, -1]                             |         
    0x00045440 ldrb ip, [r7, -2]                             |         ip = *((r7 - 2));
    0x00045444 str r3, [sp, 0x90]                            |         var_90h = r3;
    0x00045448 orr ip, ip, lr, lsl 8                         |         
    0x0004544c lsr lr, ip, 8                                 |         lr = ip >> 8;
    0x00045450 orr ip, lr, ip, lsl 8                         |         
    0x00045454 lsl ip, ip, 0x10                              |         
    0x00045458 lsr ip, ip, 0x10                              |         
    0x0004545c cmp r1, ip                                    |         
    0x00045460 str ip, [sp, 0x88]                            |         var_88h = ip;
    0x00045464 str r7, [sp, 0x8c]                            |         var_8ch = r7;
    0x00045468 ldr r2, [sp, 0x44]                            |         r2 = var_44h;
                                                             |         if (r1 >= ip) {
    0x0004546c bge 0x45540                                   |             goto label_22;
                                                             |         }
                                                             |     }
                                                             | label_21:
    0x00045470 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00045474 beq 0x45234                                   |         goto label_3;
                                                             |     }
    0x00045478 ldr r3, [sp, 0xb0]                            |     r3 = var_b0h;
    0x0004547c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00045480 beq 0x45234                                   |         goto label_3;
                                                             |     }
                                                             | label_8:
    0x00045484 mov r0, r6                                    |     r0 = r6;
    0x00045488 bl 0x15ac8                                    |     close (r0);
    0x0004548c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00045490 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00045494 ldrne r3, [sp, 0x2c]                          |         r3 = var_2ch;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00045498 strne r5, [r3]                                |         *(r3) = r5;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0004549c bne 0x454a8                                   |         
    0x000454a0 mov r0, r5                                    |         r0 = r5;
    0x000454a4 bl 0x120a8                                    |         fcn_000120a8 ();
                                                             |     }
    0x000454a8 ldr r0, [sp, 0x10]                            |     r0 = s1;
    0x000454ac bl 0x120a8                                    |     fcn_000120a8 ();
                                                             | label_15:
    0x000454b0 ldr r0, [sp, 0x14]                            |     r0 = addr;
    0x000454b4 add sp, sp, 0x1d4                             |     
    0x000454b8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_19:
    0x000454bc ldr r3, [pc, 0x1d0]                           |     r3 = *(0x45690);
    0x000454c0 bl 0x11934                                    |     fcn_00011934 ();
    0x000454c4 mov r2, 4                                     |     r2 = 4;
    0x000454c8 ldr r3, [pc, r3]                              |     r3 = *(0x000454d0);
    0x000454cc b 0x45318                                     |     goto label_5;
                                                             | label_20:
    0x000454d0 ldr r3, [sp, 0x14]                            |     r3 = addr;
    0x000454d4 adds lr, r5, sb                               |     lr = r5 + sb;
    0x000454d8 sub r2, r3, sb                                |     r2 = r3 - sb;
                                                             |     if (lr == r5) {
    0x000454dc beq 0x45234                                   |         goto label_3;
                                                             |     }
    0x000454e0 mov r0, lr                                    |     r0 = lr;
                                                             | label_7:
    0x000454e4 cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x000454e8 ble 0x45234                                   |         goto label_3;
                                                             |     }
    0x000454ec ldrb r1, [r0]                                 |     r1 = *(r0);
    0x000454f0 add r3, r0, 1                                 |     r3 = r0 + 1;
    0x000454f4 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x000454f8 beq 0x45510                                   |         
    0x000454fc and fp, r1, 0xc0                              |         
    0x00045500 cmp fp, 0xc0                                  |         
                                                             |         if (fp != 0xc0) {
    0x00045504 bne 0x45530                                   |             goto label_23;
                                                             |         }
    0x00045508 add r3, r0, 2                                 |         r3 = r0 + 2;
    0x0004550c sub r2, r2, 2                                 |         r2 -= 2;
                                                             |     }
    0x00045510 cmp r2, 3                                     |     
                                                             |     if (r2 <= 3) {
    0x00045514 ble 0x45234                                   |         goto label_3;
                                                             |     }
    0x00045518 sub r3, r3, lr                                |     r3 -= lr;
    0x0004551c adds r3, r3, 4                                |     r3 += 4;
                                                             |     if (r3 < r3) {
    0x00045520 bmi 0x45234                                   |         goto label_3;
                                                             |     }
    0x00045524 add sb, sb, r3                                |     sb += r3;
    0x00045528 add ip, ip, 1                                 |     
    0x0004552c b 0x45348                                     |     goto label_6;
                                                             | label_23:
    0x00045530 sub r2, r2, 1                                 |     r2--;
    0x00045534 add r0, r3, r1                                |     r0 = r3 + r1;
    0x00045538 sub r2, r2, r1                                |     r2 -= r1;
    0x0004553c b 0x454e4                                     |     goto label_7;
                                                             | label_22:
    0x00045540 add r2, r2, ip                                |     r2 += ip;
    0x00045544 cmp fp, 0                                     |     
    0x00045548 add sb, sb, r2                                |     sb += r2;
                                                             |     if (fp == 0) {
    0x0004554c bne 0x45580                                   |         
    0x00045550 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00045554 ldr r3, [sp, 0x7c]                            |         r3 = var_7ch;
    0x00045558 ldr r2, [sp, 0x1c]                            |         r2 = var_1ch;
    0x0004555c cmp r3, r2                                    |         
                                                             |         if (r3 != r2) {
    0x00045560 bne 0x45618                                   |             goto label_24;
                                                             |         }
    0x00045564 ldr r2, [r4, 0x10]                            |         r2 = *((r4 + 0x10));
    0x00045568 ldr r3, [sp, 0x88]                            |         r3 = var_88h;
    0x0004556c cmp r2, r3                                    |         
                                                             |         if (r2 == r3) {
    0x00045570 beq 0x45620                                   |             goto label_25;
                                                             |         }
    0x00045574 ldr r0, [r4]                                  |         r0 = *(r4);
    0x00045578 bl 0x120a8                                    |         fcn_000120a8 ();
    0x0004557c b 0x45234                                     |         goto label_3;
                                                             |     }
    0x00045580 ldr r3, [r4, 0x1c]                            |     r3 = *((r4 + 0x1c));
    0x00045584 ldr r0, [r4]                                  |     r0 = *(r4);
    0x00045588 str r3, [sp, 0x94]                            |     var_94h = r3;
    0x0004558c ldr r3, [r4, 0x20]                            |     r3 = *((r4 + 0x20));
    0x00045590 str r3, [sp, 0x98]                            |     var_98h = r3;
    0x00045594 ldr r3, [r4, 0x24]                            |     r3 = *((r4 + 0x24));
    0x00045598 str r3, [sp, 0x9c]                            |     var_9ch = r3;
    0x0004559c bl 0x120a8                                    |     fcn_000120a8 ();
    0x000455a0 mov r2, 0x28                                  |     r2 = 0x28;
    0x000455a4 add r1, sp, 0x78                              |     r1 += s2;
    0x000455a8 mov r0, r4                                    |     r0 = r4;
    0x000455ac bl 0x3e480                                    |     memcpy (r0, r1, r2);
    0x000455b0 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x000455b4 cmp r3, 0x18                                  |     
                                                             |     if (r3 == 0x18) {
    0x000455b8 beq 0x455d8                                   |         goto label_26;
                                                             |     }
    0x000455bc ldr r2, [r4, 0x1c]                            |     r2 = *((r4 + 0x1c));
    0x000455c0 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000455c4 beq 0x45484                                   |         goto label_8;
                                                             |     }
    0x000455c8 ldr r2, [sp, 0x1c]                            |     r2 = var_1ch;
    0x000455cc cmp r2, 1                                     |     
    0x000455d0 cmpne r2, 0x1c                                |     __asm ("cmpne r2, 0x1c");
                                                             |     if (r2 != 1) {
    0x000455d4 bne 0x45484                                   |         goto label_8;
                                                             |     }
                                                             | label_26:
    0x000455d8 ldr r2, [sp, 0x1c]                            |     r2 = var_1ch;
    0x000455dc cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x000455e0 bne 0x45618                                   |         goto label_24;
                                                             |     }
    0x000455e4 ldr r3, [sp, 0xc4]                            |     r3 = var_c4h;
    0x000455e8 ldr r2, [r4, 0x10]                            |     r2 = *((r4 + 0x10));
    0x000455ec sub r3, r3, sl                                |     r3 -= sl;
    0x000455f0 sub r1, r3, 1                                 |     r1 = r3 - 1;
    0x000455f4 add r2, r2, 4                                 |     r2 += 4;
    0x000455f8 mul r3, r2, r1                                |     r3 = r2 * r1;
    0x000455fc ldr r2, [r4, 0x20]                            |     r2 = *((r4 + 0x20));
    0x00045600 str r1, [r4, 0x24]                            |     *((r4 + 0x24)) = r1;
    0x00045604 cmp r3, r2                                    |     
                                                             |     if (r3 > r2) {
    0x00045608 bhi 0x45484                                   |         goto label_8;
                                                             |     }
    0x0004560c mov r3, 0                                     |     r3 = 0;
    0x00045610 mov fp, r3                                    |     
    0x00045614 str r3, [r4, 0x24]                            |     *((r4 + 0x24)) = r3;
                                                             |     do {
                                                             | label_24:
    0x00045618 add sl, sl, 1                                 |         sl++;
    0x0004561c b 0x45364                                     |         goto label_9;
                                                             | label_25:
    0x00045620 ldr r3, [r4, 0x1c]                            |         r3 = *((r4 + 0x1c));
    0x00045624 ldr ip, [r4, 0x24]                            |         ip = *((r4 + 0x24));
    0x00045628 ldr r1, [sp, 0x8c]                            |         r1 = var_8ch;
    0x0004562c mla r0, r2, ip, r3                            |         __asm ("mla r0, r2, ip, r3");
    0x00045630 bl 0x3e480                                    |         memcpy (r0, r1, r2);
    0x00045634 ldr r3, [r4, 0x24]                            |         r3 = *((r4 + 0x24));
    0x00045638 add r3, r3, 1                                 |         r3++;
    0x0004563c str r3, [r4, 0x24]                            |         *((r4 + 0x24)) = r3;
    0x00045640 b 0x45618                                     |         
                                                             |     } while (1);
                                                             | label_11:
    0x00045644 mov r3, 0                                     |     r3 = 0;
    0x00045648 str r3, [sp, 0x10]                            |     s1 = r3;
                                                             | label_12:
    0x0004564c mvn r6, 0                                     |     r6 = ~0;
    0x00045650 b 0x4525c                                     |     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 @ 0x3531c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.ctermid ()               | void ctermid (uint32_t arg1) {
                                         |     r0 = arg1;
    0x0003531c cmp r0, 0                 |     
                                         |     if (r0 != 0) {
    0x00035320 ldreq r0, [pc, 0xc]       |         r0 = *((pc + 0xc));
                                         |     }
                                         |     if (r0 != 0) {
    0x00035324 addeq r0, pc, r0          |         r0 = pc + r0;
                                         |     }
    0x00035328 ldr r1, [pc, 8]           |     r1 = *(0x35334);
    0x0003532c add r1, pc, r1            |     r1 = pc + r1;
    0x00035330 b 0x3e970                 |     return void (*0x3e970)() ();
                                         | }
    ; 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 @ 0x4fae0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.cuserid ()                   | void cuserid (int32_t arg1) {
                                             |     r0 = arg1;
    0x0004fae0 push {r4, lr}                 |     
    0x0004fae4 mov r4, r0                    |     r4 = r0;
    0x0004fae8 bl 0x4fa88                    |     getlogin ();
    0x0004faec cmp r4, 0                     |     
    0x0004faf0 popeq {r4, pc}                |     
    0x0004faf4 cmp r0, 0                     |     
    0x0004faf8 mov r1, r0                    |     r1 = r0;
                                             |     if (r0 != 0) {
    0x0004fafc ldreq r1, [pc, 0xc]           |         r1 = *((pc + 0xc));
                                             |     }
                                             |     if (r0 != 0) {
    0x0004fb00 addeq r1, pc, r1              |         r1 = pc + r1;
                                             |     }
    0x0004fb04 mov r0, r4                    |     r0 = r4;
    0x0004fb08 pop {r4, lr}                  |     
    0x0004fb0c b 0x3e970                     |     return void (*0x3e970)() ();
                                             | }
    ; 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 @ 0x496d8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.ether_ntohost ()                         | void ether_ntohost (int32_t arg1, int32_t arg2) {
                                                         |     void * s2;
                                                         |     char * src;
                                                         |     int32_t var_108h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000496d8 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x000496dc mov r8, r0                                |     r8 = r0;
    0x000496e0 mov sb, r1                                |     sb = r1;
    0x000496e4 ldr r0, [pc, 0x94]                        |     r0 = *(0x4977c);
    0x000496e8 ldr r1, [pc, 0x94]                        |     r1 = *(0x49780);
    0x000496ec sub sp, sp, 0x108                         |     
    0x000496f0 add r1, pc, r1                            |     r1 = pc + r1;
    0x000496f4 add r0, pc, r0                            |     r0 = pc + r0;
    0x000496f8 bl 0x33c58                                |     r0 = fopen (r0, r1);
    0x000496fc subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 == r0) {
    0x00049700 addne r6, sp, 8                           |         r6 += src;
                                                         |     }
                                                         |     if (r5 == r0) {
    0x00049704 movne r7, sp                              |         r7 = sp;
                                                         |     }
                                                         |     if (r5 != r0) {
    0x00049708 bne 0x49760                               |         goto label_1;
                                                         |     }
    0x0004970c mvn r4, 0                                 |     r4 = ~0;
    0x00049710 b 0x49754                                 |     
                                                         |     while (r0 != 0) {
    0x00049714 mov r1, r7                                |         r1 = r7;
    0x00049718 mov r0, r6                                |         r0 = r6;
    0x0004971c bl 0x4962c                                |         fcn_0004962c (r0, r1);
    0x00049720 subs sl, r0, 0                            |         sl -= src;
                                                         |         if (sl != src) {
    0x00049724 beq 0x49760                               |             
    0x00049728 mov r2, 6                                 |             r2 = 6;
    0x0004972c mov r1, r7                                |             r1 = r7;
    0x00049730 mov r0, sb                                |             r0 = sb;
    0x00049734 bl 0x3e450                                |             r0 = memcmp ();
    0x00049738 subs r4, r0, 0                            |             r4 = r0 - 0;
                                                         |             if (r4 != r0) {
    0x0004973c bne 0x49760                               |                 goto label_1;
                                                         |             }
    0x00049740 mov r1, sl                                |             r1 = sl;
    0x00049744 mov r0, r8                                |             r0 = r8;
    0x00049748 bl 0x3e970                                |             strcpy (r0, r1)
                                                         | label_0:
    0x0004974c mov r0, r5                                |             r0 = r5;
    0x00049750 bl 0x334ac                                |             fclose (r0);
    0x00049754 mov r0, r4                                |             r0 = r4;
    0x00049758 add sp, sp, 0x108                         |             
    0x0004975c pop {r4, r5, r6, r7, r8, sb, sl, pc}      |             
                                                         |         }
                                                         | label_1:
    0x00049760 mov r2, r5                                |         r2 = r5;
    0x00049764 mov r1, 0x100                             |         r1 = 0x100;
    0x00049768 mov r0, r6                                |         r0 = r6;
    0x0004976c bl 0x3c144                                |         r0 = fgets (r0, r1, r2);
    0x00049770 cmp r0, 0                                 |         
    0x00049774 bne 0x49714                               |         
                                                         |     }
    0x00049778 mvn r4, 0                                 |     r4 = ~0;
    0x0004977c b 0x4974c                                 |     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 @ 0x15410 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.getdomainname ()         | void getdomainname (int32_t arg1, int32_t arg2) {
                                         |     int32_t var_0h;
                                         |     int32_t var_144h;
                                         |     char * src;
                                         |     int32_t var_1h_2;
                                         |     int32_t var_188h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00015410 push {r4, r5, r6, lr}     |     
    0x00015414 sub sp, sp, 0x188         |     
    0x00015418 mov r5, r0                |     r5 = r0;
    0x0001541c mov r0, sp                |     r0 = sp;
    0x00015420 mov r6, r1                |     r6 = r1;
    0x00015424 bl 0x135cc                |     r0 = uname ();
    0x00015428 cmn r0, 1                 |     
                                         |     if (r0 == 1) {
    0x0001542c beq 0x15464               |         goto label_0;
                                         |     }
    0x00015430 add r4, sp, 0x144         |     r4 += var_144h;
    0x00015434 add r4, r4, 1             |     r4 += src;
    0x00015438 mov r0, r4                |     r0 = r4;
    0x0001543c bl 0x3e3c0                |     strlen ();
    0x00015440 add r0, r0, 1             |     r0 += var_1h_2;
    0x00015444 cmp r0, r6                |     
                                         |     if (r0 < r6) {
    0x00015448 bls 0x1546c               |         goto label_1;
                                         |     }
    0x0001544c ldr r3, [pc, 0x2c]        |     r3 = *(0x1547c);
    0x00015450 bl 0x11934                |     fcn_00011934 ();
    0x00015454 mov r2, 0x16              |     r2 = 0x16;
    0x00015458 ldr r3, [pc, r3]          |     r3 = *(0x00015460);
    0x0001545c str r2, [r0, r3]          |     *((r0 + r3)) = r2;
    0x00015460 mvn r0, 0                 |     r0 = ~0;
                                         |     do {
                                         | label_0:
    0x00015464 add sp, sp, 0x188         |         
    0x00015468 pop {r4, r5, r6, pc}      |         
                                         | label_1:
    0x0001546c mov r1, r4                |         r1 = r4;
    0x00015470 mov r0, r5                |         r0 = r5;
    0x00015474 bl 0x3e970                |         strcpy (r0, r1)
    0x00015478 mov r0, 0                 |         r0 = 0;
    0x0001547c b 0x15464                 |         
                                         |     } 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 @ 0x4631c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.gethostbyaddr_r ()                           | void gethostbyaddr_r (int32_t arg_78h, int32_t arg_7ch, int32_t arg_80h, int32_t arg_84h, int32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     char * format;
                                                             |     int32_t var_24h;
                                                             |     char * src;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_54h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0004631c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00046320 sub sp, sp, 0x54                              |     
    0x00046324 ldr lr, [sp, 0x80]                            |     
    0x00046328 mov ip, 0                                     |     
    0x0004632c subs r4, r0, 0                                |     r4 -= arg_78h;
    0x00046330 ldr sb, [sp, 0x78]                            |     sb = *(arg_78h);
    0x00046334 ldr r7, [sp, 0x7c]                            |     r7 = *(arg_7ch);
    0x00046338 ldr fp, [sp, 0x84]                            |     fp = *(arg_84h);
    0x0004633c str ip, [lr]                                  |     *(lr) = ip;
                                                             |     if (r4 == arg_78h) {
    0x00046340 beq 0x46354                                   |         goto label_6;
                                                             |     }
    0x00046344 cmp r2, 2                                     |     
                                                             |     if (r2 == 2) {
    0x00046348 beq 0x4635c                                   |         goto label_7;
                                                             |     }
    0x0004634c cmp r2, 0xa                                   |     
                                                             |     if (r2 == 0xa) {
    0x00046350 beq 0x4647c                                   |         goto label_8;
                                                             |     }
                                                             |     do {
                                                             | label_6:
    0x00046354 mov r0, 0x16                                  |         r0 = 0x16;
    0x00046358 b 0x4650c                                     |         goto label_4;
                                                             | label_7:
    0x0004635c cmp r1, 4                                     |         
                                                             | label_0:
    0x00046360 bne 0x46354                                   |         
                                                             |     } while (r1 != 4);
    0x00046364 mov r5, r3                                    |     r5 = r3;
    0x00046368 ldr r3, [sp, 0x80]                            |     r3 = *(arg_80h);
    0x0004636c str fp, [sp, 0xc]                             |     var_ch = fp;
    0x00046370 str r3, [sp, 8]                               |     var_8h = r3;
    0x00046374 str r7, [sp, 4]                               |     var_4h = r7;
    0x00046378 str sb, [sp]                                  |     *(sp) = sb;
    0x0004637c mov r3, r5                                    |     r3 = r5;
    0x00046380 mov r0, r4                                    |     r0 = r4;
    0x00046384 str r2, [sp, 0x18]                            |     var_18h = r2;
    0x00046388 mov r6, r1                                    |     r6 = r1;
    0x0004638c bl 0x46254                                    |     r0 = fcn_00046254 (r0, r1, r2, r3, r4, r5);
    0x00046390 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00046394 beq 0x4650c                                   |         goto label_4;
                                                             |     }
    0x00046398 ldr r3, [fp]                                  |     r3 = *(fp);
    0x0004639c cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x000463a0 beq 0x463ac                                   |         
    0x000463a4 cmp r3, 4                                     |         
                                                             |         if (r3 != 4) {
    0x000463a8 bne 0x4650c                                   |             goto label_4;
                                                             |         }
                                                             |     }
    0x000463ac mvn r3, 0                                     |     r3 = ~0;
    0x000463b0 cmp r6, 0x10                                  |     
    0x000463b4 str r3, [fp]                                  |     *(fp) = r3;
                                                             |     if (r6 > 0x10) {
    0x000463b8 bhi 0x465ac                                   |         goto label_9;
                                                             |     }
    0x000463bc rsb r3, sb, 0                                 |     r3 = sb - ;
    0x000463c0 and r3, r3, 3                                 |     r3 &= 3;
    0x000463c4 sub r7, r7, 0x18                              |     r7 -= 0x18;
    0x000463c8 sub r2, r7, r3                                |     r2 = r7 - r3;
    0x000463cc cmp r2, 0xff                                  |     
    0x000463d0 str r2, [sp, 0x14]                            |     var_14h = r2;
                                                             |     if (r2 <= 0xff) {
    0x000463d4 ble 0x465ac                                   |         goto label_9;
                                                             |     }
    0x000463d8 add r8, sb, r3                                |     r8 = sb + r3;
    0x000463dc add r0, r8, 8                                 |     r0 = r8 + 8;
    0x000463e0 str r0, [sb, r3]                              |     *((sb + r3)) = r0;
    0x000463e4 mov r3, 0                                     |     r3 = 0;
    0x000463e8 str r3, [r8, 4]                               |     *((r8 + 4)) = r3;
    0x000463ec mov r2, r6                                    |     r2 = r6;
    0x000463f0 mov r1, r4                                    |     r1 = r4;
    0x000463f4 bl 0x3e480                                    |     memcpy (r0, r1, r2);
    0x000463f8 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000463fc add r7, r8, 0x18                              |     r7 = r8 + 0x18;
    0x00046400 cmp r3, 2                                     |     
                                                             |     if (r3 == 2) {
    0x00046404 bne 0x46484                                   |         
    0x00046408 ldrb r1, [r4]                                 |         r1 = *(r4);
    0x0004640c ldrb r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x00046410 ldrb r2, [r4, 3]                              |         r2 = *((r4 + 3));
    0x00046414 str r1, [sp, 4]                               |         var_4h = r1;
    0x00046418 ldrb r1, [r4, 1]                              |         r1 = *((r4 + 1));
    0x0004641c mov r0, r7                                    |         r0 = r7;
    0x00046420 str r1, [sp]                                  |         *(sp) = r1;
    0x00046424 ldr r1, [pc, 0x188]                           |         r1 = *(0x465b0);
    0x00046428 add r1, pc, r1                                |         r1 = pc + r1;
    0x0004642c bl 0x34d3c                                    |         sprintf ();
                                                             | label_1:
    0x00046430 add sb, sp, 0x28                              |         sb += src;
    0x00046434 mov r2, 0x28                                  |         r2 = 0x28;
    0x00046438 mov r1, 0                                     |         r1 = 0;
    0x0004643c mov r0, sb                                    |         r0 = sb;
    0x00046440 bl 0x3e310                                    |         memset (r0, r1, r2);
    0x00046444 mov sl, 6                                     |         sl = 6;
    0x00046448 add r3, sp, 0x24                              |         r3 += var_24h;
    0x0004644c str r3, [sp, 0x1c]                            |         format = r3;
                                                             | label_2:
    0x00046450 mov r3, sb                                    |         r3 = sb;
    0x00046454 ldr r2, [sp, 0x1c]                            |         r2 = format;
    0x00046458 mov r1, 0xc                                   |         r1 = 0xc;
    0x0004645c mov r0, r7                                    |         r0 = r7;
    0x00046460 bl 0x44eb0                                    |         r0 = fcn_00044eb0 (r0, r1);
    0x00046464 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 >= r0) {
    0x00046468 bge 0x464d4                                   |             goto label_10;
                                                             |         }
    0x0004646c mov r3, 1                                     |         r3 = 1;
                                                             | label_5:
    0x00046470 str r3, [fp]                                  |         *(fp) = r3;
    0x00046474 mov r0, 2                                     |         r0 = 2;
    0x00046478 b 0x4650c                                     |         goto label_4;
                                                             | label_8:
    0x0004647c cmp r1, 0x10                                  |         
    0x00046480 b 0x46360                                     |         goto label_0;
                                                             |     }
    0x00046484 ldr r3, [pc, 0x12c]                           |     r3 = *(0x465b4);
    0x00046488 sub sb, r6, 1                                 |     sb = r6 - 1;
    0x0004648c add r3, pc, r3                                |     r3 = pc + r3;
    0x00046490 add sb, r4, sb                                |     sb = r4 + sb;
    0x00046494 mov sl, r7                                    |     sl = r7;
    0x00046498 str r3, [sp, 0x1c]                            |     format = r3;
                                                             |     do {
    0x0004649c ldrb r2, [sb], -1                             |         r2 = *(sb);
                                                             |         sb += -1;
    0x000464a0 mov r0, sl                                    |         r0 = sl;
    0x000464a4 lsr r3, r2, 4                                 |         r3 = r2 >> 4;
    0x000464a8 ldr r1, [sp, 0x1c]                            |         r1 = format;
    0x000464ac and r2, r2, 0xf                               |         r2 &= 0xf;
    0x000464b0 bl 0x34d3c                                    |         sprintf ();
    0x000464b4 cmp r4, sb                                    |         
    0x000464b8 add sl, sl, r0                                |         sl += r0;
    0x000464bc bls 0x4649c                                   |         
                                                             |     } while (r4 < sb);
    0x000464c0 ldr r1, [pc, 0xf4]                            |     r1 = *(0x465b8);
    0x000464c4 mov r0, sl                                    |     r0 = sl;
    0x000464c8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000464cc bl 0x3e970                                    |     strcpy (r0, r1)
    0x000464d0 b 0x46430                                     |     goto label_1;
                                                             | label_10:
    0x000464d4 ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x000464d8 ldr r1, [sp, 0x28]                            |     r1 = src;
    0x000464dc mov r0, r7                                    |     r0 = r7;
    0x000464e0 bl 0x3ed10                                    |     strncpy ();
    0x000464e4 ldr r0, [sp, 0x28]                            |     r0 = src;
    0x000464e8 bl 0x120a8                                    |     fcn_000120a8 ();
    0x000464ec ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x000464f0 cmp r3, 5                                     |     
                                                             |     if (r3 != 5) {
    0x000464f4 bne 0x46548                                   |         goto label_11;
                                                             |     }
    0x000464f8 subs sl, sl, 1                                |     sl--;
                                                             |     if (sl == sl) {
    0x000464fc bne 0x46514                                   |         
                                                             | label_3:
    0x00046500 mov r3, 3                                     |         r3 = 3;
    0x00046504 mvn r0, 0                                     |         r0 = ~0;
    0x00046508 str r3, [fp]                                  |         *(fp) = r3;
                                                             | label_4:
    0x0004650c add sp, sp, 0x54                              |         
    0x00046510 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00046514 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00046518 mov r2, r4                                    |     r2 = r4;
    0x0004651c str r3, [sp]                                  |     *(sp) = r3;
    0x00046520 ldr r1, [sp, 0x40]                            |     r1 = var_40h;
    0x00046524 mov r3, r7                                    |     r3 = r7;
    0x00046528 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x0004652c bl 0x44a74                                    |     r0 = fcn_00044a74 (r0, r1, r2);
    0x00046530 mov r4, r0                                    |     r4 = r0;
    0x00046534 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x00046538 bl 0x120a8                                    |     fcn_000120a8 ();
    0x0004653c cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00046540 bge 0x46450                                   |         goto label_2;
                                                             |     }
    0x00046544 b 0x46500                                     |     goto label_3;
                                                             | label_11:
    0x00046548 cmp r3, 0xc                                   |     
    0x0004654c ldr r0, [sp, 0x24]                            |     r0 = var_24h;
                                                             |     if (r3 == 0xc) {
    0x00046550 bne 0x465a0                                   |         
    0x00046554 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00046558 mov r2, r4                                    |         r2 = r4;
    0x0004655c str r3, [sp]                                  |         *(sp) = r3;
    0x00046560 ldr r1, [sp, 0x40]                            |         r1 = var_40h;
    0x00046564 mov r3, r7                                    |         r3 = r7;
    0x00046568 bl 0x44a74                                    |         fcn_00044a74 (r0, r1, r2);
    0x0004656c ldr r0, [sp, 0x24]                            |         r0 = var_24h;
    0x00046570 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00046574 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00046578 mov r0, 0                                     |         r0 = 0;
    0x0004657c str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x00046580 ldr r3, [sp, 0x80]                            |         r3 = *(arg_80h);
    0x00046584 str r7, [r5]                                  |         *(r5) = r7;
    0x00046588 str r6, [r5, 0xc]                             |         *((r5 + 0xc)) = r6;
    0x0004658c str r8, [r5, 0x10]                            |         *((r5 + 0x10)) = r8;
    0x00046590 str r8, [r5, 4]                               |         *((r5 + 4)) = r8;
    0x00046594 str r5, [r3]                                  |         *(r3) = r5;
    0x00046598 str r0, [fp]                                  |         *(fp) = r0;
    0x0004659c b 0x4650c                                     |         goto label_4;
                                                             |     }
    0x000465a0 bl 0x120a8                                    |     fcn_000120a8 ();
    0x000465a4 mov r3, 4                                     |     r3 = 4;
    0x000465a8 b 0x46470                                     |     goto label_5;
                                                             | label_9:
    0x000465ac mov r0, 0x22                                  |     r0 = 0x22;
    0x000465b0 b 0x4650c                                     |     goto label_4;
                                                             | }
    ; 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 @ 0x468ec */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.gethostbyname2_r ()                          | void gethostbyname2_r (int32_t arg_78h, int32_t arg_7ch, int32_t arg_80h, int32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_38h;
                                                             |     void * s2;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_54h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000468ec push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000468f0 cmp r1, 2                                     |     
    0x000468f4 sub sp, sp, 0x54                              |     
    0x000468f8 mov r5, r2                                    |     r5 = r2;
    0x000468fc mov r7, r3                                    |     r7 = r3;
    0x00046900 ldr sb, [sp, 0x78]                            |     sb = *(arg_78h);
                                                             |     if (r1 != 2) {
    0x00046904 bne 0x46938                                   |         goto label_2;
                                                             |     }
    0x00046908 ldr r3, [sp, 0x80]                            |     r3 = *(arg_80h);
    0x0004690c mov r2, r7                                    |     r2 = r7;
    0x00046910 str r3, [sp, 4]                               |     var_4h = r3;
    0x00046914 ldr r3, [sp, 0x7c]                            |     r3 = *(arg_7ch);
    0x00046918 mov r1, r5                                    |     r1 = r5;
    0x0004691c str r3, [sp]                                  |     *(sp) = r3;
    0x00046920 mov r3, sb                                    |     r3 = sb;
    0x00046924 bl 0x465c0                                    |     r0 = gethostbyname_r ();
    0x00046928 mov r4, r0                                    |     r4 = r0;
                                                             |     do {
                                                             | label_0:
    0x0004692c mov r0, r4                                    |         r0 = r4;
    0x00046930 add sp, sp, 0x54                              |         
    0x00046934 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_2:
    0x00046938 subs r1, r1, 0xa                              |         r1 -= 0xa;
    0x0004693c mov r8, r0                                    |         r8 = r0;
    0x00046940 mov r0, 0                                     |         r0 = 0;
                                                             |         if (r1 == r1) {
    0x00046944 movne r1, 1                                   |             r1 = 1;
                                                             |         }
    0x00046948 ldr ip, [sp, 0x7c]                            |         ip = *(arg_7ch);
    0x0004694c cmp r8, r0                                    |         
                                                             |         if (r8 == r0) {
    0x00046950 movne r6, r1                                  |             r6 = r1;
                                                             |         }
                                                             |         if (r8 != r0) {
    0x00046954 moveq r6, 1                                   |             r6 = 1;
                                                             |         }
    0x00046958 cmp r6, r0                                    |         
    0x0004695c str r0, [ip]                                  |         *(ip) = r0;
                                                             |         if (r6 == r0) {
    0x00046960 movne r4, 0x16                                |             r4 = 0x16;
                                                             |         }
    0x00046964 bne 0x4692c                                   |         
                                                             |     } while (r6 != r0);
    0x00046968 ldr r1, [pc, 0x2e4]                           |     r1 = *(0x46c50);
    0x0004696c bl 0x11934                                    |     r0 = fcn_00011934 ();
    0x00046970 mov sl, r0                                    |     sl = r0;
    0x00046974 ldr r1, [pc, r1]                              |     r1 = *(0x0004697c);
    0x00046978 ldr fp, [r0, r1]                              |     fp = *((r0 + r1));
    0x0004697c ldr r1, [pc, 0x2d4]                           |     r1 = *(0x46c54);
    0x00046980 ldr r1, [pc, r1]                              |     r1 = *(0x00046988);
    0x00046984 str r6, [r0, r1]                              |     *((r0 + r1)) = r6;
    0x00046988 ldr r1, [sp, 0x80]                            |     r1 = *(arg_80h);
    0x0004698c str sb, [sp]                                  |     *(sp) = sb;
    0x00046990 str r1, [sp, 8]                               |     var_8h = r1;
    0x00046994 ldr r1, [sp, 0x7c]                            |     r1 = *(arg_7ch);
    0x00046998 mov r0, r8                                    |     r0 = r8;
    0x0004699c str r1, [sp, 4]                               |     var_4h = r1;
    0x000469a0 mov r1, 0xa                                   |     r1 = 0xa;
    0x000469a4 bl 0x462e4                                    |     r0 = fcn_000462e4 (r0, r1, r2, r3, r4);
    0x000469a8 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x000469ac ldreq r3, [pc, 0x2a8]                         |         r3 = *((pc + 0x2a8));
                                                             |     }
                                                             |     if (r4 != r0) {
    0x000469b0 ldreq r3, [pc, r3]                            |         r3 = *(0x000469b8);
                                                             |     }
                                                             |     if (r4 == r0) {
    0x000469b4 streq fp, [sl, r3]                            |         *((sl + r3)) = fp;
                                                             |         goto label_3;
                                                             |     }
                                                             |     if (r4 == r0) {
                                                             | label_3:
    0x000469b8 beq 0x4692c                                   |         goto label_0;
                                                             |     }
    0x000469bc ldr r3, [sp, 0x80]                            |     r3 = *(arg_80h);
    0x000469c0 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000469c4 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x000469c8 beq 0x469f8                                   |         goto label_4;
                                                             |     }
    0x000469cc cmp r3, 4                                     |     
                                                             |     if (r3 == 4) {
    0x000469d0 beq 0x469f0                                   |         goto label_5;
                                                             |     }
    0x000469d4 cmn r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x000469d8 bne 0x4692c                                   |         goto label_0;
                                                             |     }
    0x000469dc ldr r3, [pc, 0x27c]                           |     r3 = *(0x46c5c);
    0x000469e0 ldr r3, [pc, r3]                              |     r3 = *(0x000469e8);
    0x000469e4 ldr r3, [sl, r3]                              |     r3 = *((sl + r3));
    0x000469e8 cmp r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x000469ec bne 0x4692c                                   |         goto label_0;
                                                             |     }
                                                             | label_5:
    0x000469f0 mov r4, r6                                    |     r4 = r6;
    0x000469f4 b 0x46a04                                     |     goto label_6;
                                                             | label_4:
    0x000469f8 sub r4, r4, 2                                 |     r4 -= 2;
    0x000469fc clz r4, r4                                    |     r4 &= r4;
    0x00046a00 lsr r4, r4, 5                                 |     r4 >>= 5;
                                                             | label_6:
    0x00046a04 ldr r3, [pc, 0x258]                           |     r3 = *(0x46c60);
    0x00046a08 bl 0x11934                                    |     fcn_00011934 ();
    0x00046a0c ldr r2, [sp, 0x80]                            |     r2 = *(arg_80h);
    0x00046a10 ldr r3, [pc, r3]                              |     r3 = *(0x00046a18);
    0x00046a14 str r0, [sp, 0x18]                            |     var_18h = r0;
    0x00046a18 str fp, [r0, r3]                              |     *((r0 + r3)) = fp;
    0x00046a1c mvn r3, 0                                     |     r3 = ~0;
    0x00046a20 str r3, [r2]                                  |     *(r2) = r3;
    0x00046a24 mov r0, r8                                    |     r0 = r8;
    0x00046a28 bl 0x3e3c0                                    |     r0 = strlen ();
    0x00046a2c add r6, r0, 1                                 |     r6 = r0 + 1;
    0x00046a30 cmp r6, sb                                    |     
    0x00046a34 blt 0x46a40                                   |     
                                                             |     while (r0 <= 0xff) {
    0x00046a38 mov r4, 0x22                                  |         r4 = 0x22;
    0x00046a3c b 0x4692c                                     |         goto label_0;
    0x00046a40 mov r2, r6                                    |         r2 = r6;
    0x00046a44 mov r1, r8                                    |         r1 = r8;
    0x00046a48 mov r0, r7                                    |         r0 = r7;
    0x00046a4c bl 0x3e480                                    |         memcpy (r0, r1, r2);
    0x00046a50 add r1, r7, r6                                |         r1 = r7 + r6;
    0x00046a54 rsb r2, r1, 0                                 |         r2 = r1 - ;
    0x00046a58 sub sb, sb, r6                                |         sb -= r6;
    0x00046a5c and r2, r2, 3                                 |         r2 &= 3;
    0x00046a60 sub r3, sb, r2                                |         r3 = sb - r2;
    0x00046a64 sub r0, r3, 8                                 |         r0 = r3 - 8;
    0x00046a68 cmp r0, 0xff                                  |         
    0x00046a6c str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00046a70 str r0, [sp, 0x14]                            |         var_14h = r0;
    0x00046a74 ble 0x46a38                                   |         
                                                             |     }
    0x00046a78 add sl, r1, r2                                |     sl = r1 + r2;
    0x00046a7c mov r6, 0                                     |     r6 = 0;
    0x00046a80 add sb, sl, 0x10                              |     sb = sl + 0x10;
    0x00046a84 str r7, [r1, r2]                              |     *((r1 + r2)) = r7;
    0x00046a88 mov r0, 0xa                                   |     r0 = 0xa;
    0x00046a8c str r6, [sl, 4]                               |     *((sl + 4)) = r6;
    0x00046a90 mov r2, sb                                    |     r2 = sb;
    0x00046a94 mov r1, r8                                    |     r1 = r8;
    0x00046a98 bl 0x443c8                                    |     inet_pton ();
    0x00046a9c add fp, sl, 8                                 |     
    0x00046aa0 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00046aa4 cmp r0, r6                                    |     
                                                             |     if (r0 != r6) {
    0x00046aa8 beq 0x46ae4                                   |         
    0x00046aac mov r3, 0xa                                   |         r3 = 0xa;
    0x00046ab0 str sb, [sl, 8]                               |         *((sl + 8)) = sb;
    0x00046ab4 str r6, [sl, 0xc]                             |         *((sl + 0xc)) = r6;
    0x00046ab8 str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x00046abc mov r3, 0x10                                  |         r3 = 0x10;
    0x00046ac0 str r3, [r5, 0xc]                             |         *((r5 + 0xc)) = r3;
    0x00046ac4 ldr r3, [sp, 0x7c]                            |         r3 = *(arg_7ch);
    0x00046ac8 stm r5, {r7, sl}                              |         *(r5) = r7;
                                                             |         *((r5 + 4)) = sl;
    0x00046acc str fp, [r5, 0x10]                            |         *((r5 + 0x10)) = fp;
    0x00046ad0 str r5, [r3]                                  |         *(r3) = r5;
    0x00046ad4 ldr r3, [sp, 0x80]                            |         r3 = *(arg_80h);
    0x00046ad8 mov r4, r6                                    |         r4 = r6;
    0x00046adc str r6, [r3]                                  |         *(r3) = r6;
    0x00046ae0 b 0x4692c                                     |         goto label_0;
                                                             |     }
    0x00046ae4 cmp r4, 0                                     |     
    0x00046ae8 beq 0x46b00                                   |     
                                                             |     while (r0 < 0) {
    0x00046aec ldr r2, [sp, 0x80]                            |         r2 = *(arg_80h);
    0x00046af0 mov r3, 1                                     |         r3 = 1;
    0x00046af4 str r3, [r2]                                  |         *(r2) = r3;
    0x00046af8 mov r4, 2                                     |         r4 = 2;
    0x00046afc b 0x4692c                                     |         goto label_0;
    0x00046b00 sub r3, r3, 0x20                              |         r3 -= 0x20;
    0x00046b04 str r3, [sp, 0x48]                            |         var_48h = r3;
    0x00046b08 add r2, sp, 0x24                              |         r2 += var_24h;
    0x00046b0c add r3, sp, 0x28                              |         r3 += var_28h;
    0x00046b10 mov r1, 0x1c                                  |         r1 = 0x1c;
    0x00046b14 mov r0, r8                                    |         r0 = r8;
    0x00046b18 str fp, [sp, 0x44]                            |         var_44h = fp;
    0x00046b1c str r4, [sp, 0x4c]                            |         var_4ch = r4;
    0x00046b20 bl 0x44eb0                                    |         r0 = fcn_00044eb0 (r0, r1);
    0x00046b24 cmp r0, 0                                     |         
    0x00046b28 blt 0x46aec                                   |         
                                                             |     }
    0x00046b2c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00046b30 cmp r3, 0x1c                                  |     
                                                             |     if (r3 != 0x1c) {
    0x00046b34 bne 0x46c30                                   |         goto label_7;
                                                             |     }
    0x00046b38 ldr r1, [sp, 0x4c]                            |     r1 = var_4ch;
    0x00046b3c ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00046b40 add r6, r1, 6                                 |     r6 = r1 + 6;
    0x00046b44 mul r2, r3, r1                                |     r2 = r3 * r1;
    0x00046b48 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00046b4c lsl r6, r6, 2                                 |     r6 <<= 2;
    0x00046b50 add r8, r6, r2                                |     r8 = r6 + r2;
    0x00046b54 subs r8, r3, r8                               |     r8 = r3 - r8;
                                                             |     if (r8 >= r3) {
    0x00046b58 movmi r4, 0x22                                |         r4 = 0x22;
                                                             |     }
                                                             |     if (r8 < r3) {
    0x00046b5c bmi 0x46c10                                   |         goto label_1;
                                                             |     }
    0x00046b60 add r0, fp, r6                                |     r0 = fp + r6;
    0x00046b64 sub r6, r6, 0x10                              |     r6 -= 0x10;
    0x00046b68 mov r1, fp                                    |     r1 = fp;
    0x00046b6c add r6, fp, r6                                |     r6 = fp + r6;
    0x00046b70 bl 0x3e3b0                                    |     memmove ();
    0x00046b74 mov r2, 0x10                                  |     r2 = 0x10;
    0x00046b78 ldr r1, [sp, 0x3c]                            |     r1 = s2;
    0x00046b7c mov r0, r6                                    |     r0 = r6;
    0x00046b80 bl 0x3e480                                    |     memcpy (r0, r1, r2);
    0x00046b84 ldr r2, [sp, 0x4c]                            |     r2 = var_4ch;
    0x00046b88 add r0, sl, 4                                 |     r0 = sl + 4;
    0x00046b8c lsl r3, r2, 2                                 |     r3 = r2 << 2;
    0x00046b90 add r1, r3, 8                                 |     r1 = r3 + 8;
    0x00046b94 add r1, sl, r1                                |     r1 = sl + r1;
    0x00046b98 mov ip, r6                                    |     
                                                             |     do {
    0x00046b9c cmp r0, r1                                    |         
                                                             |         if (r0 == r1) {
    0x00046ba0 bne 0x46c24                                   |             
    0x00046ba4 ldr sb, [sp, 0x28]                            |             sb = var_28h;
    0x00046ba8 add r2, r2, 1                                 |             r2++;
    0x00046bac add r6, r6, r2, lsl 4                         |             r6 += (r2 << 4);
    0x00046bb0 mov r2, 0                                     |             r2 = 0;
    0x00046bb4 add r3, fp, r3                                |             r3 = fp + r3;
    0x00046bb8 cmp sb, r2                                    |             
    0x00046bbc str r2, [r3, 4]                               |             *((r3 + 4)) = r2;
                                                             |             if (sb != r2) {
    0x00046bc0 beq 0x46be4                                   |                 
    0x00046bc4 mov r0, sb                                    |                 r0 = sb;
    0x00046bc8 bl 0x3e3c0                                    |                 r0 = strlen ();
    0x00046bcc cmp r8, r0                                    |                 
                                                             |                 if (r8 < r0) {
    0x00046bd0 bls 0x46be4                                   |                     goto label_8;
                                                             |                 }
    0x00046bd4 mov r1, sb                                    |                 r1 = sb;
    0x00046bd8 mov r0, r6                                    |                 r0 = r6;
    0x00046bdc bl 0x3e970                                    |                 strcpy (r0, r1)
    0x00046be0 mov r7, r6                                    |                 r7 = r6;
                                                             |             }
                                                             | label_8:
    0x00046be4 mov r3, 0xa                                   |             r3 = 0xa;
    0x00046be8 str r3, [r5, 8]                               |             *((r5 + 8)) = r3;
    0x00046bec mov r3, 0x10                                  |             r3 = 0x10;
    0x00046bf0 str r3, [r5, 0xc]                             |             *((r5 + 0xc)) = r3;
    0x00046bf4 ldr r3, [sp, 0x7c]                            |             r3 = *(arg_7ch);
    0x00046bf8 ldr r2, [sp, 0x80]                            |             r2 = *(arg_80h);
    0x00046bfc stm r5, {r7, sl}                              |             *(r5) = r7;
                                                             |             *((r5 + 4)) = sl;
    0x00046c00 str fp, [r5, 0x10]                            |             *((r5 + 0x10)) = fp;
    0x00046c04 str r5, [r3]                                  |             *(r3) = r5;
    0x00046c08 mov r3, 0                                     |             r3 = 0;
    0x00046c0c str r3, [r2]                                  |             *(r2) = r3;
                                                             | label_1:
    0x00046c10 ldr r0, [sp, 0x28]                            |             r0 = var_28h;
    0x00046c14 bl 0x120a8                                    |             fcn_000120a8 ();
    0x00046c18 ldr r0, [sp, 0x24]                            |             r0 = var_24h;
    0x00046c1c bl 0x120a8                                    |             fcn_000120a8 ();
    0x00046c20 b 0x4692c                                     |             goto label_0;
                                                             |         }
    0x00046c24 str ip, [r0, 4]!                              |         *((r0 += 4)) = ip;
    0x00046c28 add ip, ip, 0x10                              |         
    0x00046c2c b 0x46b9c                                     |         
                                                             |     } while (1);
                                                             | label_7:
    0x00046c30 ldr r3, [sp, 0x80]                            |     r3 = *(arg_80h);
    0x00046c34 mov r2, 1                                     |     r2 = 1;
    0x00046c38 str r2, [r3]                                  |     *(r3) = r2;
    0x00046c3c ldr r3, [pc, 0x24]                            |     r3 = *(0x46c64);
    0x00046c40 ldr r1, [sp, 0x18]                            |     r1 = var_18h;
    0x00046c44 ldr r3, [pc, r3]                              |     r3 = *(0x00046c4c);
    0x00046c48 mov r4, 2                                     |     r4 = 2;
    0x00046c4c str r2, [r1, r3]                              |     *((r1 + r3)) = r2;
    0x00046c50 b 0x46c10                                     |     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 @ 0x465c0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.gethostbyname_r ()                           | void gethostbyname_r (int32_t arg_78h, int32_t arg_7ch, int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_38h;
                                                             |     void * s2;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_54h;
                                                             |     r0 = arg1;
    0x000465c0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000465c4 sub sp, sp, 0x54                              |     
    0x000465c8 mov r6, r3                                    |     r6 = r3;
    0x000465cc ldr r3, [sp, 0x78]                            |     r3 = *(arg_78h);
    0x000465d0 mov sb, 0                                     |     sb = 0;
    0x000465d4 subs r8, r0, 0                                |     r8 -= arg_78h;
    0x000465d8 str sb, [r3]                                  |     *(r3) = sb;
                                                             |     if (r8 != arg_78h) {
    0x000465dc moveq r4, 0x16                                |         r4 = 0x16;
                                                             |     }
                                                             |     if (r8 == arg_78h) {
    0x000465e0 beq 0x46648                                   |         goto label_0;
                                                             |     }
    0x000465e4 ldr r3, [pc, 0x2e8]                           |     r3 = *(0x468d0);
    0x000465e8 bl 0x11934                                    |     fcn_00011934 ();
    0x000465ec mov r5, r1                                    |     r5 = r1;
    0x000465f0 ldr r3, [pc, r3]                              |     r3 = *(0x000465f8);
    0x000465f4 mov r7, r2                                    |     r7 = r2;
    0x000465f8 ldr fp, [r0, r3]                              |     fp = *((r0 + r3));
    0x000465fc ldr r3, [pc, 0x2d4]                           |     r3 = *(0x468d4);
    0x00046600 mov sl, r0                                    |     sl = r0;
    0x00046604 ldr r3, [pc, r3]                              |     r3 = *(0x0004660c);
    0x00046608 str sb, [r0, r3]                              |     *((r0 + r3)) = sb;
    0x0004660c ldr r3, [sp, 0x7c]                            |     r3 = *(arg_7ch);
    0x00046610 str r6, [sp]                                  |     *(sp) = r6;
    0x00046614 str r3, [sp, 8]                               |     var_8h = r3;
    0x00046618 ldr r3, [sp, 0x78]                            |     r3 = *(arg_78h);
    0x0004661c mov r0, r8                                    |     r0 = r8;
    0x00046620 str r3, [sp, 4]                               |     var_4h = r3;
    0x00046624 mov r3, r2                                    |     r3 = r2;
    0x00046628 mov r2, r1                                    |     r2 = r1;
    0x0004662c mov r1, 2                                     |     r1 = 2;
    0x00046630 bl 0x462e4                                    |     r0 = fcn_000462e4 (r0, r1, r2, r3, r4);
    0x00046634 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00046638 bne 0x46654                                   |         goto label_2;
                                                             |     }
    0x0004663c ldr r3, [pc, 0x298]                           |     r3 = *(0x468d8);
    0x00046640 ldr r3, [pc, r3]                              |     r3 = *(0x00046648);
    0x00046644 str fp, [sl, r3]                              |     *((sl + r3)) = fp;
                                                             |     do {
                                                             | label_0:
    0x00046648 mov r0, r4                                    |         r0 = r4;
    0x0004664c add sp, sp, 0x54                              |         
    0x00046650 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_2:
    0x00046654 ldr r3, [sp, 0x7c]                            |         r3 = *(arg_7ch);
    0x00046658 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0004665c cmp r3, 1                                     |         
                                                             |         if (r3 == 1) {
    0x00046660 beq 0x46690                                   |             goto label_3;
                                                             |         }
    0x00046664 cmp r3, 4                                     |         
                                                             |         if (r3 == 4) {
    0x00046668 beq 0x46688                                   |             goto label_4;
                                                             |         }
    0x0004666c cmn r3, 1                                     |         
    0x00046670 bne 0x46648                                   |         
                                                             |     } while (r3 != 1);
    0x00046674 ldr r3, [pc, 0x264]                           |     r3 = *(0x468dc);
    0x00046678 ldr r3, [pc, r3]                              |     r3 = *(0x00046680);
    0x0004667c ldr r3, [sl, r3]                              |     r3 = *((sl + r3));
    0x00046680 cmp r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x00046684 bne 0x46648                                   |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x00046688 mov r4, sb                                    |     r4 = sb;
    0x0004668c b 0x4669c                                     |     goto label_5;
                                                             | label_3:
    0x00046690 sub r4, r4, 2                                 |     r4 -= 2;
    0x00046694 clz r4, r4                                    |     r4 &= r4;
    0x00046698 lsr r4, r4, 5                                 |     r4 >>= 5;
                                                             | label_5:
    0x0004669c ldr r3, [pc, 0x240]                           |     r3 = *(0x468e0);
    0x000466a0 bl 0x11934                                    |     fcn_00011934 ();
    0x000466a4 ldr r2, [sp, 0x7c]                            |     r2 = *(arg_7ch);
    0x000466a8 ldr r3, [pc, r3]                              |     r3 = *(0x000466b0);
    0x000466ac str r0, [sp, 0x14]                            |     var_14h = r0;
    0x000466b0 str fp, [r0, r3]                              |     *((r0 + r3)) = fp;
    0x000466b4 mvn r3, 0                                     |     r3 = ~0;
    0x000466b8 str r3, [r2]                                  |     *(r2) = r3;
    0x000466bc mov r0, r8                                    |     r0 = r8;
    0x000466c0 bl 0x3e3c0                                    |     r0 = strlen ();
    0x000466c4 add sb, r0, 1                                 |     sb = r0 + 1;
    0x000466c8 cmp r6, sb                                    |     
    0x000466cc bgt 0x466d8                                   |     
                                                             |     while (r1 <= 0xff) {
    0x000466d0 mov r4, 0x22                                  |         r4 = 0x22;
    0x000466d4 b 0x46648                                     |         goto label_0;
    0x000466d8 mov r2, sb                                    |         r2 = sb;
    0x000466dc mov r1, r8                                    |         r1 = r8;
    0x000466e0 mov r0, r7                                    |         r0 = r7;
    0x000466e4 bl 0x3e480                                    |         memcpy (r0, r1, r2);
    0x000466e8 add r2, r7, sb                                |         r2 = r7 + sb;
    0x000466ec rsb r3, r2, 0                                 |         r3 = r2 - ;
    0x000466f0 sub r6, r6, sb                                |         r6 -= sb;
    0x000466f4 and r3, r3, 3                                 |         r3 &= 3;
    0x000466f8 sub r6, r6, r3                                |         r6 -= r3;
    0x000466fc sub r1, r6, 8                                 |         r1 = r6 - 8;
    0x00046700 cmp r1, 0xff                                  |         
    0x00046704 str r1, [sp, 0x18]                            |         var_18h = r1;
    0x00046708 ble 0x466d0                                   |         
                                                             |     }
    0x0004670c add sb, r2, r3                                |     sb = r2 + r3;
    0x00046710 str r7, [r2, r3]                              |     *((r2 + r3)) = r7;
    0x00046714 mov fp, 0                                     |     
    0x00046718 add r3, sb, 0x10                              |     r3 = sb + 0x10;
    0x0004671c str fp, [sb, 4]                               |     *((sb + 4)) = fp;
    0x00046720 mov r1, r3                                    |     r1 = r3;
    0x00046724 mov r0, r8                                    |     r0 = r8;
    0x00046728 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0004672c bl 0x445e0                                    |     inet_aton ();
    0x00046730 add sl, sb, 8                                 |     sl = sb + 8;
    0x00046734 cmp r0, fp                                    |     
                                                             |     if (r0 != fp) {
    0x00046738 beq 0x46778                                   |         
    0x0004673c ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00046740 str fp, [sb, 0xc]                             |         *((sb + 0xc)) = fp;
    0x00046744 str r3, [sb, 8]                               |         *((sb + 8)) = r3;
    0x00046748 mov r3, 2                                     |         r3 = 2;
    0x0004674c str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x00046750 mov r3, 4                                     |         r3 = 4;
    0x00046754 str r3, [r5, 0xc]                             |         *((r5 + 0xc)) = r3;
    0x00046758 ldr r3, [sp, 0x78]                            |         r3 = *(arg_78h);
    0x0004675c stm r5, {r7, sb}                              |         *(r5) = r7;
                                                             |         *((r5 + 4)) = sb;
    0x00046760 str sl, [r5, 0x10]                            |         *((r5 + 0x10)) = sl;
    0x00046764 str r5, [r3]                                  |         *(r3) = r5;
    0x00046768 ldr r3, [sp, 0x7c]                            |         r3 = *(arg_7ch);
    0x0004676c mov r4, fp                                    |         r4 = fp;
    0x00046770 str fp, [r3]                                  |         *(r3) = fp;
    0x00046774 b 0x46648                                     |         goto label_0;
                                                             |     }
    0x00046778 cmp r4, 0                                     |     
    0x0004677c beq 0x46794                                   |     
                                                             |     while (r0 < 0) {
    0x00046780 ldr r2, [sp, 0x7c]                            |         r2 = *(arg_7ch);
    0x00046784 mov r3, 1                                     |         r3 = 1;
    0x00046788 str r3, [r2]                                  |         *(r2) = r3;
    0x0004678c mov r4, 2                                     |         r4 = 2;
    0x00046790 b 0x46648                                     |         goto label_0;
    0x00046794 sub r6, r6, 0x14                              |         r6 -= 0x14;
    0x00046798 add r3, sp, 0x28                              |         r3 += var_28h;
    0x0004679c add r2, sp, 0x24                              |         r2 += var_24h;
    0x000467a0 mov r1, 1                                     |         r1 = 1;
    0x000467a4 mov r0, r8                                    |         r0 = r8;
    0x000467a8 str sl, [sp, 0x44]                            |         var_44h = sl;
    0x000467ac str r6, [sp, 0x48]                            |         var_48h = r6;
    0x000467b0 str r4, [sp, 0x4c]                            |         var_4ch = r4;
    0x000467b4 bl 0x44eb0                                    |         r0 = fcn_00044eb0 (r0, r1);
    0x000467b8 cmp r0, 0                                     |         
    0x000467bc blt 0x46780                                   |         
                                                             |     }
    0x000467c0 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x000467c4 cmp r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x000467c8 bne 0x468b0                                   |         goto label_6;
                                                             |     }
    0x000467cc ldr r1, [sp, 0x4c]                            |     r1 = var_4ch;
    0x000467d0 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000467d4 add r8, r1, 3                                 |     r8 = r1 + 3;
    0x000467d8 mul r2, r3, r1                                |     r2 = r3 * r1;
    0x000467dc ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000467e0 lsl r8, r8, 2                                 |     r8 <<= 2;
    0x000467e4 add r6, r8, r2                                |     r6 = r8 + r2;
    0x000467e8 subs r6, r3, r6                               |     r6 = r3 - r6;
                                                             |     if (r6 >= r3) {
    0x000467ec movmi r4, 0x22                                |         r4 = 0x22;
                                                             |     }
                                                             |     if (r6 < r3) {
    0x000467f0 bmi 0x46890                                   |         goto label_1;
                                                             |     }
    0x000467f4 add r0, sl, r8                                |     r0 = sl + r8;
    0x000467f8 sub r8, r8, 4                                 |     r8 -= 4;
    0x000467fc mov r1, sl                                    |     r1 = sl;
    0x00046800 add r8, sl, r8                                |     r8 = sl + r8;
    0x00046804 bl 0x3e3b0                                    |     memmove ();
    0x00046808 mov r2, 4                                     |     r2 = 4;
    0x0004680c ldr r1, [sp, 0x3c]                            |     r1 = s2;
    0x00046810 mov r0, r8                                    |     r0 = r8;
    0x00046814 bl 0x3e480                                    |     memcpy (r0, r1, r2);
    0x00046818 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x0004681c add r2, sb, 4                                 |     r2 = sb + 4;
    0x00046820 add r3, r3, 1                                 |     r3++;
    0x00046824 add r1, r8, r3, lsl 2                         |     r1 = r8 + (r3 << 2);
                                                             |     do {
    0x00046828 cmp r8, r1                                    |         
                                                             |         if (r8 == r1) {
    0x0004682c bne 0x468a4                                   |             
    0x00046830 ldr fp, [sp, 0x28]                            |             fp = var_28h;
    0x00046834 mov r2, 0                                     |             r2 = 0;
    0x00046838 cmp fp, r2                                    |             
    0x0004683c str r2, [sl, r3, lsl 2]                       |             offset_0 = r3 << 2;
                                                             |             *((sl + offset_0)) = r2;
                                                             |             if (fp != r2) {
    0x00046840 beq 0x46864                                   |                 
    0x00046844 mov r0, fp                                    |                 r0 = fp;
    0x00046848 bl 0x3e3c0                                    |                 r0 = strlen ();
    0x0004684c cmp r0, r6                                    |                 
                                                             |                 if (r0 >= r6) {
    0x00046850 bhs 0x46864                                   |                     goto label_7;
                                                             |                 }
    0x00046854 mov r1, fp                                    |                 r1 = fp;
    0x00046858 mov r0, r8                                    |                 r0 = r8;
    0x0004685c bl 0x3e970                                    |                 strcpy (r0, r1)
    0x00046860 mov r7, r8                                    |                 r7 = r8;
                                                             |             }
                                                             | label_7:
    0x00046864 mov r3, 2                                     |             r3 = 2;
    0x00046868 str r3, [r5, 8]                               |             *((r5 + 8)) = r3;
    0x0004686c mov r3, 4                                     |             r3 = 4;
    0x00046870 str r3, [r5, 0xc]                             |             *((r5 + 0xc)) = r3;
    0x00046874 ldr r3, [sp, 0x78]                            |             r3 = *(arg_78h);
    0x00046878 ldr r2, [sp, 0x7c]                            |             r2 = *(arg_7ch);
    0x0004687c stm r5, {r7, sb}                              |             *(r5) = r7;
                                                             |             *((r5 + 4)) = sb;
    0x00046880 str sl, [r5, 0x10]                            |             *((r5 + 0x10)) = sl;
    0x00046884 str r5, [r3]                                  |             *(r3) = r5;
    0x00046888 mov r3, 0                                     |             r3 = 0;
    0x0004688c str r3, [r2]                                  |             *(r2) = r3;
                                                             | label_1:
    0x00046890 ldr r0, [sp, 0x28]                            |             r0 = var_28h;
    0x00046894 bl 0x120a8                                    |             fcn_000120a8 ();
    0x00046898 ldr r0, [sp, 0x24]                            |             r0 = var_24h;
    0x0004689c bl 0x120a8                                    |             fcn_000120a8 ();
    0x000468a0 b 0x46648                                     |             goto label_0;
                                                             |         }
    0x000468a4 str r8, [r2, 4]!                              |         *((r2 += 4)) = r8;
    0x000468a8 add r8, r8, 4                                 |         r8 += 4;
    0x000468ac b 0x46828                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x000468b0 ldr r3, [sp, 0x7c]                            |     r3 = *(arg_7ch);
    0x000468b4 mov r2, 1                                     |     r2 = 1;
    0x000468b8 str r2, [r3]                                  |     *(r3) = r2;
    0x000468bc ldr r3, [pc, 0x24]                            |     r3 = *(0x468e4);
    0x000468c0 ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x000468c4 ldr r3, [pc, r3]                              |     r3 = *(0x000468cc);
    0x000468c8 mov r4, 2                                     |     r4 = 2;
    0x000468cc str r2, [r1, r3]                              |     *((r1 + r3)) = r2;
    0x000468d0 b 0x46890                                     |     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 @ 0x14efc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.gethostname ()               | void gethostname (int32_t arg1, int32_t arg2) {
                                             |     int32_t var_0h;
                                             |     char * src;
                                             |     int32_t var_1h;
                                             |     int32_t var_188h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00014efc push {r4, r5, r6, lr}         |     
    0x00014f00 sub sp, sp, 0x188             |     
    0x00014f04 mov r4, sp                    |     r4 = sp;
    0x00014f08 mov r5, r0                    |     r5 = r0;
    0x00014f0c mov r0, r4                    |     r0 = r4;
    0x00014f10 mov r6, r1                    |     r6 = r1;
    0x00014f14 bl 0x135cc                    |     r0 = uname ();
    0x00014f18 cmn r0, 1                     |     
                                             |     if (r0 == 1) {
    0x00014f1c beq 0x14f50                   |         goto label_0;
                                             |     }
    0x00014f20 add r4, r4, 0x41              |     r4 += src;
    0x00014f24 mov r0, r4                    |     r0 = r4;
    0x00014f28 bl 0x3e3c0                    |     strlen ();
    0x00014f2c add r0, r0, 1                 |     r0 += var_1h;
    0x00014f30 cmp r0, r6                    |     
                                             |     if (r0 < r6) {
    0x00014f34 bls 0x14f58                   |         goto label_1;
                                             |     }
    0x00014f38 ldr r3, [pc, 0x2c]            |     r3 = *(0x14f68);
    0x00014f3c bl 0x11934                    |     fcn_00011934 ();
    0x00014f40 mov r2, 0x16                  |     r2 = 0x16;
    0x00014f44 ldr r3, [pc, r3]              |     r3 = *(0x00014f4c);
    0x00014f48 str r2, [r0, r3]              |     *((r0 + r3)) = r2;
    0x00014f4c mvn r0, 0                     |     r0 = ~0;
                                             |     do {
                                             | label_0:
    0x00014f50 add sp, sp, 0x188             |         
    0x00014f54 pop {r4, r5, r6, pc}          |         
                                             | label_1:
    0x00014f58 mov r1, r4                    |         r1 = r4;
    0x00014f5c mov r0, r5                    |         r0 = r5;
    0x00014f60 bl 0x3e970                    |         strcpy (r0, r1)
    0x00014f64 mov r0, 0                     |         r0 = 0;
    0x00014f68 b 0x14f50                     |         
                                             |     } 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 @ 0x1bff8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.glob_pattern_p ()        | uint32_t glob_pattern_p (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0001bff8 mov r2, r0                |     r2 = r0;
    0x0001bffc mov r0, 0                 |     r0 = 0;
                                         |     do {
    0x0001c000 ldrb r3, [r2]             |         r3 = *(r2);
    0x0001c004 cmp r3, 0                 |         
                                         |         if (r3 == 0) {
    0x0001c008 bne 0x1c014               |             
    0x0001c00c mov r0, r3                |             r0 = r3;
    0x0001c010 bx lr                     |             return r0;
                                         |         }
    0x0001c014 cmp r3, 0x5b              |         
                                         |         if (r3 == 0x5b) {
    0x0001c018 beq 0x1c06c               |             goto label_1;
                                         |         }
                                         |         if (r3 > 0x5b) {
    0x0001c01c bhi 0x1c038               |             goto label_2;
                                         |         }
    0x0001c020 cmp r3, 0x2a              |         
                                         |         if (r3 == 0x2a) {
    0x0001c024 beq 0x1c074               |             goto label_3;
                                         |         }
    0x0001c028 cmp r3, 0x3f              |         
                                         |         if (r3 == 0x3f) {
    0x0001c02c beq 0x1c074               |             goto label_3;
                                         |         }
                                         | label_0:
    0x0001c030 add r2, r2, 1             |         r2++;
    0x0001c034 b 0x1c000                 |         
                                         |     } while (1);
                                         | label_2:
    0x0001c038 cmp r3, 0x5c              |     
                                         |     if (r3 == 0x5c) {
    0x0001c03c beq 0x1c054               |         goto label_4;
                                         |     }
    0x0001c040 cmp r3, 0x5d              |     
                                         |     if (r3 != 0x5d) {
    0x0001c044 bne 0x1c030               |         goto label_0;
                                         |     }
    0x0001c048 cmp r0, 0                 |     
                                         |     if (r0 == 0) {
    0x0001c04c beq 0x1c030               |         goto label_0;
                                         |     }
    0x0001c050 bx lr                     |     return;
                                         | label_4:
    0x0001c054 cmp r1, 0                 |     
    0x0001c058 ldrb r3, [r2, 1]          |     r3 = *((r2 + 1));
                                         |     if (r1 == 0) {
    0x0001c05c beq 0x1c030               |         goto label_0;
                                         |     }
    0x0001c060 cmp r3, 0                 |     
                                         |     if (r3 == 0) {
    0x0001c064 addne r2, r2, 1           |         r2++;
                                         |     }
    0x0001c068 b 0x1c030                 |     goto label_0;
                                         | label_1:
    0x0001c06c mov r0, 1                 |     r0 = 1;
    0x0001c070 b 0x1c030                 |     goto label_0;
                                         | label_3:
    0x0001c074 mov r0, 1                 |     r0 = 1;
    0x0001c078 bx lr                     |     return r0;
                                         | }
    ; 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 @ 0x1c610 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.globfree ()                      | void globfree (int32_t arg1) {
                                                 |     r0 = arg1;
    0x0001c610 ldr r3, [r0, 4]                   |     r3 = *((r0 + 4));
    0x0001c614 cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x0001c618 bxeq lr                           |         return;
                                                 |     }
    0x0001c61c push {r4, r5, r6, lr}             |     
    0x0001c620 mov r4, r0                        |     r4 = r0;
    0x0001c624 mov r5, 0                         |     r5 = 0;
    0x0001c628 b 0x1c648                         |     
                                                 |     while (r5 <= r3) {
    0x0001c62c ldr r3, [r4, 8]                   |         r3 = *((r4 + 8));
    0x0001c630 add r3, r5, r3                    |         r3 = r5 + r3;
    0x0001c634 ldr r0, [r0, r3, lsl 2]           |         offset_0 = r3 << 2;
                                                 |         r0 = *((r0 + offset_0));
    0x0001c638 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0001c63c beq 0x1c644                       |             
    0x0001c640 bl 0x120a8                        |             fcn_000120a8 ();
                                                 |         }
    0x0001c644 add r5, r5, 1                     |         r5++;
    0x0001c648 ldr r3, [r4]                      |         r3 = *(r4);
    0x0001c64c ldr r0, [r4, 4]                   |         r0 = *((r4 + 4));
    0x0001c650 cmp r5, r3                        |         
    0x0001c654 blo 0x1c62c                       |         
                                                 |     }
    0x0001c658 bl 0x120a8                        |     fcn_000120a8 ();
    0x0001c65c mov r3, 0                         |     r3 = 0;
    0x0001c660 str r3, [r4, 4]                   |     *((r4 + 4)) = r3;
    0x0001c664 pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libuClibc-1.0.31.so @ 0x1c668 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.glob ()                                          | void glob (uint32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_e8h;
                                                                 |     int32_t var_e4h;
                                                                 |     int32_t var_e0h;
                                                                 |     char * src;
                                                                 |     int32_t var_d8h;
                                                                 |     int32_t var_d4h;
                                                                 |     int32_t var_c4h;
                                                                 |     int32_t var_7ch;
                                                                 |     int32_t var_78h;
                                                                 |     int32_t var_6ch;
                                                                 |     int32_t var_68h;
                                                                 |     int32_t var_64h;
                                                                 |     int32_t var_60h;
                                                                 |     int32_t var_5ch;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_1h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_20h_2;
                                                                 |     int32_t var_20h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001c668 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001c66c cmp r3, 0                                         |     
    0x0001c670 cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
    0x0001c674 add fp, sp, 0x20                                  |     
    0x0001c678 sub sp, sp, 0xd4                                  |     
                                                                 |     if (r3 != 0) {
    0x0001c67c beq 0x1c690                                       |         
    0x0001c680 bic ip, r1, 0x7e00                                |         ip = BIT_MASK (r1, 0x7e00);
    0x0001c684 bic ip, ip, 0xff                                  |         ip = BIT_MASK (ip, 0xff);
    0x0001c688 cmp ip, 0                                         |         
                                                                 |         if (ip == 0) {
    0x0001c68c beq 0x1c6b4                                       |             goto label_7;
                                                                 |         }
                                                                 |     }
    0x0001c690 ldr r3, [pc, 0x53c]                               |     r3 = *(0x1cbd0);
    0x0001c694 bl 0x11934                                        |     fcn_00011934 ();
    0x0001c698 mov r2, 0x16                                      |     r2 = 0x16;
    0x0001c69c ldr r3, [pc, r3]                                  |     r3 = *(0x0001c6a4);
    0x0001c6a0 mvn r5, 0                                         |     r5 = ~0;
    0x0001c6a4 str r2, [r0, r3]                                  |     *((r0 + r3)) = r2;
                                                                 |     do {
                                                                 | label_1:
    0x0001c6a8 mov r0, r5                                        |         r0 = r5;
    0x0001c6ac sub sp, fp, 0x20                                  |         
    0x0001c6b0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_7:
    0x0001c6b4 ands r5, r1, 8                                    |         r5 = r1 & 8;
                                                                 |         if (r5 != r1) {
    0x0001c6b8 streq r5, [r3, 8]                                 |             *((r3 + 8)) = r5;
                                                                 |         }
    0x0001c6bc mov r6, r1                                        |         r6 = r1;
    0x0001c6c0 mov r1, 0x2f                                      |         r1 = 0x2f;
    0x0001c6c4 mov r4, r3                                        |         r4 = r3;
    0x0001c6c8 mov r7, r0                                        |         r7 = r0;
    0x0001c6cc str r2, [fp, -0xe0]                               |         var_e0h = r2;
    0x0001c6d0 bl 0x3e928                                        |         r0 = rindex ();
    0x0001c6d4 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 != r0) {
    0x0001c6d8 bne 0x1c848                                       |             goto label_8;
                                                                 |         }
    0x0001c6dc ands r8, r6, 0x5000                               |         r8 = r6 & 0x5000;
                                                                 |         if (r8 == r6) {
    0x0001c6e0 beq 0x1c8f8                                       |             goto label_9;
                                                                 |         }
    0x0001c6e4 ldrb r2, [r7]                                     |         r2 = *(r7);
    0x0001c6e8 cmp r2, 0x7e                                      |         
                                                                 |         if (r2 != 0x7e) {
    0x0001c6ec bne 0x1c908                                       |             goto label_10;
                                                                 |         }
    0x0001c6f0 mov r0, r7                                        |         r0 = r7;
    0x0001c6f4 str r3, [fp, -0xd8]                               |         var_d8h = r3;
    0x0001c6f8 bl 0x3e3c0                                        |         strlen ();
    0x0001c6fc ldr r3, [fp, -0xd8]                               |         r3 = var_d8h;
    0x0001c700 mov sb, r7                                        |         sb = r7;
    0x0001c704 str r3, [fp, -0xdc]                               |         src = r3;
    0x0001c708 mov r8, r0                                        |         r8 = r0;
                                                                 | label_0:
    0x0001c70c ands sl, r6, 0x20                                 |         sl = r6 & 0x20;
                                                                 |         if (sl == r6) {
    0x0001c710 bne 0x1c758                                       |             
    0x0001c714 cmp r5, 0                                         |             
    0x0001c718 ldr r0, [r4, 8]                                   |             r0 = *((r4 + 8));
    0x0001c71c str sl, [r4]                                      |             *(r4) = sl;
                                                                 |             if (r5 != 0) {
    0x0001c720 streq r5, [r4, 4]                                 |                 *((r4 + 4)) = r5;
                                                                 |             }
                                                                 |             if (r5 == 0) {
    0x0001c724 beq 0x1c758                                       |                 goto label_11;
                                                                 |             }
    0x0001c728 add r0, r0, 1                                     |             r0++;
    0x0001c72c lsl r0, r0, 2                                     |             r0 <<= 2;
    0x0001c730 bl 0x11a90                                        |             r0 = fcn_00011a90 ();
    0x0001c734 cmp r0, 0                                         |             
    0x0001c738 str r0, [r4, 4]                                   |             *((r4 + 4)) = r0;
                                                                 |             if (r0 == 0) {
    0x0001c73c beq 0x1c9c0                                       |                 goto label_4;
                                                                 |             }
    0x0001c740 ldr r3, [r4, 8]                                   |             r3 = *((r4 + 8));
    0x0001c744 sub r2, r0, 4                                     |             r2 = r0 - 4;
    0x0001c748 add r0, r0, r3, lsl 2                             |             r0 += (r3 << 2);
    0x0001c74c mov r3, sl                                        |             r3 = sl;
                                                                 | label_2:
    0x0001c750 cmp r0, r2                                        |             
                                                                 |             if (r0 != r2) {
    0x0001c754 bne 0x1c91c                                       |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 | label_11:
    0x0001c758 ldr sl, [r4]                                      |         sl = *(r4);
    0x0001c75c ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001c760 tst r6, 0x40                                      |         
    0x0001c764 add r3, sl, r3                                    |         r3 = sl + r3;
                                                                 |         if ((r6 & 0x40) != 0) {
    0x0001c768 moveq r1, 1                                       |             r1 = 1;
                                                                 |         }
                                                                 |         if ((r6 & 0x40) == 0) {
    0x0001c76c movne r1, 0                                       |             r1 = 0;
                                                                 |         }
    0x0001c770 mov r0, sb                                        |         r0 = sb;
    0x0001c774 str r3, [fp, -0xd8]                               |         var_d8h = r3;
    0x0001c778 bl 0x1bff8                                        |         r0 = glob_pattern_p ();
    0x0001c77c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001c780 beq 0x1caa0                                       |             goto label_13;
                                                                 |         }
    0x0001c784 tst r6, 0x200                                     |         
                                                                 |         if ((r6 & 0x200) != 0) {
    0x0001c788 beq 0x1c7b4                                       |             
    0x0001c78c ldr r3, [r4, 0x18]                                |             r3 = *((r4 + 0x18));
    0x0001c790 str r3, [fp, -0x64]                               |             var_64h = r3;
    0x0001c794 ldr r3, [r4, 0x14]                                |             r3 = *((r4 + 0x14));
    0x0001c798 str r3, [fp, -0x68]                               |             var_68h = r3;
    0x0001c79c ldr r3, [r4, 0x10]                                |             r3 = *((r4 + 0x10));
    0x0001c7a0 str r3, [fp, -0x6c]                               |             var_6ch = r3;
    0x0001c7a4 ldr r3, [r4, 0x20]                                |             r3 = *((r4 + 0x20));
    0x0001c7a8 str r3, [fp, -0x5c]                               |             var_5ch = r3;
    0x0001c7ac ldr r3, [r4, 0x1c]                                |             r3 = *((r4 + 0x1c));
    0x0001c7b0 str r3, [fp, -0x60]                               |             var_60h = r3;
                                                                 |         }
    0x0001c7b4 ldr r1, [pc, 0x41c]                               |         r1 = *(0x1cbd4);
    0x0001c7b8 sub r8, fp, 0x7c                                  |         r8 -= var_7ch;
    0x0001c7bc and r1, r6, r1                                    |         r1 = r6 & r1;
    0x0001c7c0 orr r1, r1, 0x2000                                |         r1 |= 0x2000;
    0x0001c7c4 mov r3, r8                                        |         r3 = r8;
    0x0001c7c8 ldr r2, [fp, -0xe0]                               |         r2 = var_e0h;
    0x0001c7cc orr r1, r1, 4                                     |         r1 |= 4;
    0x0001c7d0 mov r0, sb                                        |         r0 = sb;
    0x0001c7d4 bl 0x1c668                                        |         glob ();
    0x0001c7d8 subs r5, r0, 0                                    |         r5 -= var_0h;
    0x0001c7dc bne 0x1c6a8                                       |         
                                                                 |     } while (r5 != var_0h);
    0x0001c7e0 bic r3, r6, 0x830                                 |     r3 = BIT_MASK (r6, 0x830);
    0x0001c7e4 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0001c7e8 mov sb, r5                                        |     sb = r5;
    0x0001c7ec str r3, [fp, -0xe4]                               |     var_e4h = r3;
                                                                 | label_3:
    0x0001c7f0 ldr r3, [fp, -0x7c]                               |     r3 = var_7ch;
    0x0001c7f4 ldr sl, [r4]                                      |     sl = *(r4);
    0x0001c7f8 cmp r3, sb                                        |     
                                                                 |     if (r3 > sb) {
    0x0001c7fc bhi 0x1c924                                       |         goto label_14;
                                                                 |     }
    0x0001c800 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001c804 orr r5, r6, 0x100                                 |     r5 = r6 | 0x100;
    0x0001c808 add sl, sl, r3                                    |     sl += r3;
    0x0001c80c ldr r3, [fp, -0xd8]                               |     r3 = var_d8h;
    0x0001c810 cmp sl, r3                                        |     
                                                                 |     if (sl != r3) {
    0x0001c814 bne 0x1ca10                                       |         goto label_15;
                                                                 |     }
    0x0001c818 tst r6, 0x10                                      |     
                                                                 |     if ((r6 & 0x10) == 0) {
    0x0001c81c beq 0x1ca90                                       |         goto label_16;
                                                                 |     }
    0x0001c820 add r1, r3, 2                                     |     r1 = r3 + 2;
    0x0001c824 lsl r6, r1, 2                                     |     r6 = r1 << 2;
    0x0001c828 mov r1, r6                                        |     r1 = r6;
    0x0001c82c ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001c830 bl 0x11d30                                        |     r0 = fcn_00011d30 ();
    0x0001c834 subs sb, r0, 0                                    |     sb = r0 - 0;
                                                                 |     if (sb != r0) {
    0x0001c838 bne 0x1c9d0                                       |         goto label_17;
                                                                 |     }
    0x0001c83c mov r0, r8                                        |     r0 = r8;
    0x0001c840 bl 0x1c610                                        |     globfree ();
    0x0001c844 b 0x1c9c0                                         |     goto label_4;
                                                                 | label_8:
    0x0001c848 cmp r7, r3                                        |     
                                                                 |     if (r7 == r3) {
    0x0001c84c bne 0x1c868                                       |         
    0x0001c850 ldr sb, [pc, 0x384]                               |         sb = "Cd";
    0x0001c854 add r3, r7, 1                                     |         r3 = r7 + 1;
    0x0001c858 str r3, [fp, -0xdc]                               |         src = r3;
    0x0001c85c mov r8, 1                                         |         r8 = 1;
    0x0001c860 add sb, pc, sb                                    |         sb = pc + sb;
    0x0001c864 b 0x1c70c                                         |         goto label_0;
                                                                 |     }
    0x0001c868 sub r8, r3, r7                                    |     r8 = r3 - r7;
    0x0001c86c add r2, r8, 0xf                                   |     r2 = r8 + 0xf;
    0x0001c870 bic r2, r2, 7                                     |     r2 = BIT_MASK (r2, 7);
    0x0001c874 sub sp, sp, r2                                    |     
    0x0001c878 add sl, sp, 8                                     |     sl += var_8h;
    0x0001c87c mov r2, r8                                        |     r2 = r8;
    0x0001c880 mov r1, r7                                        |     r1 = r7;
    0x0001c884 mov r0, sl                                        |     r0 = sl;
    0x0001c888 str r3, [fp, -0xd8]                               |     var_d8h = r3;
    0x0001c88c bl 0x3e98c                                        |     mempcpy ();
    0x0001c890 ldr r3, [fp, -0xd8]                               |     r3 = var_d8h;
    0x0001c894 mov r2, 0                                         |     r2 = 0;
    0x0001c898 cmp r8, 1                                         |     
    0x0001c89c mov sb, sl                                        |     sb = sl;
    0x0001c8a0 strb r2, [r0]                                     |     *(r0) = r2;
    0x0001c8a4 add r2, r3, 1                                     |     r2 = r3 + 1;
    0x0001c8a8 str r2, [fp, -0xdc]                               |     src = r2;
    0x0001c8ac ldrb r2, [r3, 1]                                  |     r2 = *((r3 + 1));
                                                                 |     if (r8 > 1) {
    0x0001c8b0 movls r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r8 <= 1) {
    0x0001c8b4 movhi r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0001c8b8 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0001c8bc movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001c8c0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001c8c4 beq 0x1c70c                                       |         goto label_0;
                                                                 |     }
    0x0001c8c8 mov r3, r4                                        |     r3 = r4;
    0x0001c8cc ldr r2, [fp, -0xe0]                               |     r2 = var_e0h;
    0x0001c8d0 orr r1, r6, 2                                     |     r1 = r6 | 2;
    0x0001c8d4 mov r0, sl                                        |     r0 = sl;
    0x0001c8d8 bl 0x1c668                                        |     glob ();
    0x0001c8dc subs r5, r0, 0                                    |     r5 -= var_0h;
                                                                 |     if (r5 != var_0h) {
    0x0001c8e0 ldreq r3, [r4, 0xc]                               |         r3 = *((r4 + 0xc));
                                                                 |     }
                                                                 |     if (r5 != var_0h) {
    0x0001c8e4 andeq r6, r6, 2                                   |         r6 &= 2;
                                                                 |     }
    0x0001c8e8 biceq r3, r3, 2                                   |     __asm ("biceq r3, r3, 2");
                                                                 |     if (r5 != var_0h) {
    0x0001c8ec orreq r6, r3, r6                                  |         r6 = r3 | r6;
                                                                 |     }
                                                                 |     if (r5 != var_0h) {
    0x0001c8f0 streq r6, [r4, 0xc]                               |         *((r4 + 0xc)) = r6;
                                                                 |     }
    0x0001c8f4 b 0x1c6a8                                         |     goto label_1;
                                                                 | label_9:
    0x0001c8f8 ldr sb, [pc, 0x2e0]                               |     sb = "Cd";
    0x0001c8fc str r7, [fp, -0xdc]                               |     src = r7;
    0x0001c900 add sb, pc, sb                                    |     sb = pc + sb;
    0x0001c904 b 0x1c70c                                         |     goto label_0;
                                                                 | label_10:
    0x0001c908 ldr sb, [pc, 0x2d4]                               |     sb = *(0x1cbe0);
    0x0001c90c str r7, [fp, -0xdc]                               |     src = r7;
    0x0001c910 mov r8, r3                                        |     r8 = r3;
    0x0001c914 add sb, pc, sb                                    |     sb = pc + sb;
    0x0001c918 b 0x1c70c                                         |     goto label_0;
                                                                 | label_12:
    0x0001c91c str r3, [r2, 4]!                                  |     *((r2 += 4)) = r3;
    0x0001c920 b 0x1c750                                         |     goto label_2;
                                                                 | label_14:
    0x0001c924 ldr r1, [fp, -0x78]                               |     r1 = var_78h;
    0x0001c928 lsl r3, sb, 2                                     |     r3 = sb << 2;
    0x0001c92c str r3, [fp, -0xe8]                               |     var_e8h = r3;
    0x0001c930 str r4, [sp]                                      |     *(sp) = r4;
    0x0001c934 ldr r3, [fp, -0xe0]                               |     r3 = var_e0h;
    0x0001c938 ldr r2, [fp, -0xe4]                               |     r2 = var_e4h;
    0x0001c93c ldr r1, [r1, sb, lsl 2]                           |     offset_0 = sb << 2;
                                                                 |     r1 = *((r1 + offset_0));
    0x0001c940 ldr r0, [fp, -0xdc]                               |     r0 = src;
    0x0001c944 bl 0x1c07c                                        |     r0 = fcn_0001c07c (r0, r1, r2);
    0x0001c948 cmp r0, 3                                         |     
    0x0001c94c mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 3) {
    0x0001c950 beq 0x1c9c8                                       |         goto label_18;
                                                                 |     }
    0x0001c954 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001c958 beq 0x1c978                                       |         
    0x0001c95c mov r0, r8                                        |         r0 = r8;
    0x0001c960 bl 0x1c610                                        |         globfree ();
    0x0001c964 mov r0, r4                                        |         r0 = r4;
    0x0001c968 bl 0x1c610                                        |         globfree ();
    0x0001c96c mov r3, 0                                         |         r3 = 0;
    0x0001c970 str r3, [r4]                                      |         *(r4) = r3;
    0x0001c974 b 0x1c6a8                                         |         goto label_1;
                                                                 |     }
    0x0001c978 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001c97c ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0001c980 add r3, sl, r3                                    |     r3 = sl + r3;
    0x0001c984 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001c988 add r1, r1, r3, lsl 2                             |     r1 += (r3 << 2);
    0x0001c98c ldr r3, [fp, -0x78]                               |     r3 = var_78h;
    0x0001c990 lsl r0, sb, 2                                     |     r0 = sb << 2;
    0x0001c994 sub r2, r2, sl                                    |     r2 -= sl;
    0x0001c998 ldr r0, [r3, r0]                                  |     r0 = *((r3 + r0));
    0x0001c99c bl 0x1c550                                        |     r0 = fcn_0001c550 (r0, r1);
    0x0001c9a0 cmp r0, 0                                         |     
    0x0001c9a4 beq 0x1c9c8                                       |     
                                                                 |     while (r3 == 0) {
    0x0001c9a8 mov r0, r8                                        |         r0 = r8;
    0x0001c9ac bl 0x1c610                                        |         globfree ();
    0x0001c9b0 mov r0, r4                                        |         r0 = r4;
    0x0001c9b4 bl 0x1c610                                        |         globfree ();
    0x0001c9b8 mov r3, 0                                         |         r3 = 0;
    0x0001c9bc str r3, [r4]                                      |         *(r4) = r3;
                                                                 | label_4:
    0x0001c9c0 mov r5, 1                                         |         r5 = 1;
    0x0001c9c4 b 0x1c6a8                                         |         goto label_1;
                                                                 | label_18:
    0x0001c9c8 add sb, sb, 1                                     |         sb += var_1h;
    0x0001c9cc b 0x1c7f0                                         |         goto label_3;
                                                                 | label_17:
    0x0001c9d0 str sb, [r4, 4]                                   |         *((r4 + 4)) = sb;
    0x0001c9d4 mov r0, r7                                        |         r0 = r7;
    0x0001c9d8 bl 0x3f894                                        |         strdup ();
    0x0001c9dc ldr r3, [fp, -0xd8]                               |         r3 = var_d8h;
    0x0001c9e0 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001c9e4 str r0, [sb, r3, lsl 2]                           |         offset_1 = r3 << 2;
                                                                 |         *((sb + offset_1)) = r0;
    0x0001c9e8 ldr r3, [r1, r3, lsl 2]                           |         offset_2 = r3 << 2;
                                                                 |         r3 = *((r1 + offset_2));
    0x0001c9ec cmp r3, 0                                         |         
    0x0001c9f0 beq 0x1c9a8                                       |         
                                                                 |     }
    0x0001c9f4 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001c9f8 add r1, r1, r6                                    |     r1 += r6;
    0x0001c9fc add r3, r3, 1                                     |     r3++;
    0x0001ca00 str r3, [r4]                                      |     *(r4) = r3;
    0x0001ca04 mov r3, 0                                         |     r3 = 0;
    0x0001ca08 str r3, [r1, -4]                                  |     *((r1 - 4)) = r3;
    0x0001ca0c str r5, [r4, 0xc]                                 |     *((r4 + 0xc)) = r5;
                                                                 | label_15:
    0x0001ca10 mov r0, r8                                        |     r0 = r8;
    0x0001ca14 bl 0x1c610                                        |     globfree ();
                                                                 | label_5:
    0x0001ca18 tst r5, 2                                         |     
                                                                 |     if ((r5 & 2) != 0) {
    0x0001ca1c beq 0x1ca54                                       |         
    0x0001ca20 ldr r3, [fp, -0xd8]                               |         r3 = var_d8h;
    0x0001ca24 and r8, r5, 0x200                                 |         r8 = r5 & 0x200;
    0x0001ca28 lsl r6, r3, 2                                     |         r6 = r3 << 2;
    0x0001ca2c mov r7, r3                                        |         r7 = r3;
    0x0001ca30 ldr r3, [pc, 0x1b0]                               |         r3 = *(0x1cbe4);
    0x0001ca34 sub sl, fp, 0x7c                                  |         sl -= var_7ch;
    0x0001ca38 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001ca3c str r3, [fp, -0xdc]                               |         src = r3;
                                                                 | label_6:
    0x0001ca40 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0001ca44 ldr r2, [r4, 8]                                   |         r2 = *((r4 + 8));
    0x0001ca48 add r3, r3, r2                                    |         r3 += r2;
    0x0001ca4c cmp r3, r7                                        |         
                                                                 |         if (r3 > r7) {
    0x0001ca50 bhi 0x1cb08                                       |             goto label_19;
                                                                 |         }
                                                                 |     }
    0x0001ca54 ands r5, r5, 4                                    |     r5 &= 4;
                                                                 |     if (r5 != r5) {
    0x0001ca58 movne r5, 0                                       |         r5 = 0;
                                                                 |         goto label_20;
                                                                 |     }
                                                                 |     if (r5 != r5) {
                                                                 | label_20:
    0x0001ca5c bne 0x1c6a8                                       |         goto label_1;
                                                                 |     }
    0x0001ca60 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001ca64 ldr r1, [r4]                                      |     r1 = *(r4);
    0x0001ca68 ldr ip, [fp, -0xd8]                               |     ip = var_d8h;
    0x0001ca6c add r1, r1, r3                                    |     r1 += r3;
    0x0001ca70 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001ca74 ldr r3, [pc, 0x170]                               |     r3 = *(0x1cbe8);
    0x0001ca78 mov r2, 4                                         |     r2 = 4;
    0x0001ca7c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001ca80 sub r1, r1, ip                                    |     r1 -= ip;
    0x0001ca84 add r0, r0, ip, lsl 2                             |     r0 += (ip << 2);
    0x0001ca88 bl 0x4d1f4                                        |     qsort ();
    0x0001ca8c b 0x1c6a8                                         |     goto label_1;
                                                                 | label_16:
    0x0001ca90 mov r0, r8                                        |     r0 = r8;
    0x0001ca94 bl 0x1c610                                        |     globfree ();
    0x0001ca98 mov r5, 3                                         |     r5 = 3;
    0x0001ca9c b 0x1c6a8                                         |     goto label_1;
                                                                 | label_13:
    0x0001caa0 str r4, [sp]                                      |     *(sp) = r4;
    0x0001caa4 ldr r3, [fp, -0xe0]                               |     r3 = var_e0h;
    0x0001caa8 mov r2, r6                                        |     r2 = r6;
    0x0001caac mov r1, sb                                        |     r1 = sb;
    0x0001cab0 ldr r0, [fp, -0xdc]                               |     r0 = src;
    0x0001cab4 bl 0x1c07c                                        |     r0 = fcn_0001c07c (r0, r1, r2);
    0x0001cab8 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 != r0) {
    0x0001cabc bne 0x1c6a8                                       |         goto label_1;
                                                                 |     }
    0x0001cac0 cmp r8, 0                                         |     
                                                                 |     if (r8 != 0) {
    0x0001cac4 beq 0x1cb00                                       |         
    0x0001cac8 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001cacc ldr r2, [r4]                                      |         r2 = *(r4);
    0x0001cad0 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001cad4 add r3, sl, r3                                    |         r3 = sl + r3;
    0x0001cad8 sub r2, r2, sl                                    |         r2 -= sl;
    0x0001cadc add r1, r1, r3, lsl 2                             |         r1 += (r3 << 2);
    0x0001cae0 mov r0, sb                                        |         r0 = sb;
    0x0001cae4 bl 0x1c550                                        |         r0 = fcn_0001c550 (r0, r1);
    0x0001cae8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001caec beq 0x1cb00                                       |             goto label_21;
                                                                 |         }
    0x0001caf0 mov r0, r4                                        |         r0 = r4;
    0x0001caf4 bl 0x1c610                                        |         globfree ();
    0x0001caf8 str r5, [r4]                                      |         *(r4) = r5;
    0x0001cafc b 0x1c9c0                                         |         goto label_4;
                                                                 |     }
                                                                 | label_21:
    0x0001cb00 mov r5, r6                                        |     r5 = r6;
    0x0001cb04 b 0x1ca18                                         |     goto label_5;
                                                                 | label_19:
    0x0001cb08 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001cb0c cmp r8, 0                                         |     
    0x0001cb10 mov sb, r8                                        |     sb = r8;
    0x0001cb14 ldr r0, [r2, r6]                                  |     r0 = *((r2 + r6));
                                                                 |     if (r8 == 0) {
    0x0001cb18 beq 0x1cb8c                                       |         goto label_22;
                                                                 |     }
    0x0001cb1c ldr r3, [r4, 0x20]                                |     r3 = *((r4 + 0x20));
    0x0001cb20 sub r1, fp, 0xd4                                  |     r1 -= var_d4h;
    0x0001cb24 blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r1, r3);
    0x0001cb28 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001cb2c ldreq r3, [fp, -0xc4]                             |         r3 = var_c4h;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x0001cb30 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001cb34 andeq r3, r3, 0xf000                              |         r3 &= 0xf000;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001cb38 subeq r3, r3, 0x4000                              |         r3 -= 0x4000;
                                                                 |     }
    0x0001cb3c clzeq r3, r3                                      |     __asm ("clzeq r3, r3");
                                                                 |     if (r0 != 0) {
    0x0001cb40 lsreq r3, r3, 5                                   |         r3 >>= 5;
                                                                 |     }
    0x0001cb44 and r3, r3, 1                                     |     r3 &= 1;
                                                                 |     do {
    0x0001cb48 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001cb4c beq 0x1cbc8                                       |             goto label_23;
                                                                 |         }
    0x0001cb50 ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x0001cb54 ldr sb, [r3, r6]                                  |         sb = *((r3 + r6));
    0x0001cb58 mov r0, sb                                        |         r0 = sb;
    0x0001cb5c bl 0x3e3c0                                        |         r0 = strlen ();
    0x0001cb60 add r1, r0, 2                                     |         r1 = r0 + 2;
    0x0001cb64 str r0, [fp, -0xe0]                               |         var_e0h = r0;
    0x0001cb68 mov r0, sb                                        |         r0 = sb;
    0x0001cb6c bl 0x11d30                                        |         fcn_00011d30 ();
    0x0001cb70 ldr r2, [fp, -0xe0]                               |         r2 = var_e0h;
    0x0001cb74 subs sb, r0, 0                                    |         sb = r0 - 0;
                                                                 |         if (sb != r0) {
    0x0001cb78 bne 0x1cbb4                                       |             goto label_24;
                                                                 |         }
    0x0001cb7c mov r0, r4                                        |         r0 = r4;
    0x0001cb80 bl 0x1c610                                        |         globfree ();
    0x0001cb84 str sb, [r4]                                      |         *(r4) = sb;
    0x0001cb88 b 0x1c9c0                                         |         goto label_4;
                                                                 | label_22:
    0x0001cb8c mov r1, sl                                        |         r1 = sl;
    0x0001cb90 bl 0x164b4                                        |         r0 = stat ();
    0x0001cb94 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001cb98 ldreq r3, [fp, -0x6c]                             |             r3 = var_6ch;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0001cb9c andeq r3, r3, 0xf000                              |             r3 &= 0xf000;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0001cba0 subeq sb, r3, 0x4000                              |             sb = r3 - 0x4000;
                                                                 |         }
    0x0001cba4 clzeq sb, sb                                      |         __asm ("clzeq sb, sb");
                                                                 |         if (r0 != 0) {
    0x0001cba8 lsreq sb, sb, 5                                   |             sb >>= 5;
                                                                 |         }
    0x0001cbac and r3, sb, 1                                     |         r3 = sb & 1;
    0x0001cbb0 b 0x1cb48                                         |         
                                                                 |     } while (1);
                                                                 | label_24:
    0x0001cbb4 add r0, sb, r2                                    |     r0 = sb + r2;
    0x0001cbb8 ldr r1, [fp, -0xdc]                               |     r1 = src;
    0x0001cbbc bl 0x3e970                                        |     strcpy (r0, r1)
    0x0001cbc0 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001cbc4 str sb, [r2, r6]                                  |     *((r2 + r6)) = sb;
                                                                 | label_23:
    0x0001cbc8 add r7, r7, 1                                     |     r7++;
    0x0001cbcc add r6, r6, 4                                     |     r6 += 4;
    0x0001cbd0 b 0x1ca40                                         |     goto label_6;
                                                                 | }
    ; 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 @ 0x1d12c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.globfree64 ()                    | void globfree64 (int32_t arg1) {
                                                 |     r0 = arg1;
    0x0001d12c ldr r3, [r0, 4]                   |     r3 = *((r0 + 4));
    0x0001d130 cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x0001d134 bxeq lr                           |         return;
                                                 |     }
    0x0001d138 push {r4, r5, r6, lr}             |     
    0x0001d13c mov r4, r0                        |     r4 = r0;
    0x0001d140 mov r5, 0                         |     r5 = 0;
    0x0001d144 b 0x1d164                         |     
                                                 |     while (r5 <= r3) {
    0x0001d148 ldr r3, [r4, 8]                   |         r3 = *((r4 + 8));
    0x0001d14c add r3, r5, r3                    |         r3 = r5 + r3;
    0x0001d150 ldr r0, [r0, r3, lsl 2]           |         offset_0 = r3 << 2;
                                                 |         r0 = *((r0 + offset_0));
    0x0001d154 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0001d158 beq 0x1d160                       |             
    0x0001d15c bl 0x120a8                        |             fcn_000120a8 ();
                                                 |         }
    0x0001d160 add r5, r5, 1                     |         r5++;
    0x0001d164 ldr r3, [r4]                      |         r3 = *(r4);
    0x0001d168 ldr r0, [r4, 4]                   |         r0 = *((r4 + 4));
    0x0001d16c cmp r5, r3                        |         
    0x0001d170 blo 0x1d148                       |         
                                                 |     }
    0x0001d174 bl 0x120a8                        |     fcn_000120a8 ();
    0x0001d178 mov r3, 0                         |     r3 = 0;
    0x0001d17c str r3, [r4, 4]                   |     *((r4 + 4)) = r3;
    0x0001d180 pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libuClibc-1.0.31.so @ 0x1d184 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.glob64 ()                                        | void glob64 (uint32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_108h;
                                                                 |     int32_t var_104h;
                                                                 |     int32_t var_100h;
                                                                 |     char * src;
                                                                 |     int32_t var_f8h;
                                                                 |     int32_t var_f4h;
                                                                 |     int32_t var_e4h;
                                                                 |     int32_t var_8ch;
                                                                 |     int32_t var_88h;
                                                                 |     int32_t var_7ch;
                                                                 |     int32_t var_78h;
                                                                 |     int32_t var_74h;
                                                                 |     int32_t var_70h;
                                                                 |     int32_t var_6ch;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_1h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_20h_2;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_2h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001d184 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001d188 cmp r3, 0                                         |     
    0x0001d18c cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
    0x0001d190 add fp, sp, 0x20                                  |     
    0x0001d194 sub sp, sp, 0xf4                                  |     
                                                                 |     if (r3 != 0) {
    0x0001d198 beq 0x1d1ac                                       |         
    0x0001d19c bic ip, r1, 0x7e00                                |         ip = BIT_MASK (r1, 0x7e00);
    0x0001d1a0 bic ip, ip, 0xff                                  |         ip = BIT_MASK (ip, 0xff);
    0x0001d1a4 cmp ip, 0                                         |         
                                                                 |         if (ip == 0) {
    0x0001d1a8 beq 0x1d1d0                                       |             goto label_7;
                                                                 |         }
                                                                 |     }
    0x0001d1ac ldr r3, [pc, 0x538]                               |     r3 = *(0x1d6e8);
    0x0001d1b0 bl 0x11934                                        |     fcn_00011934 ();
    0x0001d1b4 mov r2, 0x16                                      |     r2 = 0x16;
    0x0001d1b8 ldr r3, [pc, r3]                                  |     r3 = *(0x0001d1c0);
    0x0001d1bc mvn r5, 0                                         |     r5 = ~0;
    0x0001d1c0 str r2, [r0, r3]                                  |     *((r0 + r3)) = r2;
                                                                 |     do {
                                                                 | label_1:
    0x0001d1c4 mov r0, r5                                        |         r0 = r5;
    0x0001d1c8 sub sp, fp, 0x20                                  |         
    0x0001d1cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_7:
    0x0001d1d0 ands r5, r1, 8                                    |         r5 = r1 & 8;
                                                                 |         if (r5 != r1) {
    0x0001d1d4 streq r5, [r3, 8]                                 |             *((r3 + 8)) = r5;
                                                                 |         }
    0x0001d1d8 mov r6, r1                                        |         r6 = r1;
    0x0001d1dc mov r1, 0x2f                                      |         r1 = 0x2f;
    0x0001d1e0 mov r4, r3                                        |         r4 = r3;
    0x0001d1e4 mov r7, r0                                        |         r7 = r0;
    0x0001d1e8 str r2, [fp, -0xfc]                               |         src = r2;
    0x0001d1ec bl 0x3e928                                        |         r0 = rindex ();
    0x0001d1f0 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 != r0) {
    0x0001d1f4 bne 0x1d35c                                       |             goto label_8;
                                                                 |         }
    0x0001d1f8 ands sb, r6, 0x5000                               |         sb = r6 & 0x5000;
                                                                 |         if (sb == r6) {
    0x0001d1fc beq 0x1d40c                                       |             goto label_9;
                                                                 |         }
    0x0001d200 ldrb r2, [r7]                                     |         r2 = *(r7);
    0x0001d204 cmp r2, 0x7e                                      |         
                                                                 |         if (r2 != 0x7e) {
    0x0001d208 bne 0x1d41c                                       |             goto label_10;
                                                                 |         }
    0x0001d20c mov r0, r7                                        |         r0 = r7;
    0x0001d210 str r3, [fp, -0xf8]                               |         var_f8h = r3;
    0x0001d214 bl 0x3e3c0                                        |         strlen ();
    0x0001d218 mov sl, r7                                        |         sl = r7;
    0x0001d21c mov sb, r0                                        |         sb = r0;
                                                                 | label_0:
    0x0001d220 ands r8, r6, 0x20                                 |         r8 = r6 & 0x20;
                                                                 |         if (r8 == r6) {
    0x0001d224 bne 0x1d26c                                       |             
    0x0001d228 cmp r5, 0                                         |             
    0x0001d22c ldr r0, [r4, 8]                                   |             r0 = *((r4 + 8));
    0x0001d230 str r8, [r4]                                      |             *(r4) = r8;
                                                                 |             if (r5 != 0) {
    0x0001d234 streq r5, [r4, 4]                                 |                 *((r4 + 4)) = r5;
                                                                 |             }
                                                                 |             if (r5 == 0) {
    0x0001d238 beq 0x1d26c                                       |                 goto label_11;
                                                                 |             }
    0x0001d23c add r0, r0, 1                                     |             r0++;
    0x0001d240 lsl r0, r0, 2                                     |             r0 <<= 2;
    0x0001d244 bl 0x11a90                                        |             r0 = fcn_00011a90 ();
    0x0001d248 cmp r0, 0                                         |             
    0x0001d24c str r0, [r4, 4]                                   |             *((r4 + 4)) = r0;
                                                                 |             if (r0 == 0) {
    0x0001d250 beq 0x1d4dc                                       |                 goto label_4;
                                                                 |             }
    0x0001d254 ldr r3, [r4, 8]                                   |             r3 = *((r4 + 8));
    0x0001d258 sub r2, r0, 4                                     |             r2 = r0 - 4;
    0x0001d25c add r0, r0, r3, lsl 2                             |             r0 += (r3 << 2);
    0x0001d260 mov r3, r8                                        |             r3 = r8;
                                                                 | label_2:
    0x0001d264 cmp r0, r2                                        |             
                                                                 |             if (r0 != r2) {
    0x0001d268 bne 0x1d430                                       |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 | label_11:
    0x0001d26c ldr r8, [r4]                                      |         r8 = *(r4);
    0x0001d270 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001d274 tst r6, 0x40                                      |         
                                                                 |         if ((r6 & 0x40) != 0) {
    0x0001d278 moveq r1, 1                                       |             r1 = 1;
                                                                 |         }
                                                                 |         if ((r6 & 0x40) == 0) {
    0x0001d27c movne r1, 0                                       |             r1 = 0;
                                                                 |         }
    0x0001d280 mov r0, sl                                        |         r0 = sl;
    0x0001d284 add r8, r8, r3                                    |         r8 += r3;
    0x0001d288 bl 0x1bff8                                        |         r0 = glob_pattern_p ();
    0x0001d28c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001d290 beq 0x1d5b4                                       |             goto label_13;
                                                                 |         }
    0x0001d294 tst r6, 0x200                                     |         
                                                                 |         if ((r6 & 0x200) != 0) {
    0x0001d298 beq 0x1d2c4                                       |             
    0x0001d29c ldr r3, [r4, 0x18]                                |             r3 = *((r4 + 0x18));
    0x0001d2a0 str r3, [fp, -0x74]                               |             var_74h = r3;
    0x0001d2a4 ldr r3, [r4, 0x14]                                |             r3 = *((r4 + 0x14));
    0x0001d2a8 str r3, [fp, -0x78]                               |             var_78h = r3;
    0x0001d2ac ldr r3, [r4, 0x10]                                |             r3 = *((r4 + 0x10));
    0x0001d2b0 str r3, [fp, -0x7c]                               |             var_7ch = r3;
    0x0001d2b4 ldr r3, [r4, 0x20]                                |             r3 = *((r4 + 0x20));
    0x0001d2b8 str r3, [fp, -0x6c]                               |             var_6ch = r3;
    0x0001d2bc ldr r3, [r4, 0x1c]                                |             r3 = *((r4 + 0x1c));
    0x0001d2c0 str r3, [fp, -0x70]                               |             var_70h = r3;
                                                                 |         }
    0x0001d2c4 ldr r1, [pc, 0x424]                               |         r1 = *(0x1d6ec);
    0x0001d2c8 sub sb, fp, 0x8c                                  |         sb -= var_8ch;
    0x0001d2cc and r1, r6, r1                                    |         r1 = r6 & r1;
    0x0001d2d0 orr r1, r1, 0x2000                                |         r1 |= 0x2000;
    0x0001d2d4 mov r3, sb                                        |         r3 = sb;
    0x0001d2d8 ldr r2, [fp, -0xfc]                               |         r2 = src;
    0x0001d2dc orr r1, r1, 4                                     |         r1 |= 4;
    0x0001d2e0 mov r0, sl                                        |         r0 = sl;
    0x0001d2e4 bl 0x1d184                                        |         glob64 ();
    0x0001d2e8 subs r5, r0, 0                                    |         r5 -= var_0h;
    0x0001d2ec bne 0x1d1c4                                       |         
                                                                 |     } while (r5 != var_0h);
    0x0001d2f0 bic r3, r6, 0x830                                 |     r3 = BIT_MASK (r6, 0x830);
    0x0001d2f4 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0001d2f8 mov sl, r5                                        |     sl = r5;
    0x0001d2fc str r3, [fp, -0x104]                              |     var_104h = r3;
                                                                 | label_3:
    0x0001d300 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001d304 str r3, [fp, -0x100]                              |     var_100h = r3;
    0x0001d308 ldr r3, [fp, -0x8c]                               |     r3 = var_8ch;
    0x0001d30c cmp r3, sl                                        |     
                                                                 |     if (r3 > sl) {
    0x0001d310 bhi 0x1d438                                       |         goto label_14;
                                                                 |     }
    0x0001d314 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001d318 ldr r2, [fp, -0x100]                              |     r2 = var_100h;
    0x0001d31c orr r5, r6, 0x100                                 |     r5 |= var_20h;
    0x0001d320 add r3, r2, r3                                    |     r3 = r2 + r3;
    0x0001d324 cmp r3, r8                                        |     
                                                                 |     if (r3 != r8) {
    0x0001d328 bne 0x1d528                                       |         goto label_15;
                                                                 |     }
    0x0001d32c tst r6, 0x10                                      |     
                                                                 |     if ((r6 & 0x10) == 0) {
    0x0001d330 beq 0x1d5a4                                       |         goto label_16;
                                                                 |     }
    0x0001d334 add r1, r8, 2                                     |     r1 = r8 + 2;
    0x0001d338 lsl r6, r1, 2                                     |     r6 = r1 << 2;
    0x0001d33c mov r1, r6                                        |     r1 = r6;
    0x0001d340 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001d344 bl 0x11d30                                        |     r0 = fcn_00011d30 ();
    0x0001d348 subs sl, r0, 0                                    |     sl = r0 - 0;
                                                                 |     if (sl != r0) {
    0x0001d34c bne 0x1d4ec                                       |         goto label_17;
                                                                 |     }
    0x0001d350 mov r0, sb                                        |     r0 = sb;
    0x0001d354 bl 0x1d12c                                        |     globfree64 ();
    0x0001d358 b 0x1d4dc                                         |     goto label_4;
                                                                 | label_8:
    0x0001d35c cmp r7, r3                                        |     
                                                                 |     if (r7 == r3) {
    0x0001d360 bne 0x1d37c                                       |         
    0x0001d364 ldr sl, [pc, 0x388]                               |         sl = *(0x1d6f0);
    0x0001d368 add r3, r7, 1                                     |         r3 = r7 + 1;
    0x0001d36c str r3, [fp, -0xf8]                               |         var_f8h = r3;
    0x0001d370 mov sb, 1                                         |         sb = 1;
    0x0001d374 add sl, pc, sl                                    |         sl = pc + sl;
    0x0001d378 b 0x1d220                                         |         goto label_0;
                                                                 |     }
    0x0001d37c sub sb, r3, r7                                    |     sb = r3 - r7;
    0x0001d380 add r2, sb, 0xf                                   |     r2 = sb + 0xf;
    0x0001d384 bic r2, r2, 7                                     |     r2 = BIT_MASK (r2, 7);
    0x0001d388 sub sp, sp, r2                                    |     
    0x0001d38c add r8, sp, 8                                     |     r8 += var_8h;
    0x0001d390 mov r2, sb                                        |     r2 = sb;
    0x0001d394 mov r1, r7                                        |     r1 = r7;
    0x0001d398 mov r0, r8                                        |     r0 = r8;
    0x0001d39c str r3, [fp, -0xf8]                               |     var_f8h = r3;
    0x0001d3a0 bl 0x3e98c                                        |     mempcpy ();
    0x0001d3a4 ldr r3, [fp, -0xf8]                               |     r3 = var_f8h;
    0x0001d3a8 mov r2, 0                                         |     r2 = 0;
    0x0001d3ac cmp sb, 1                                         |     
    0x0001d3b0 mov sl, r8                                        |     sl = r8;
    0x0001d3b4 strb r2, [r0]                                     |     *(r0) = r2;
    0x0001d3b8 add r2, r3, 1                                     |     r2 = r3 + 1;
    0x0001d3bc str r2, [fp, -0xf8]                               |     var_f8h = r2;
    0x0001d3c0 ldrb r2, [r3, 1]                                  |     r2 = *((r3 + 1));
                                                                 |     if (sb > 1) {
    0x0001d3c4 movls r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (sb <= 1) {
    0x0001d3c8 movhi r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0001d3cc cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0001d3d0 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001d3d4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001d3d8 beq 0x1d220                                       |         goto label_0;
                                                                 |     }
    0x0001d3dc mov r3, r4                                        |     r3 = r4;
    0x0001d3e0 ldr r2, [fp, -0xfc]                               |     r2 = src;
    0x0001d3e4 orr r1, r6, 2                                     |     r1 |= var_2h;
    0x0001d3e8 mov r0, r8                                        |     r0 = r8;
    0x0001d3ec bl 0x1d184                                        |     glob64 ();
    0x0001d3f0 subs r5, r0, 0                                    |     r5 -= var_0h;
                                                                 |     if (r5 != var_0h) {
    0x0001d3f4 ldreq r3, [r4, 0xc]                               |         r3 = *((r4 + 0xc));
                                                                 |     }
                                                                 |     if (r5 != var_0h) {
    0x0001d3f8 andeq r6, r6, 2                                   |         r6 &= 2;
                                                                 |     }
    0x0001d3fc biceq r3, r3, 2                                   |     __asm ("biceq r3, r3, 2");
                                                                 |     if (r5 != var_0h) {
    0x0001d400 orreq r6, r3, r6                                  |         r6 = r3 | r6;
                                                                 |     }
                                                                 |     if (r5 != var_0h) {
    0x0001d404 streq r6, [r4, 0xc]                               |         *((r4 + 0xc)) = r6;
                                                                 |     }
    0x0001d408 b 0x1d1c4                                         |     goto label_1;
                                                                 | label_9:
    0x0001d40c ldr sl, [pc, 0x2e4]                               |     sl = *(0x1d6f4);
    0x0001d410 str r7, [fp, -0xf8]                               |     var_f8h = r7;
    0x0001d414 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d418 b 0x1d220                                         |     goto label_0;
                                                                 | label_10:
    0x0001d41c ldr sl, [pc, 0x2d8]                               |     sl = *(0x1d6f8);
    0x0001d420 str r7, [fp, -0xf8]                               |     var_f8h = r7;
    0x0001d424 mov sb, r3                                        |     sb = r3;
    0x0001d428 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d42c b 0x1d220                                         |     goto label_0;
                                                                 | label_12:
    0x0001d430 str r3, [r2, 4]!                                  |     *((r2 += 4)) = r3;
    0x0001d434 b 0x1d264                                         |     goto label_2;
                                                                 | label_14:
    0x0001d438 ldr r1, [fp, -0x88]                               |     r1 = var_88h;
    0x0001d43c lsl r3, sl, 2                                     |     r3 = sl << 2;
    0x0001d440 str r3, [fp, -0x108]                              |     var_108h = r3;
    0x0001d444 str r4, [sp]                                      |     *(sp) = r4;
    0x0001d448 ldr r3, [fp, -0xfc]                               |     r3 = src;
    0x0001d44c ldr r2, [fp, -0x104]                              |     r2 = var_104h;
    0x0001d450 ldr r1, [r1, sl, lsl 2]                           |     offset_0 = sl << 2;
                                                                 |     r1 = *((r1 + offset_0));
    0x0001d454 ldr r0, [fp, -0xf8]                               |     r0 = var_f8h;
    0x0001d458 bl 0x1cc94                                        |     r0 = fcn_0001cc94 (r0, r1, r2);
    0x0001d45c cmp r0, 3                                         |     
    0x0001d460 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 3) {
    0x0001d464 beq 0x1d4e4                                       |         goto label_18;
                                                                 |     }
    0x0001d468 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001d46c beq 0x1d48c                                       |         
    0x0001d470 mov r0, sb                                        |         r0 = sb;
    0x0001d474 bl 0x1d12c                                        |         globfree64 ();
    0x0001d478 mov r0, r4                                        |         r0 = r4;
    0x0001d47c bl 0x1d12c                                        |         globfree64 ();
    0x0001d480 mov r3, 0                                         |         r3 = 0;
    0x0001d484 str r3, [r4]                                      |         *(r4) = r3;
    0x0001d488 b 0x1d1c4                                         |         goto label_1;
                                                                 |     }
    0x0001d48c ldr r1, [fp, -0x100]                              |     r1 = var_100h;
    0x0001d490 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001d494 ldr r0, [fp, -0x100]                              |     r0 = var_100h;
    0x0001d498 add r3, r1, r3                                    |     r3 = r1 + r3;
    0x0001d49c ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0001d4a0 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001d4a4 add r1, r1, r3, lsl 2                             |     r1 += (r3 << 2);
    0x0001d4a8 ldr r3, [fp, -0x88]                               |     r3 = var_88h;
    0x0001d4ac sub r2, r2, r0                                    |     r2 -= r0;
    0x0001d4b0 lsl r0, sl, 2                                     |     r0 = sl << 2;
    0x0001d4b4 ldr r0, [r3, r0]                                  |     r0 = *((r3 + r0));
    0x0001d4b8 bl 0x1c550                                        |     r0 = fcn_0001c550 (r0, r1);
    0x0001d4bc cmp r0, 0                                         |     
    0x0001d4c0 beq 0x1d4e4                                       |     
                                                                 |     while (r3 == 0) {
    0x0001d4c4 mov r0, sb                                        |         r0 = sb;
    0x0001d4c8 bl 0x1d12c                                        |         globfree64 ();
    0x0001d4cc mov r0, r4                                        |         r0 = r4;
    0x0001d4d0 bl 0x1d12c                                        |         globfree64 ();
    0x0001d4d4 mov r3, 0                                         |         r3 = 0;
    0x0001d4d8 str r3, [r4]                                      |         *(r4) = r3;
                                                                 | label_4:
    0x0001d4dc mov r5, 1                                         |         r5 = 1;
    0x0001d4e0 b 0x1d1c4                                         |         goto label_1;
                                                                 | label_18:
    0x0001d4e4 add sl, sl, 1                                     |         sl += var_1h;
    0x0001d4e8 b 0x1d300                                         |         goto label_3;
                                                                 | label_17:
    0x0001d4ec str sl, [r4, 4]                                   |         *((r4 + 4)) = sl;
    0x0001d4f0 mov r0, r7                                        |         r0 = r7;
    0x0001d4f4 bl 0x3f894                                        |         strdup ();
    0x0001d4f8 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001d4fc str r0, [sl, r8, lsl 2]                           |         offset_1 = r8 << 2;
                                                                 |         *((sl + offset_1)) = r0;
    0x0001d500 ldr r3, [r1, r8, lsl 2]                           |         offset_2 = r8 << 2;
                                                                 |         r3 = *((r1 + offset_2));
    0x0001d504 cmp r3, 0                                         |         
    0x0001d508 beq 0x1d4c4                                       |         
                                                                 |     }
    0x0001d50c ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001d510 add r1, r1, r6                                    |     r1 += r6;
    0x0001d514 add r3, r3, 1                                     |     r3++;
    0x0001d518 str r3, [r4]                                      |     *(r4) = r3;
    0x0001d51c mov r3, 0                                         |     r3 = 0;
    0x0001d520 str r3, [r1, -4]                                  |     *((r1 - 4)) = r3;
    0x0001d524 str r5, [r4, 0xc]                                 |     *((r4 + 0xc)) = r5;
                                                                 | label_15:
    0x0001d528 mov r0, sb                                        |     r0 = sb;
    0x0001d52c bl 0x1d12c                                        |     globfree64 ();
                                                                 | label_5:
    0x0001d530 tst r5, 2                                         |     
                                                                 |     if ((r5 & 2) != 0) {
    0x0001d534 beq 0x1d56c                                       |         
    0x0001d538 sub r3, fp, 0x8c                                  |         r3 -= var_8ch;
    0x0001d53c str r3, [fp, -0xf8]                               |         var_f8h = r3;
    0x0001d540 ldr r3, [pc, 0x1b8]                               |         r3 = *(0x1d6fc);
    0x0001d544 lsl r6, r8, 2                                     |         r6 = r8 << 2;
    0x0001d548 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001d54c mov r7, r8                                        |         r7 = r8;
    0x0001d550 and sb, r5, 0x200                                 |         sb = r5 & 0x200;
    0x0001d554 str r3, [fp, -0xfc]                               |         src = r3;
                                                                 | label_6:
    0x0001d558 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0001d55c ldr r2, [r4, 8]                                   |         r2 = *((r4 + 8));
    0x0001d560 add r3, r3, r2                                    |         r3 += r2;
    0x0001d564 cmp r3, r7                                        |         
                                                                 |         if (r3 > r7) {
    0x0001d568 bhi 0x1d620                                       |             goto label_19;
                                                                 |         }
                                                                 |     }
    0x0001d56c ands r5, r5, 4                                    |     r5 &= 4;
                                                                 |     if (r5 != r5) {
    0x0001d570 movne r5, 0                                       |         r5 = 0;
                                                                 |         goto label_20;
                                                                 |     }
                                                                 |     if (r5 != r5) {
                                                                 | label_20:
    0x0001d574 bne 0x1d1c4                                       |         goto label_1;
                                                                 |     }
    0x0001d578 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001d57c ldr r1, [r4]                                      |     r1 = *(r4);
    0x0001d580 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001d584 add r1, r1, r3                                    |     r1 += r3;
    0x0001d588 ldr r3, [pc, 0x174]                               |     r3 = *(0x1d700);
    0x0001d58c mov r2, 4                                         |     r2 = 4;
    0x0001d590 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001d594 sub r1, r1, r8                                    |     r1 -= r8;
    0x0001d598 add r0, r0, r8, lsl 2                             |     r0 += (r8 << 2);
    0x0001d59c bl 0x4d1f4                                        |     qsort ();
    0x0001d5a0 b 0x1d1c4                                         |     goto label_1;
                                                                 | label_16:
    0x0001d5a4 mov r0, sb                                        |     r0 = sb;
    0x0001d5a8 bl 0x1d12c                                        |     globfree64 ();
    0x0001d5ac mov r5, 3                                         |     r5 = 3;
    0x0001d5b0 b 0x1d1c4                                         |     goto label_1;
                                                                 | label_13:
    0x0001d5b4 ldr r7, [r4]                                      |     r7 = *(r4);
    0x0001d5b8 ldr r3, [fp, -0xfc]                               |     r3 = src;
    0x0001d5bc str r4, [sp]                                      |     *(sp) = r4;
    0x0001d5c0 mov r2, r6                                        |     r2 = r6;
    0x0001d5c4 mov r1, sl                                        |     r1 = sl;
    0x0001d5c8 ldr r0, [fp, -0xf8]                               |     r0 = var_f8h;
    0x0001d5cc bl 0x1cc94                                        |     r0 = fcn_0001cc94 (r0, r1, r2);
    0x0001d5d0 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 != r0) {
    0x0001d5d4 bne 0x1d1c4                                       |         goto label_1;
                                                                 |     }
    0x0001d5d8 cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0001d5dc beq 0x1d618                                       |         
    0x0001d5e0 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001d5e4 ldr r2, [r4]                                      |         r2 = *(r4);
    0x0001d5e8 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001d5ec add r3, r7, r3                                    |         r3 = r7 + r3;
    0x0001d5f0 sub r2, r2, r7                                    |         r2 -= r7;
    0x0001d5f4 add r1, r1, r3, lsl 2                             |         r1 += (r3 << 2);
    0x0001d5f8 mov r0, sl                                        |         r0 = sl;
    0x0001d5fc bl 0x1c550                                        |         r0 = fcn_0001c550 (r0, r1);
    0x0001d600 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001d604 beq 0x1d618                                       |             goto label_21;
                                                                 |         }
    0x0001d608 mov r0, r4                                        |         r0 = r4;
    0x0001d60c bl 0x1d12c                                        |         globfree64 ();
    0x0001d610 str r5, [r4]                                      |         *(r4) = r5;
    0x0001d614 b 0x1d4dc                                         |         goto label_4;
                                                                 |     }
                                                                 | label_21:
    0x0001d618 mov r5, r6                                        |     r5 = r6;
    0x0001d61c b 0x1d530                                         |     goto label_5;
                                                                 | label_19:
    0x0001d620 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001d624 cmp sb, 0                                         |     
    0x0001d628 mov sl, sb                                        |     sl = sb;
    0x0001d62c ldr r0, [r2, r6]                                  |     r0 = *((r2 + r6));
                                                                 |     if (sb == 0) {
    0x0001d630 beq 0x1d6a4                                       |         goto label_22;
                                                                 |     }
    0x0001d634 ldr r3, [r4, 0x20]                                |     r3 = *((r4 + 0x20));
    0x0001d638 sub r1, fp, 0xf4                                  |     r1 -= var_f4h;
    0x0001d63c blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r1, r3);
    0x0001d640 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001d644 ldreq r3, [fp, -0xe4]                             |         r3 = var_e4h;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x0001d648 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001d64c andeq r3, r3, 0xf000                              |         r3 &= 0xf000;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001d650 subeq r3, r3, 0x4000                              |         r3 -= 0x4000;
                                                                 |     }
    0x0001d654 clzeq r3, r3                                      |     __asm ("clzeq r3, r3");
                                                                 |     if (r0 != 0) {
    0x0001d658 lsreq r3, r3, 5                                   |         r3 >>= 5;
                                                                 |     }
    0x0001d65c and r3, r3, 1                                     |     r3 &= 1;
                                                                 |     do {
    0x0001d660 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001d664 beq 0x1d6e0                                       |             goto label_23;
                                                                 |         }
    0x0001d668 ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x0001d66c ldr sl, [r3, r6]                                  |         sl = *((r3 + r6));
    0x0001d670 mov r0, sl                                        |         r0 = sl;
    0x0001d674 bl 0x3e3c0                                        |         r0 = strlen ();
    0x0001d678 add r1, r0, 2                                     |         r1 = r0 + 2;
    0x0001d67c str r0, [fp, -0x100]                              |         var_100h = r0;
    0x0001d680 mov r0, sl                                        |         r0 = sl;
    0x0001d684 bl 0x11d30                                        |         fcn_00011d30 ();
    0x0001d688 ldr r2, [fp, -0x100]                              |         r2 = var_100h;
    0x0001d68c subs sl, r0, 0                                    |         sl = r0 - 0;
                                                                 |         if (sl != r0) {
    0x0001d690 bne 0x1d6cc                                       |             goto label_24;
                                                                 |         }
    0x0001d694 mov r0, r4                                        |         r0 = r4;
    0x0001d698 bl 0x1d12c                                        |         globfree64 ();
    0x0001d69c str sl, [r4]                                      |         *(r4) = sl;
    0x0001d6a0 b 0x1d4dc                                         |         goto label_4;
                                                                 | label_22:
    0x0001d6a4 ldr r1, [fp, -0xf8]                               |         r1 = var_f8h;
    0x0001d6a8 bl 0x17f54                                        |         r0 = stat64 ();
    0x0001d6ac cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001d6b0 ldreq r3, [fp, -0x7c]                             |             r3 = var_7ch;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0001d6b4 andeq r3, r3, 0xf000                              |             r3 &= 0xf000;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0001d6b8 subeq sl, r3, 0x4000                              |             sl = r3 - 0x4000;
                                                                 |         }
    0x0001d6bc clzeq sl, sl                                      |         __asm ("clzeq sl, sl");
                                                                 |         if (r0 != 0) {
    0x0001d6c0 lsreq sl, sl, 5                                   |             sl >>= 5;
                                                                 |         }
    0x0001d6c4 and r3, sl, 1                                     |         r3 = sl & 1;
    0x0001d6c8 b 0x1d660                                         |         
                                                                 |     } while (1);
                                                                 | label_24:
    0x0001d6cc add r0, sl, r2                                    |     r0 = sl + r2;
    0x0001d6d0 ldr r1, [fp, -0xfc]                               |     r1 = src;
    0x0001d6d4 bl 0x3e970                                        |     strcpy (r0, r1)
    0x0001d6d8 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001d6dc str sl, [r2, r6]                                  |     *((r2 + r6)) = sl;
                                                                 | label_23:
    0x0001d6e0 add r7, r7, 1                                     |     r7++;
    0x0001d6e4 add r6, r6, 4                                     |     r6 += 4;
    0x0001d6e8 b 0x1d558                                         |     goto label_6;
                                                                 | }
    ; 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 @ 0x1d184 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.glob64 ()                                        | void glob64 (uint32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_108h;
                                                                 |     int32_t var_104h;
                                                                 |     int32_t var_100h;
                                                                 |     char * src;
                                                                 |     int32_t var_f8h;
                                                                 |     int32_t var_f4h;
                                                                 |     int32_t var_e4h;
                                                                 |     int32_t var_8ch;
                                                                 |     int32_t var_88h;
                                                                 |     int32_t var_7ch;
                                                                 |     int32_t var_78h;
                                                                 |     int32_t var_74h;
                                                                 |     int32_t var_70h;
                                                                 |     int32_t var_6ch;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_1h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_20h_2;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_2h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001d184 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001d188 cmp r3, 0                                         |     
    0x0001d18c cmpne r0, 0                                       |     __asm ("cmpne r0, 0");
    0x0001d190 add fp, sp, 0x20                                  |     
    0x0001d194 sub sp, sp, 0xf4                                  |     
                                                                 |     if (r3 != 0) {
    0x0001d198 beq 0x1d1ac                                       |         
    0x0001d19c bic ip, r1, 0x7e00                                |         ip = BIT_MASK (r1, 0x7e00);
    0x0001d1a0 bic ip, ip, 0xff                                  |         ip = BIT_MASK (ip, 0xff);
    0x0001d1a4 cmp ip, 0                                         |         
                                                                 |         if (ip == 0) {
    0x0001d1a8 beq 0x1d1d0                                       |             goto label_7;
                                                                 |         }
                                                                 |     }
    0x0001d1ac ldr r3, [pc, 0x538]                               |     r3 = *(0x1d6e8);
    0x0001d1b0 bl 0x11934                                        |     fcn_00011934 ();
    0x0001d1b4 mov r2, 0x16                                      |     r2 = 0x16;
    0x0001d1b8 ldr r3, [pc, r3]                                  |     r3 = *(0x0001d1c0);
    0x0001d1bc mvn r5, 0                                         |     r5 = ~0;
    0x0001d1c0 str r2, [r0, r3]                                  |     *((r0 + r3)) = r2;
                                                                 |     do {
                                                                 | label_1:
    0x0001d1c4 mov r0, r5                                        |         r0 = r5;
    0x0001d1c8 sub sp, fp, 0x20                                  |         
    0x0001d1cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_7:
    0x0001d1d0 ands r5, r1, 8                                    |         r5 = r1 & 8;
                                                                 |         if (r5 != r1) {
    0x0001d1d4 streq r5, [r3, 8]                                 |             *((r3 + 8)) = r5;
                                                                 |         }
    0x0001d1d8 mov r6, r1                                        |         r6 = r1;
    0x0001d1dc mov r1, 0x2f                                      |         r1 = 0x2f;
    0x0001d1e0 mov r4, r3                                        |         r4 = r3;
    0x0001d1e4 mov r7, r0                                        |         r7 = r0;
    0x0001d1e8 str r2, [fp, -0xfc]                               |         src = r2;
    0x0001d1ec bl 0x3e928                                        |         r0 = rindex ();
    0x0001d1f0 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 != r0) {
    0x0001d1f4 bne 0x1d35c                                       |             goto label_8;
                                                                 |         }
    0x0001d1f8 ands sb, r6, 0x5000                               |         sb = r6 & 0x5000;
                                                                 |         if (sb == r6) {
    0x0001d1fc beq 0x1d40c                                       |             goto label_9;
                                                                 |         }
    0x0001d200 ldrb r2, [r7]                                     |         r2 = *(r7);
    0x0001d204 cmp r2, 0x7e                                      |         
                                                                 |         if (r2 != 0x7e) {
    0x0001d208 bne 0x1d41c                                       |             goto label_10;
                                                                 |         }
    0x0001d20c mov r0, r7                                        |         r0 = r7;
    0x0001d210 str r3, [fp, -0xf8]                               |         var_f8h = r3;
    0x0001d214 bl 0x3e3c0                                        |         strlen ();
    0x0001d218 mov sl, r7                                        |         sl = r7;
    0x0001d21c mov sb, r0                                        |         sb = r0;
                                                                 | label_0:
    0x0001d220 ands r8, r6, 0x20                                 |         r8 = r6 & 0x20;
                                                                 |         if (r8 == r6) {
    0x0001d224 bne 0x1d26c                                       |             
    0x0001d228 cmp r5, 0                                         |             
    0x0001d22c ldr r0, [r4, 8]                                   |             r0 = *((r4 + 8));
    0x0001d230 str r8, [r4]                                      |             *(r4) = r8;
                                                                 |             if (r5 != 0) {
    0x0001d234 streq r5, [r4, 4]                                 |                 *((r4 + 4)) = r5;
                                                                 |             }
                                                                 |             if (r5 == 0) {
    0x0001d238 beq 0x1d26c                                       |                 goto label_11;
                                                                 |             }
    0x0001d23c add r0, r0, 1                                     |             r0++;
    0x0001d240 lsl r0, r0, 2                                     |             r0 <<= 2;
    0x0001d244 bl 0x11a90                                        |             r0 = fcn_00011a90 ();
    0x0001d248 cmp r0, 0                                         |             
    0x0001d24c str r0, [r4, 4]                                   |             *((r4 + 4)) = r0;
                                                                 |             if (r0 == 0) {
    0x0001d250 beq 0x1d4dc                                       |                 goto label_4;
                                                                 |             }
    0x0001d254 ldr r3, [r4, 8]                                   |             r3 = *((r4 + 8));
    0x0001d258 sub r2, r0, 4                                     |             r2 = r0 - 4;
    0x0001d25c add r0, r0, r3, lsl 2                             |             r0 += (r3 << 2);
    0x0001d260 mov r3, r8                                        |             r3 = r8;
                                                                 | label_2:
    0x0001d264 cmp r0, r2                                        |             
                                                                 |             if (r0 != r2) {
    0x0001d268 bne 0x1d430                                       |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 | label_11:
    0x0001d26c ldr r8, [r4]                                      |         r8 = *(r4);
    0x0001d270 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001d274 tst r6, 0x40                                      |         
                                                                 |         if ((r6 & 0x40) != 0) {
    0x0001d278 moveq r1, 1                                       |             r1 = 1;
                                                                 |         }
                                                                 |         if ((r6 & 0x40) == 0) {
    0x0001d27c movne r1, 0                                       |             r1 = 0;
                                                                 |         }
    0x0001d280 mov r0, sl                                        |         r0 = sl;
    0x0001d284 add r8, r8, r3                                    |         r8 += r3;
    0x0001d288 bl 0x1bff8                                        |         r0 = glob_pattern_p ();
    0x0001d28c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001d290 beq 0x1d5b4                                       |             goto label_13;
                                                                 |         }
    0x0001d294 tst r6, 0x200                                     |         
                                                                 |         if ((r6 & 0x200) != 0) {
    0x0001d298 beq 0x1d2c4                                       |             
    0x0001d29c ldr r3, [r4, 0x18]                                |             r3 = *((r4 + 0x18));
    0x0001d2a0 str r3, [fp, -0x74]                               |             var_74h = r3;
    0x0001d2a4 ldr r3, [r4, 0x14]                                |             r3 = *((r4 + 0x14));
    0x0001d2a8 str r3, [fp, -0x78]                               |             var_78h = r3;
    0x0001d2ac ldr r3, [r4, 0x10]                                |             r3 = *((r4 + 0x10));
    0x0001d2b0 str r3, [fp, -0x7c]                               |             var_7ch = r3;
    0x0001d2b4 ldr r3, [r4, 0x20]                                |             r3 = *((r4 + 0x20));
    0x0001d2b8 str r3, [fp, -0x6c]                               |             var_6ch = r3;
    0x0001d2bc ldr r3, [r4, 0x1c]                                |             r3 = *((r4 + 0x1c));
    0x0001d2c0 str r3, [fp, -0x70]                               |             var_70h = r3;
                                                                 |         }
    0x0001d2c4 ldr r1, [pc, 0x424]                               |         r1 = *(0x1d6ec);
    0x0001d2c8 sub sb, fp, 0x8c                                  |         sb -= var_8ch;
    0x0001d2cc and r1, r6, r1                                    |         r1 = r6 & r1;
    0x0001d2d0 orr r1, r1, 0x2000                                |         r1 |= 0x2000;
    0x0001d2d4 mov r3, sb                                        |         r3 = sb;
    0x0001d2d8 ldr r2, [fp, -0xfc]                               |         r2 = src;
    0x0001d2dc orr r1, r1, 4                                     |         r1 |= 4;
    0x0001d2e0 mov r0, sl                                        |         r0 = sl;
    0x0001d2e4 bl 0x1d184                                        |         glob64 ();
    0x0001d2e8 subs r5, r0, 0                                    |         r5 -= var_0h;
    0x0001d2ec bne 0x1d1c4                                       |         
                                                                 |     } while (r5 != var_0h);
    0x0001d2f0 bic r3, r6, 0x830                                 |     r3 = BIT_MASK (r6, 0x830);
    0x0001d2f4 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0001d2f8 mov sl, r5                                        |     sl = r5;
    0x0001d2fc str r3, [fp, -0x104]                              |     var_104h = r3;
                                                                 | label_3:
    0x0001d300 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001d304 str r3, [fp, -0x100]                              |     var_100h = r3;
    0x0001d308 ldr r3, [fp, -0x8c]                               |     r3 = var_8ch;
    0x0001d30c cmp r3, sl                                        |     
                                                                 |     if (r3 > sl) {
    0x0001d310 bhi 0x1d438                                       |         goto label_14;
                                                                 |     }
    0x0001d314 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001d318 ldr r2, [fp, -0x100]                              |     r2 = var_100h;
    0x0001d31c orr r5, r6, 0x100                                 |     r5 |= var_20h;
    0x0001d320 add r3, r2, r3                                    |     r3 = r2 + r3;
    0x0001d324 cmp r3, r8                                        |     
                                                                 |     if (r3 != r8) {
    0x0001d328 bne 0x1d528                                       |         goto label_15;
                                                                 |     }
    0x0001d32c tst r6, 0x10                                      |     
                                                                 |     if ((r6 & 0x10) == 0) {
    0x0001d330 beq 0x1d5a4                                       |         goto label_16;
                                                                 |     }
    0x0001d334 add r1, r8, 2                                     |     r1 = r8 + 2;
    0x0001d338 lsl r6, r1, 2                                     |     r6 = r1 << 2;
    0x0001d33c mov r1, r6                                        |     r1 = r6;
    0x0001d340 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001d344 bl 0x11d30                                        |     r0 = fcn_00011d30 ();
    0x0001d348 subs sl, r0, 0                                    |     sl = r0 - 0;
                                                                 |     if (sl != r0) {
    0x0001d34c bne 0x1d4ec                                       |         goto label_17;
                                                                 |     }
    0x0001d350 mov r0, sb                                        |     r0 = sb;
    0x0001d354 bl 0x1d12c                                        |     globfree64 ();
    0x0001d358 b 0x1d4dc                                         |     goto label_4;
                                                                 | label_8:
    0x0001d35c cmp r7, r3                                        |     
                                                                 |     if (r7 == r3) {
    0x0001d360 bne 0x1d37c                                       |         
    0x0001d364 ldr sl, [pc, 0x388]                               |         sl = *(0x1d6f0);
    0x0001d368 add r3, r7, 1                                     |         r3 = r7 + 1;
    0x0001d36c str r3, [fp, -0xf8]                               |         var_f8h = r3;
    0x0001d370 mov sb, 1                                         |         sb = 1;
    0x0001d374 add sl, pc, sl                                    |         sl = pc + sl;
    0x0001d378 b 0x1d220                                         |         goto label_0;
                                                                 |     }
    0x0001d37c sub sb, r3, r7                                    |     sb = r3 - r7;
    0x0001d380 add r2, sb, 0xf                                   |     r2 = sb + 0xf;
    0x0001d384 bic r2, r2, 7                                     |     r2 = BIT_MASK (r2, 7);
    0x0001d388 sub sp, sp, r2                                    |     
    0x0001d38c add r8, sp, 8                                     |     r8 += var_8h;
    0x0001d390 mov r2, sb                                        |     r2 = sb;
    0x0001d394 mov r1, r7                                        |     r1 = r7;
    0x0001d398 mov r0, r8                                        |     r0 = r8;
    0x0001d39c str r3, [fp, -0xf8]                               |     var_f8h = r3;
    0x0001d3a0 bl 0x3e98c                                        |     mempcpy ();
    0x0001d3a4 ldr r3, [fp, -0xf8]                               |     r3 = var_f8h;
    0x0001d3a8 mov r2, 0                                         |     r2 = 0;
    0x0001d3ac cmp sb, 1                                         |     
    0x0001d3b0 mov sl, r8                                        |     sl = r8;
    0x0001d3b4 strb r2, [r0]                                     |     *(r0) = r2;
    0x0001d3b8 add r2, r3, 1                                     |     r2 = r3 + 1;
    0x0001d3bc str r2, [fp, -0xf8]                               |     var_f8h = r2;
    0x0001d3c0 ldrb r2, [r3, 1]                                  |     r2 = *((r3 + 1));
                                                                 |     if (sb > 1) {
    0x0001d3c4 movls r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (sb <= 1) {
    0x0001d3c8 movhi r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0001d3cc cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0001d3d0 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001d3d4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001d3d8 beq 0x1d220                                       |         goto label_0;
                                                                 |     }
    0x0001d3dc mov r3, r4                                        |     r3 = r4;
    0x0001d3e0 ldr r2, [fp, -0xfc]                               |     r2 = src;
    0x0001d3e4 orr r1, r6, 2                                     |     r1 |= var_2h;
    0x0001d3e8 mov r0, r8                                        |     r0 = r8;
    0x0001d3ec bl 0x1d184                                        |     glob64 ();
    0x0001d3f0 subs r5, r0, 0                                    |     r5 -= var_0h;
                                                                 |     if (r5 != var_0h) {
    0x0001d3f4 ldreq r3, [r4, 0xc]                               |         r3 = *((r4 + 0xc));
                                                                 |     }
                                                                 |     if (r5 != var_0h) {
    0x0001d3f8 andeq r6, r6, 2                                   |         r6 &= 2;
                                                                 |     }
    0x0001d3fc biceq r3, r3, 2                                   |     __asm ("biceq r3, r3, 2");
                                                                 |     if (r5 != var_0h) {
    0x0001d400 orreq r6, r3, r6                                  |         r6 = r3 | r6;
                                                                 |     }
                                                                 |     if (r5 != var_0h) {
    0x0001d404 streq r6, [r4, 0xc]                               |         *((r4 + 0xc)) = r6;
                                                                 |     }
    0x0001d408 b 0x1d1c4                                         |     goto label_1;
                                                                 | label_9:
    0x0001d40c ldr sl, [pc, 0x2e4]                               |     sl = *(0x1d6f4);
    0x0001d410 str r7, [fp, -0xf8]                               |     var_f8h = r7;
    0x0001d414 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d418 b 0x1d220                                         |     goto label_0;
                                                                 | label_10:
    0x0001d41c ldr sl, [pc, 0x2d8]                               |     sl = *(0x1d6f8);
    0x0001d420 str r7, [fp, -0xf8]                               |     var_f8h = r7;
    0x0001d424 mov sb, r3                                        |     sb = r3;
    0x0001d428 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d42c b 0x1d220                                         |     goto label_0;
                                                                 | label_12:
    0x0001d430 str r3, [r2, 4]!                                  |     *((r2 += 4)) = r3;
    0x0001d434 b 0x1d264                                         |     goto label_2;
                                                                 | label_14:
    0x0001d438 ldr r1, [fp, -0x88]                               |     r1 = var_88h;
    0x0001d43c lsl r3, sl, 2                                     |     r3 = sl << 2;
    0x0001d440 str r3, [fp, -0x108]                              |     var_108h = r3;
    0x0001d444 str r4, [sp]                                      |     *(sp) = r4;
    0x0001d448 ldr r3, [fp, -0xfc]                               |     r3 = src;
    0x0001d44c ldr r2, [fp, -0x104]                              |     r2 = var_104h;
    0x0001d450 ldr r1, [r1, sl, lsl 2]                           |     offset_0 = sl << 2;
                                                                 |     r1 = *((r1 + offset_0));
    0x0001d454 ldr r0, [fp, -0xf8]                               |     r0 = var_f8h;
    0x0001d458 bl 0x1cc94                                        |     r0 = fcn_0001cc94 (r0, r1, r2);
    0x0001d45c cmp r0, 3                                         |     
    0x0001d460 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 3) {
    0x0001d464 beq 0x1d4e4                                       |         goto label_18;
                                                                 |     }
    0x0001d468 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001d46c beq 0x1d48c                                       |         
    0x0001d470 mov r0, sb                                        |         r0 = sb;
    0x0001d474 bl 0x1d12c                                        |         globfree64 ();
    0x0001d478 mov r0, r4                                        |         r0 = r4;
    0x0001d47c bl 0x1d12c                                        |         globfree64 ();
    0x0001d480 mov r3, 0                                         |         r3 = 0;
    0x0001d484 str r3, [r4]                                      |         *(r4) = r3;
    0x0001d488 b 0x1d1c4                                         |         goto label_1;
                                                                 |     }
    0x0001d48c ldr r1, [fp, -0x100]                              |     r1 = var_100h;
    0x0001d490 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001d494 ldr r0, [fp, -0x100]                              |     r0 = var_100h;
    0x0001d498 add r3, r1, r3                                    |     r3 = r1 + r3;
    0x0001d49c ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0001d4a0 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001d4a4 add r1, r1, r3, lsl 2                             |     r1 += (r3 << 2);
    0x0001d4a8 ldr r3, [fp, -0x88]                               |     r3 = var_88h;
    0x0001d4ac sub r2, r2, r0                                    |     r2 -= r0;
    0x0001d4b0 lsl r0, sl, 2                                     |     r0 = sl << 2;
    0x0001d4b4 ldr r0, [r3, r0]                                  |     r0 = *((r3 + r0));
    0x0001d4b8 bl 0x1c550                                        |     r0 = fcn_0001c550 (r0, r1);
    0x0001d4bc cmp r0, 0                                         |     
    0x0001d4c0 beq 0x1d4e4                                       |     
                                                                 |     while (r3 == 0) {
    0x0001d4c4 mov r0, sb                                        |         r0 = sb;
    0x0001d4c8 bl 0x1d12c                                        |         globfree64 ();
    0x0001d4cc mov r0, r4                                        |         r0 = r4;
    0x0001d4d0 bl 0x1d12c                                        |         globfree64 ();
    0x0001d4d4 mov r3, 0                                         |         r3 = 0;
    0x0001d4d8 str r3, [r4]                                      |         *(r4) = r3;
                                                                 | label_4:
    0x0001d4dc mov r5, 1                                         |         r5 = 1;
    0x0001d4e0 b 0x1d1c4                                         |         goto label_1;
                                                                 | label_18:
    0x0001d4e4 add sl, sl, 1                                     |         sl += var_1h;
    0x0001d4e8 b 0x1d300                                         |         goto label_3;
                                                                 | label_17:
    0x0001d4ec str sl, [r4, 4]                                   |         *((r4 + 4)) = sl;
    0x0001d4f0 mov r0, r7                                        |         r0 = r7;
    0x0001d4f4 bl 0x3f894                                        |         strdup ();
    0x0001d4f8 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001d4fc str r0, [sl, r8, lsl 2]                           |         offset_1 = r8 << 2;
                                                                 |         *((sl + offset_1)) = r0;
    0x0001d500 ldr r3, [r1, r8, lsl 2]                           |         offset_2 = r8 << 2;
                                                                 |         r3 = *((r1 + offset_2));
    0x0001d504 cmp r3, 0                                         |         
    0x0001d508 beq 0x1d4c4                                       |         
                                                                 |     }
    0x0001d50c ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001d510 add r1, r1, r6                                    |     r1 += r6;
    0x0001d514 add r3, r3, 1                                     |     r3++;
    0x0001d518 str r3, [r4]                                      |     *(r4) = r3;
    0x0001d51c mov r3, 0                                         |     r3 = 0;
    0x0001d520 str r3, [r1, -4]                                  |     *((r1 - 4)) = r3;
    0x0001d524 str r5, [r4, 0xc]                                 |     *((r4 + 0xc)) = r5;
                                                                 | label_15:
    0x0001d528 mov r0, sb                                        |     r0 = sb;
    0x0001d52c bl 0x1d12c                                        |     globfree64 ();
                                                                 | label_5:
    0x0001d530 tst r5, 2                                         |     
                                                                 |     if ((r5 & 2) != 0) {
    0x0001d534 beq 0x1d56c                                       |         
    0x0001d538 sub r3, fp, 0x8c                                  |         r3 -= var_8ch;
    0x0001d53c str r3, [fp, -0xf8]                               |         var_f8h = r3;
    0x0001d540 ldr r3, [pc, 0x1b8]                               |         r3 = *(0x1d6fc);
    0x0001d544 lsl r6, r8, 2                                     |         r6 = r8 << 2;
    0x0001d548 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001d54c mov r7, r8                                        |         r7 = r8;
    0x0001d550 and sb, r5, 0x200                                 |         sb = r5 & 0x200;
    0x0001d554 str r3, [fp, -0xfc]                               |         src = r3;
                                                                 | label_6:
    0x0001d558 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0001d55c ldr r2, [r4, 8]                                   |         r2 = *((r4 + 8));
    0x0001d560 add r3, r3, r2                                    |         r3 += r2;
    0x0001d564 cmp r3, r7                                        |         
                                                                 |         if (r3 > r7) {
    0x0001d568 bhi 0x1d620                                       |             goto label_19;
                                                                 |         }
                                                                 |     }
    0x0001d56c ands r5, r5, 4                                    |     r5 &= 4;
                                                                 |     if (r5 != r5) {
    0x0001d570 movne r5, 0                                       |         r5 = 0;
                                                                 |         goto label_20;
                                                                 |     }
                                                                 |     if (r5 != r5) {
                                                                 | label_20:
    0x0001d574 bne 0x1d1c4                                       |         goto label_1;
                                                                 |     }
    0x0001d578 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001d57c ldr r1, [r4]                                      |     r1 = *(r4);
    0x0001d580 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001d584 add r1, r1, r3                                    |     r1 += r3;
    0x0001d588 ldr r3, [pc, 0x174]                               |     r3 = *(0x1d700);
    0x0001d58c mov r2, 4                                         |     r2 = 4;
    0x0001d590 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001d594 sub r1, r1, r8                                    |     r1 -= r8;
    0x0001d598 add r0, r0, r8, lsl 2                             |     r0 += (r8 << 2);
    0x0001d59c bl 0x4d1f4                                        |     qsort ();
    0x0001d5a0 b 0x1d1c4                                         |     goto label_1;
                                                                 | label_16:
    0x0001d5a4 mov r0, sb                                        |     r0 = sb;
    0x0001d5a8 bl 0x1d12c                                        |     globfree64 ();
    0x0001d5ac mov r5, 3                                         |     r5 = 3;
    0x0001d5b0 b 0x1d1c4                                         |     goto label_1;
                                                                 | label_13:
    0x0001d5b4 ldr r7, [r4]                                      |     r7 = *(r4);
    0x0001d5b8 ldr r3, [fp, -0xfc]                               |     r3 = src;
    0x0001d5bc str r4, [sp]                                      |     *(sp) = r4;
    0x0001d5c0 mov r2, r6                                        |     r2 = r6;
    0x0001d5c4 mov r1, sl                                        |     r1 = sl;
    0x0001d5c8 ldr r0, [fp, -0xf8]                               |     r0 = var_f8h;
    0x0001d5cc bl 0x1cc94                                        |     r0 = fcn_0001cc94 (r0, r1, r2);
    0x0001d5d0 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 != r0) {
    0x0001d5d4 bne 0x1d1c4                                       |         goto label_1;
                                                                 |     }
    0x0001d5d8 cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0001d5dc beq 0x1d618                                       |         
    0x0001d5e0 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001d5e4 ldr r2, [r4]                                      |         r2 = *(r4);
    0x0001d5e8 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001d5ec add r3, r7, r3                                    |         r3 = r7 + r3;
    0x0001d5f0 sub r2, r2, r7                                    |         r2 -= r7;
    0x0001d5f4 add r1, r1, r3, lsl 2                             |         r1 += (r3 << 2);
    0x0001d5f8 mov r0, sl                                        |         r0 = sl;
    0x0001d5fc bl 0x1c550                                        |         r0 = fcn_0001c550 (r0, r1);
    0x0001d600 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001d604 beq 0x1d618                                       |             goto label_21;
                                                                 |         }
    0x0001d608 mov r0, r4                                        |         r0 = r4;
    0x0001d60c bl 0x1d12c                                        |         globfree64 ();
    0x0001d610 str r5, [r4]                                      |         *(r4) = r5;
    0x0001d614 b 0x1d4dc                                         |         goto label_4;
                                                                 |     }
                                                                 | label_21:
    0x0001d618 mov r5, r6                                        |     r5 = r6;
    0x0001d61c b 0x1d530                                         |     goto label_5;
                                                                 | label_19:
    0x0001d620 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001d624 cmp sb, 0                                         |     
    0x0001d628 mov sl, sb                                        |     sl = sb;
    0x0001d62c ldr r0, [r2, r6]                                  |     r0 = *((r2 + r6));
                                                                 |     if (sb == 0) {
    0x0001d630 beq 0x1d6a4                                       |         goto label_22;
                                                                 |     }
    0x0001d634 ldr r3, [r4, 0x20]                                |     r3 = *((r4 + 0x20));
    0x0001d638 sub r1, fp, 0xf4                                  |     r1 -= var_f4h;
    0x0001d63c blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r1, r3);
    0x0001d640 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001d644 ldreq r3, [fp, -0xe4]                             |         r3 = var_e4h;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x0001d648 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001d64c andeq r3, r3, 0xf000                              |         r3 &= 0xf000;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001d650 subeq r3, r3, 0x4000                              |         r3 -= 0x4000;
                                                                 |     }
    0x0001d654 clzeq r3, r3                                      |     __asm ("clzeq r3, r3");
                                                                 |     if (r0 != 0) {
    0x0001d658 lsreq r3, r3, 5                                   |         r3 >>= 5;
                                                                 |     }
    0x0001d65c and r3, r3, 1                                     |     r3 &= 1;
                                                                 |     do {
    0x0001d660 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001d664 beq 0x1d6e0                                       |             goto label_23;
                                                                 |         }
    0x0001d668 ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x0001d66c ldr sl, [r3, r6]                                  |         sl = *((r3 + r6));
    0x0001d670 mov r0, sl                                        |         r0 = sl;
    0x0001d674 bl 0x3e3c0                                        |         r0 = strlen ();
    0x0001d678 add r1, r0, 2                                     |         r1 = r0 + 2;
    0x0001d67c str r0, [fp, -0x100]                              |         var_100h = r0;
    0x0001d680 mov r0, sl                                        |         r0 = sl;
    0x0001d684 bl 0x11d30                                        |         fcn_00011d30 ();
    0x0001d688 ldr r2, [fp, -0x100]                              |         r2 = var_100h;
    0x0001d68c subs sl, r0, 0                                    |         sl = r0 - 0;
                                                                 |         if (sl != r0) {
    0x0001d690 bne 0x1d6cc                                       |             goto label_24;
                                                                 |         }
    0x0001d694 mov r0, r4                                        |         r0 = r4;
    0x0001d698 bl 0x1d12c                                        |         globfree64 ();
    0x0001d69c str sl, [r4]                                      |         *(r4) = sl;
    0x0001d6a0 b 0x1d4dc                                         |         goto label_4;
                                                                 | label_22:
    0x0001d6a4 ldr r1, [fp, -0xf8]                               |         r1 = var_f8h;
    0x0001d6a8 bl 0x17f54                                        |         r0 = stat64 ();
    0x0001d6ac cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001d6b0 ldreq r3, [fp, -0x7c]                             |             r3 = var_7ch;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0001d6b4 andeq r3, r3, 0xf000                              |             r3 &= 0xf000;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0001d6b8 subeq sl, r3, 0x4000                              |             sl = r3 - 0x4000;
                                                                 |         }
    0x0001d6bc clzeq sl, sl                                      |         __asm ("clzeq sl, sl");
                                                                 |         if (r0 != 0) {
    0x0001d6c0 lsreq sl, sl, 5                                   |             sl >>= 5;
                                                                 |         }
    0x0001d6c4 and r3, sl, 1                                     |         r3 = sl & 1;
    0x0001d6c8 b 0x1d660                                         |         
                                                                 |     } while (1);
                                                                 | label_24:
    0x0001d6cc add r0, sl, r2                                    |     r0 = sl + r2;
    0x0001d6d0 ldr r1, [fp, -0xfc]                               |     r1 = src;
    0x0001d6d4 bl 0x3e970                                        |     strcpy (r0, r1)
    0x0001d6d8 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001d6dc str sl, [r2, r6]                                  |     *((r2 + r6)) = sl;
                                                                 | label_23:
    0x0001d6e0 add r7, r7, 1                                     |     r7++;
    0x0001d6e4 add r6, r6, 4                                     |     r6 += 4;
    0x0001d6e8 b 0x1d558                                         |     goto label_6;
                                                                 | }
    ; 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 @ 0x44134 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.inet_ntop ()                                 | void inet_ntop (uint32_t arg1, int32_t arg2) {
                                                             |     char * dest;
                                                             |     char * format;
                                                             |     int32_t var_ch;
                                                             |     void * s;
                                                             |     int32_t var_24h;
                                                             |     char * src;
                                                             |     char * var_0h;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_64h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00044134 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00044138 cmp r0, 2                                     |     
    0x0004413c sub sp, sp, 0x64                              |     
    0x00044140 mov sb, r1                                    |     sb = r1;
    0x00044144 str r2, [sp, 4]                               |     dest = r2;
    0x00044148 mov fp, r3                                    |     
                                                             |     if (r0 != 2) {
    0x0004414c beq 0x44170                                   |         
    0x00044150 cmp r0, 0xa                                   |         
                                                             |         if (r0 == 0xa) {
    0x00044154 beq 0x44188                                   |             goto label_3;
                                                             |         }
    0x00044158 ldr r3, [pc, 0x258]                           |         r3 = *(0x443b4);
    0x0004415c bl 0x11934                                    |         fcn_00011934 ();
    0x00044160 mov r2, 0x61                                  |         r2 = 0x61;
    0x00044164 ldr r3, [pc, r3]                              |         r3 = *(0x0004416c);
    0x00044168 str r2, [r0, r3]                              |         *((r0 + r3)) = r2;
    0x0004416c b 0x44300                                     |         goto label_4;
                                                             |     }
    0x00044170 mov r2, r3                                    |     r2 = r3;
    0x00044174 ldr r1, [sp, 4]                               |     r1 = dest;
    0x00044178 mov r0, sb                                    |     r0 = sb;
    0x0004417c bl 0x43f34                                    |     fcn_00043f34 (r0, r1);
                                                             | label_0:
    0x00044180 add sp, sp, 0x64                              |     
    0x00044184 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_3:
    0x00044188 add sl, sp, 0x10                              |     sl += s;
    0x0004418c mov r2, 0x20                                  |     r2 = 0x20;
    0x00044190 mov r1, 0                                     |     r1 = 0;
    0x00044194 mov r0, sl                                    |     r0 = sl;
    0x00044198 bl 0x3e310                                    |     memset (r0, r1, r2);
    0x0004419c mov r2, 0                                     |     r2 = 0;
                                                             |     do {
    0x000441a0 mov ip, sb                                    |         
    0x000441a4 ldrb lr, [ip, r2]!                            |         
    0x000441a8 asr r1, r2, 1                                 |         r1 = r2 >> 1;
    0x000441ac ldrb r0, [ip, 1]                              |         r0 = *((ip + 1));
    0x000441b0 add r3, sp, 0x60                              |         r3 += var_60h;
    0x000441b4 add r2, r2, 2                                 |         r2 += 2;
    0x000441b8 add r1, r3, r1, lsl 2                         |         r1 = r3 + (r1 << 2);
    0x000441bc orr r0, r0, lr, lsl 8                         |         r0 |= (lr << 8);
    0x000441c0 cmp r2, 0x10                                  |         
    0x000441c4 str r0, [r1, -0x50]                           |         s = r0;
    0x000441c8 bne 0x441a0                                   |         
                                                             |     } while (r2 != 0x10);
    0x000441cc mov r5, 0                                     |     r5 = 0;
    0x000441d0 mvn r4, 0                                     |     r4 = ~0;
    0x000441d4 mov r1, r5                                    |     r1 = r5;
    0x000441d8 mov r2, r4                                    |     r2 = r4;
    0x000441dc mov r0, r5                                    |     r0 = r5;
                                                             |     do {
    0x000441e0 ldr ip, [sl, r0, lsl 2]                       |         offset_0 = r0 << 2;
                                                             |         ip = *((sl + offset_0));
    0x000441e4 cmp ip, 0                                     |         
                                                             |         if (ip == 0) {
    0x000441e8 bne 0x44200                                   |             
    0x000441ec cmn r2, 1                                     |             
                                                             |             if (r2 == 1) {
    0x000441f0 addne r1, r1, 1                               |                 r1++;
                                                             |             }
                                                             |             if (r2 != 1) {
    0x000441f4 moveq r2, r0                                  |                 r2 = r0;
                                                             |             }
                                                             |             if (r2 != 1) {
    0x000441f8 moveq r1, 1                                   |                 r1 = 1;
                                                             |             }
    0x000441fc b 0x4422c                                     |             
                                                             |         } else {
    0x00044200 cmn r2, 1                                     |             
                                                             |             if (r2 == 1) {
    0x00044204 beq 0x4422c                                   |                 goto label_5;
                                                             |             }
    0x00044208 cmn r4, 1                                     |             
                                                             |             if (r4 == 1) {
    0x0004420c movne ip, 0                                   |                 
                                                             |             }
                                                             |             if (r4 != 1) {
    0x00044210 moveq ip, 1                                   |                 
                                                             |             }
    0x00044214 cmp r1, r5                                    |             
                                                             |             if (r1 <= r5) {
    0x00044218 orrgt ip, ip, 1                               |                 
                                                             |             }
    0x0004421c cmp ip, 0                                     |             
                                                             |             if (ip == 0) {
    0x00044220 movne r4, r2                                  |                 r4 = r2;
                                                             |             }
                                                             |             if (ip == 0) {
    0x00044224 movne r5, r1                                  |                 r5 = r1;
                                                             |             }
    0x00044228 mvn r2, 0                                     |             r2 = ~0;
                                                             |         }
                                                             | label_5:
    0x0004422c add r0, r0, 1                                 |         r0++;
    0x00044230 cmp r0, 8                                     |         
    0x00044234 bne 0x441e0                                   |         
                                                             |     } while (r0 != 8);
    0x00044238 cmn r2, 1                                     |     
                                                             |     if (r2 == 1) {
    0x0004423c beq 0x4426c                                   |         goto label_6;
                                                             |     }
    0x00044240 cmn r4, 1                                     |     
                                                             |     if (r4 == 1) {
    0x00044244 movne r0, 0                                   |         r0 = 0;
                                                             |     }
                                                             |     if (r4 != 1) {
    0x00044248 moveq r0, 1                                   |         r0 = 1;
                                                             |     }
    0x0004424c cmp r5, r1                                    |     
                                                             |     if (r5 >= r1) {
    0x00044250 orrlt r0, r0, 1                               |         r0 |= 1;
                                                             |     }
    0x00044254 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00044258 movne r5, r1                                  |         r5 = r1;
                                                             |     }
    0x0004425c movne r4, r2                                  |     r4 = r2;
                                                             |     while (r4 != 1) {
    0x00044260 cmp r5, 1                                     |         
                                                             |         if (r5 > 1) {
    0x00044264 mvnle r4, 0                                   |             r4 = ~0;
                                                             |         }
    0x00044268 b 0x44274                                     |         goto label_7;
                                                             | label_6:
    0x0004426c cmn r4, 1                                     |         
    0x00044270 bne 0x44260                                   |         
                                                             |     }
                                                             | label_7:
    0x00044274 ldr r3, [pc, 0x140]                           |     r3 = *(0x443b8);
    0x00044278 add r2, sp, 0x30                              |     r2 += src;
    0x0004427c add r3, pc, r3                                |     r3 = pc + r3;
    0x00044280 str r3, [sp, 8]                               |     format = r3;
    0x00044284 mov r6, 0                                     |     r6 = 0;
    0x00044288 mov r8, r2                                    |     r8 = r2;
    0x0004428c mov r3, 0x3a                                  |     r3 = 0x3a;
                                                             |     do {
    0x00044290 cmp r4, r6                                    |         
                                                             |         if (r4 <= r6) {
    0x00044294 movgt r1, 0                                   |             r1 = 0;
                                                             |         }
                                                             |         if (r4 > r6) {
    0x00044298 movle r1, 1                                   |             r1 = 1;
                                                             |         }
    0x0004429c cmn r4, 1                                     |         
                                                             |         if (r4 != 1) {
    0x000442a0 moveq r1, 0                                   |             r1 = 0;
                                                             |         }
    0x000442a4 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000442a8 beq 0x44308                                   |             goto label_8;
                                                             |         }
    0x000442ac add r1, r4, r5                                |         r1 = r4 + r5;
    0x000442b0 cmp r1, r6                                    |         
                                                             |         if (r1 <= r6) {
    0x000442b4 ble 0x44308                                   |             goto label_8;
                                                             |         }
    0x000442b8 cmp r4, r6                                    |         
                                                             |         if (r4 != r6) {
    0x000442bc strbeq r3, [r2]                               |             *(r2) = r3;
                                                             |         }
                                                             |         if (r4 != r6) {
    0x000442c0 addeq r2, r2, 1                               |             r2++;
                                                             |         }
                                                             | label_2:
    0x000442c4 add r6, r6, 1                                 |         r6++;
    0x000442c8 cmp r6, 8                                     |         
    0x000442cc bne 0x44290                                   |         
                                                             |     } while (r6 != 8);
    0x000442d0 cmn r4, 1                                     |     
                                                             |     if (r4 != 1) {
    0x000442d4 bne 0x4436c                                   |         goto label_9;
                                                             |     }
                                                             | label_1:
    0x000442d8 mov r3, 0                                     |     r3 = 0;
    0x000442dc strb r3, [r2], 1                              |     *(r2) = r3;
                                                             |     r2++;
    0x000442e0 sub r2, r2, r8                                |     r2 -= r8;
    0x000442e4 cmp fp, r2                                    |     
                                                             |     if (fp >= r2) {
    0x000442e8 bhs 0x443a8                                   |         goto label_10;
                                                             |     }
    0x000442ec ldr r2, [pc, 0xcc]                            |     r2 = *(0x443bc);
    0x000442f0 bl 0x11934                                    |     fcn_00011934 ();
    0x000442f4 mov r1, 0x1c                                  |     r1 = 0x1c;
    0x000442f8 ldr r2, [pc, r2]                              |     r2 = *(0x00044300);
    0x000442fc str r1, [r0, r2]                              |     *((r0 + r2)) = r1;
                                                             | label_4:
    0x00044300 mov r0, 0                                     |     r0 = 0;
    0x00044304 b 0x44180                                     |     goto label_0;
                                                             | label_8:
    0x00044308 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0004430c beq 0x44384                                   |         goto label_11;
                                                             |     }
    0x00044310 cmp r4, 0                                     |     
    0x00044314 cmpeq r6, 6                                   |     __asm ("cmpeq r6, 6");
    0x00044318 add r7, r2, 1                                 |     r7 += var_0h;
    0x0004431c strb r3, [r2]                                 |     *(r2) = r3;
                                                             |     if (r4 != 0) {
    0x00044320 bne 0x44388                                   |         goto label_12;
                                                             |     }
    0x00044324 cmp r5, 6                                     |     
                                                             |     if (r5 != 6) {
    0x00044328 beq 0x44344                                   |         
    0x0004432c cmp r5, 5                                     |         
                                                             |         if (r5 != 5) {
    0x00044330 bne 0x44388                                   |             goto label_12;
                                                             |         }
    0x00044334 ldr r2, [sp, 0x24]                            |         r2 = var_24h;
    0x00044338 ldr r1, [pc, 0x84]                            |         r1 = *(0x443c0);
    0x0004433c cmp r2, r1                                    |         
                                                             |         if (r2 != r1) {
    0x00044340 bne 0x44388                                   |             goto label_12;
                                                             |         }
                                                             |     }
    0x00044344 sub r2, r7, r8                                |     r2 = r7 - r8;
    0x00044348 rsb r2, r2, 0x2e                              |     r2 = 0x2e - r2;
    0x0004434c mov r1, r7                                    |     r1 = r7;
    0x00044350 add r0, sb, 0xc                               |     r0 = sb + 0xc;
    0x00044354 bl 0x43f34                                    |     r0 = fcn_00043f34 (r0, r1);
    0x00044358 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0004435c beq 0x44180                                   |         goto label_0;
                                                             |     }
    0x00044360 mov r0, r7                                    |     r0 = r7;
    0x00044364 bl 0x3e3c0                                    |     r0 = strlen ();
    0x00044368 add r2, r7, r0                                |     r2 = r7 + r0;
                                                             | label_9:
    0x0004436c add r4, r4, r5                                |     r4 += r5;
    0x00044370 cmp r4, 8                                     |     
                                                             |     if (r4 != 8) {
    0x00044374 moveq r3, 0x3a                                |         r3 = 0x3a;
                                                             |     }
                                                             |     if (r4 != 8) {
    0x00044378 strbeq r3, [r2]                               |         *(r2) = r3;
                                                             |     }
                                                             |     if (r4 != 8) {
    0x0004437c addeq r2, r2, 1                               |         r2++;
                                                             |     }
    0x00044380 b 0x442d8                                     |     goto label_1;
                                                             | label_11:
    0x00044384 mov r7, r2                                    |     r7 = r2;
                                                             | label_12:
    0x00044388 ldr r2, [sl, r6, lsl 2]                       |     offset_1 = r6 << 2;
                                                             |     r2 = *((sl + offset_1));
    0x0004438c ldr r1, [sp, 8]                               |     r1 = format;
    0x00044390 mov r0, r7                                    |     r0 = r7;
    0x00044394 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00044398 bl 0x34d3c                                    |     sprintf ();
    0x0004439c ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x000443a0 add r2, r7, r0                                |     r2 = r7 + r0;
    0x000443a4 b 0x442c4                                     |     goto label_2;
                                                             | label_10:
    0x000443a8 mov r1, r8                                    |     r1 = r8;
    0x000443ac ldr r0, [sp, 4]                               |     r0 = dest;
    0x000443b0 bl 0x3e970                                    |     strcpy (r0, r1)
    0x000443b4 b 0x44180                                     |     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 @ 0x4cd34 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.ptsname_r ()                                 | void ptsname_r (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     char * s2;
                                                             |     int32_t var_18h;
                                                             |     r0 = arg1;
    0x0004cd34 ldr r3, [pc, 0xc4]                            |     r3 = *(0x4cdfc);
    0x0004cd38 push {r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0004cd3c ldr r3, [pc, r3]                              |     r3 = *(0x0004cd44);
    0x0004cd40 mov r4, r0                                    |     r4 = r0;
    0x0004cd44 sub sp, sp, 0x18                              |     
    0x0004cd48 bl 0x11934                                    |     fcn_00011934 ();
    0x0004cd4c mov r7, r1                                    |     r7 = r1;
    0x0004cd50 ldr r8, [r0, r3]                              |     r8 = *((r0 + r3));
    0x0004cd54 mov sb, r2                                    |     sb = r2;
    0x0004cd58 mov r6, r0                                    |     r6 = r0;
    0x0004cd5c add r2, sp, 8                                 |     r2 += var_8h;
    0x0004cd60 mov r0, r4                                    |     r0 = r4;
    0x0004cd64 ldr r1, [pc, 0x98]                            |     r1 = swscanf;
    0x0004cd68 bl 0x165d8                                    |     r0 = ioctl ();
    0x0004cd6c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x0004cd70 bne 0x4cdf0                                   |         goto label_0;
                                                             |     }
    0x0004cd74 ldr r2, [sp, 8]                               |     r2 = var_8h;
    0x0004cd78 mvn r3, 9                                     |     r3 = ~9;
    0x0004cd7c add r5, sp, 0x17                              |     r5 += s2;
    0x0004cd80 str r3, [sp]                                  |     *(sp) = r3;
    0x0004cd84 mov r0, r5                                    |     r0 = r5;
    0x0004cd88 str r4, [sp, 4]                               |     var_4h = r4;
    0x0004cd8c asr r3, r2, 0x1f                              |     r3 = r2 >> 0x1f;
    0x0004cd90 bl 0x369d8                                    |     r0 = fcn_000369d8 (r0, r1, r2);
    0x0004cd94 sub r5, r5, r0                                |     r5 -= r0;
    0x0004cd98 add r5, r5, 0xa                               |     r5 += 0xa;
    0x0004cd9c cmp r5, sb                                    |     
    0x0004cda0 mov sl, r0                                    |     sl = r0;
                                                             |     if (r5 < sb) {
    0x0004cda4 bls 0x4cdbc                                   |         goto label_1;
                                                             |     }
    0x0004cda8 ldr r3, [pc, 0x58]                            |     r3 = *(0x4ce04);
    0x0004cdac mov r4, 0x22                                  |     r4 = 0x22;
    0x0004cdb0 ldr r3, [pc, r3]                              |     r3 = *(0x0004cdb8);
                                                             |     do {
    0x0004cdb4 str r4, [r6, r3]                              |         *((r6 + r3)) = r4;
    0x0004cdb8 b 0x4cde4                                     |         goto label_2;
                                                             | label_1:
    0x0004cdbc ldr r1, [pc, 0x48]                            |         r1 = *(0x4ce08);
    0x0004cdc0 mov r0, r7                                    |         r0 = r7;
    0x0004cdc4 add r1, pc, r1                                |         r1 = pc + r1;
    0x0004cdc8 bl 0x3e970                                    |         strcpy (r0, r1)
    0x0004cdcc mov r1, sl                                    |         r1 = sl;
    0x0004cdd0 mov r0, r7                                    |         r0 = r7;
    0x0004cdd4 bl 0x3ea84                                    |         strcat ();
    0x0004cdd8 ldr r3, [pc, 0x30]                            |         r3 = *(0x4ce0c);
    0x0004cddc ldr r3, [pc, r3]                              |         r3 = *(0x0004cde4);
    0x0004cde0 str r8, [r6, r3]                              |         *((r6 + r3)) = r8;
                                                             | label_2:
    0x0004cde4 mov r0, r4                                    |         r0 = r4;
    0x0004cde8 add sp, sp, 0x18                              |         
    0x0004cdec pop {r4, r5, r6, r7, r8, sb, sl, pc}          |         
                                                             | label_0:
    0x0004cdf0 ldr r3, [pc, 0x1c]                            |         r3 = *(0x4ce10);
    0x0004cdf4 mov r4, 0x19                                  |         r4 = 0x19;
    0x0004cdf8 ldr r3, [pc, r3]                              |         r3 = sym.swscanf;
    0x0004cdfc b 0x4cdb4                                     |         
                                                             |     } 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 @ 0x4ba2c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.realpath ()                                      | void realpath (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_4h;
                                                                 |     char * var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     void * s2;
                                                                 |     int32_t var_1000h;
                                                                 |     char * dest;
                                                                 |     int8_t var_1h;
                                                                 |     int8_t var_2h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0004ba2c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0004ba30 subs r8, r0, 0                                    |     r8 = r0 - 0;
    0x0004ba34 sub sp, sp, 0x1000                                |     
    0x0004ba38 sub sp, sp, 0x1c                                  |     
                                                                 |     if (r8 != r0) {
    0x0004ba3c bne 0x4ba64                                       |         goto label_9;
                                                                 |     }
    0x0004ba40 ldr r3, [pc, 0x2dc]                               |     r3 = *(0x4bd20);
    0x0004ba44 bl 0x11934                                        |     fcn_00011934 ();
    0x0004ba48 mov r2, 0x16                                      |     r2 = 0x16;
    0x0004ba4c ldr r3, [pc, r3]                                  |     r3 = *(0x0004ba54);
                                                                 |     do {
                                                                 | label_0:
    0x0004ba50 str r2, [r0, r3]                                  |         *((r0 + r3)) = r2;
                                                                 | label_5:
    0x0004ba54 mov r0, 0                                         |         r0 = 0;
                                                                 | label_1:
    0x0004ba58 add sp, sp, 0x1000                                |         
    0x0004ba5c add sp, sp, 0x1c                                  |         
    0x0004ba60 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_9:
    0x0004ba64 mov r5, r1                                        |         r5 = r1;
    0x0004ba68 ldrb r1, [r8]                                     |         r1 = *(r8);
    0x0004ba6c cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x0004ba70 bne 0x4ba88                                       |             goto label_10;
                                                                 |         }
    0x0004ba74 ldr r3, [pc, 0x2ac]                               |         r3 = fputs;
    0x0004ba78 bl 0x11934                                        |         fcn_00011934 ();
    0x0004ba7c mov r2, 2                                         |         r2 = 2;
    0x0004ba80 ldr r3, [pc, r3]                                  |         r3 = *(0x0004ba88);
    0x0004ba84 b 0x4ba50                                         |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x0004ba88 bl 0x3e3c0                                        |     strlen ();
    0x0004ba8c ldr r3, [pc, 0x298]                               |     r3 = *(0x4bd28);
    0x0004ba90 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0004ba94 cmp r0, r3                                        |     
                                                                 |     if (r0 >= r3) {
    0x0004ba98 bls 0x4bab0                                       |         
    0x0004ba9c ldr r3, [pc, 0x28c]                               |         r3 = *(0x4bd2c);
    0x0004baa0 bl 0x11934                                        |         fcn_00011934 ();
    0x0004baa4 mov r2, 0x24                                      |         r2 = 0x24;
    0x0004baa8 ldr r3, [pc, r3]                                  |         r3 = *(0x0004bab0);
    0x0004baac b 0x4ba50                                         |         goto label_0;
                                                                 |     }
    0x0004bab0 ldr sb, [pc, 0x27c]                               |     sb = *(0x4bd30);
    0x0004bab4 add r7, sp, 0x18                                  |     r7 += s2;
    0x0004bab8 sub r4, sb, r0                                    |     r4 = sb - r0;
    0x0004babc add r6, r7, r4                                    |     r6 = r7 + r4;
    0x0004bac0 mov r1, r8                                        |     r1 = r8;
    0x0004bac4 mov r0, r6                                        |     r0 = r6;
    0x0004bac8 bl 0x3e970                                        |     strcpy (r0, r1)
    0x0004bacc cmp r5, 0                                         |     
    0x0004bad0 str sb, [sp, 0xc]                                 |     var_ch = sb;
                                                                 |     if (r5 == 0) {
    0x0004bad4 movne sb, 0                                       |         sb = 0;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x0004bad8 bne 0x4baec                                       |         
    0x0004badc mov r0, 0x1000                                    |         r0 = 0x1000;
    0x0004bae0 bl 0x11a90                                        |         r0 = fcn_00011a90 ();
    0x0004bae4 mov sb, r0                                        |         sb = r0;
    0x0004bae8 mov r5, r0                                        |         r5 = r0;
                                                                 |     }
    0x0004baec ldrb r3, [r7, r4]                                 |     r3 = *((r7 + r4));
    0x0004baf0 add sl, r5, 0xff0                                 |     sl = r5 + 0xff0;
    0x0004baf4 cmp r3, 0x2f                                      |     
    0x0004baf8 add sl, sl, 0xe                                   |     sl += 0xe;
                                                                 |     if (r3 != 0x2f) {
    0x0004bafc addeq r4, r5, 1                                   |         r4 = r5 + 1;
                                                                 |     }
                                                                 |     if (r3 != 0x2f) {
    0x0004bb00 strbeq r3, [r5]                                   |         *(r5) = r3;
                                                                 |     }
                                                                 |     if (r3 != 0x2f) {
    0x0004bb04 addeq r6, r6, 1                                   |         r6++;
                                                                 |     }
                                                                 |     if (r3 != 0x2f) {
    0x0004bb08 beq 0x4bb40                                       |         
    0x0004bb0c ldr r1, [pc, 0x220]                               |         r1 = *(0x4bd30);
    0x0004bb10 mov r0, r5                                        |         r0 = r5;
    0x0004bb14 bl 0x139ac                                        |         r0 = getcwd ();
    0x0004bb18 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0004bb1c beq 0x4bc4c                                       |             goto label_11;
                                                                 |         }
    0x0004bb20 mov r0, r5                                        |         r0 = r5;
    0x0004bb24 bl 0x3e3c0                                        |         r0 = strlen ();
    0x0004bb28 add r4, r5, r0                                    |         r4 = r5 + r0;
    0x0004bb2c ldrb r3, [r4, -1]                                 |         r3 = *((r4 - 1));
    0x0004bb30 cmp r3, 0x2f                                      |         
                                                                 |         if (r3 == 0x2f) {
    0x0004bb34 movne r3, 0x2f                                    |             r3 = 0x2f;
                                                                 |         }
                                                                 |         if (r3 == 0x2f) {
    0x0004bb38 addne r4, r4, 1                                   |             r4++;
                                                                 |         }
                                                                 |         if (r3 != 0x2f) {
    0x0004bb3c strbne r3, [r5, r0]                               |             *((r5 + r0)) = r3;
                                                                 |             goto label_12;
                                                                 |         }
                                                                 |     }
                                                                 | label_12:
    0x0004bb40 add r3, r5, 1                                     |     r3 = r5 + 1;
    0x0004bb44 mov r2, 0                                         |     r2 = 0;
    0x0004bb48 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 |     do {
                                                                 | label_4:
    0x0004bb4c ldrb r3, [r6]                                     |         r3 = *(r6);
    0x0004bb50 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0004bb54 bne 0x4bb80                                       |             
    0x0004bb58 add r3, r5, 1                                     |             r3 = r5 + 1;
    0x0004bb5c cmp r4, r3                                        |             
                                                                 |             if (r4 != r3) {
    0x0004bb60 beq 0x4bb70                                       |                 
    0x0004bb64 ldrb r3, [r4, -1]                                 |                 r3 = *((r4 - 1));
    0x0004bb68 cmp r3, 0x2f                                      |                 
                                                                 |                 if (r3 == 0x2f) {
    0x0004bb6c subeq r4, r4, 1                                   |                     r4--;
                                                                 |                     goto label_13;
                                                                 |                 }
                                                                 |             }
                                                                 | label_13:
    0x0004bb70 mov r3, 0                                         |             r3 = 0;
    0x0004bb74 strb r3, [r4]                                     |             *(r4) = r3;
    0x0004bb78 mov r0, r5                                        |             r0 = r5;
    0x0004bb7c b 0x4ba58                                         |             goto label_1;
                                                                 |         }
    0x0004bb80 cmp r3, 0x2f                                      |         
                                                                 |         if (r3 != 0x2f) {
    0x0004bb84 bne 0x4bb90                                       |             goto label_14;
                                                                 |         }
                                                                 | label_2:
    0x0004bb88 add r6, r6, 1                                     |         r6 += var_1h;
    0x0004bb8c b 0x4bb4c                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x0004bb90 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0004bb94 beq 0x4bbe0                                       |         
                                                                 | label_3:
    0x0004bb98 mov r1, r6                                        |         r1 = r6;
                                                                 | label_6:
    0x0004bb9c mov r6, r1                                        |         r6 = r1;
    0x0004bba0 ldrb r3, [r1], 1                                  |         r3 = *(r1);
                                                                 |         r1++;
    0x0004bba4 subs fp, r3, 0x2f                                 |         
                                                                 |         if (fp == r3) {
    0x0004bba8 movne fp, 1                                       |             
                                                                 |         }
    0x0004bbac cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0004bbb0 moveq fp, 0                                       |             
                                                                 |         }
    0x0004bbb4 cmp fp, 0                                         |         
                                                                 |         if (fp != 0) {
    0x0004bbb8 bne 0x4bc30                                       |             goto label_15;
                                                                 |         }
    0x0004bbbc add r3, r2, 1                                     |         r3 = r2 + 1;
    0x0004bbc0 cmp r2, 0x20                                      |         
    0x0004bbc4 str r3, [sp, 4]                                   |         var_4h = r3;
                                                                 |         if (r2 <= 0x20) {
    0x0004bbc8 ble 0x4bc60                                       |             goto label_16;
                                                                 |         }
    0x0004bbcc ldr r3, [pc, 0x164]                               |         r3 = *(0x4bd34);
    0x0004bbd0 bl 0x11934                                        |         fcn_00011934 ();
    0x0004bbd4 mov r2, 0x28                                      |         r2 = 0x28;
    0x0004bbd8 ldr r3, [pc, r3]                                  |         r3 = *(0x0004bbe0);
    0x0004bbdc b 0x4bc48                                         |         goto label_17;
                                                                 |     }
    0x0004bbe0 ldrb r3, [r6, 1]                                  |     r3 = var_1h;
    0x0004bbe4 cmp r3, 0x2f                                      |     
    0x0004bbe8 cmpne r3, 0                                       |     __asm ("cmpne r3, 0");
                                                                 |     if (r3 == 0x2f) {
    0x0004bbec beq 0x4bb88                                       |         goto label_2;
                                                                 |     }
    0x0004bbf0 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0004bbf4 bne 0x4bb98                                       |         goto label_3;
                                                                 |     }
    0x0004bbf8 ldrb r3, [r6, 2]                                  |     r3 = var_2h;
    0x0004bbfc cmp r3, 0x2f                                      |     
    0x0004bc00 cmpne r3, 0                                       |     __asm ("cmpne r3, 0");
                                                                 |     if (r3 != 0x2f) {
    0x0004bc04 bne 0x4bb98                                       |         goto label_3;
                                                                 |     }
    0x0004bc08 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0004bc0c add r6, r6, 2                                     |     r6 += var_2h;
    0x0004bc10 cmp r4, r3                                        |     
                                                                 |     if (r4 == r3) {
    0x0004bc14 beq 0x4bb4c                                       |         goto label_4;
                                                                 |     }
    0x0004bc18 sub r3, r4, 1                                     |     r3 = r4 - 1;
                                                                 |     do {
    0x0004bc1c mov r4, r3                                        |         r4 = r3;
    0x0004bc20 ldrb r1, [r3, -1]!                                |         r1 = *((r3 -= 1));
    0x0004bc24 cmp r1, 0x2f                                      |         
    0x0004bc28 bne 0x4bc1c                                       |         
                                                                 |     } while (r1 != 0x2f);
    0x0004bc2c b 0x4bb4c                                         |     goto label_4;
                                                                 | label_15:
    0x0004bc30 cmp r4, sl                                        |     
                                                                 |     if (r4 < sl) {
    0x0004bc34 bls 0x4bc58                                       |         goto label_18;
                                                                 |     }
                                                                 | label_7:
    0x0004bc38 ldr r3, [pc, 0xfc]                                |     r3 = *(0x4bd38);
    0x0004bc3c bl 0x11934                                        |     fcn_00011934 ();
    0x0004bc40 mov r2, 0x24                                      |     r2 = 0x24;
    0x0004bc44 ldr r3, [pc, r3]                                  |     r3 = *(0x0004bc4c);
                                                                 | label_17:
    0x0004bc48 str r2, [r0, r3]                                  |     *((r0 + r3)) = r2;
                                                                 |     do {
                                                                 | label_11:
    0x0004bc4c mov r0, sb                                        |         r0 = sb;
    0x0004bc50 bl 0x120a8                                        |         fcn_000120a8 ();
    0x0004bc54 b 0x4ba54                                         |         goto label_5;
                                                                 | label_18:
    0x0004bc58 strb r3, [r4], 1                                  |         *(r4) = r3;
                                                                 |         r4++;
    0x0004bc5c b 0x4bb9c                                         |         goto label_6;
                                                                 | label_16:
    0x0004bc60 mov r0, r6                                        |         r0 = r6;
    0x0004bc64 bl 0x3e3c0                                        |         strlen ();
    0x0004bc68 ldr r2, [pc, 0xd0]                                |         r2 = *(0x4bd3c);
    0x0004bc6c strb fp, [r4]                                     |         *(r4) = fp;
    0x0004bc70 ldr r2, [pc, r2]                                  |         r2 = *(0x0004bc78);
    0x0004bc74 mov r1, r7                                        |         r1 = r7;
    0x0004bc78 mov r8, r0                                        |         r8 = r0;
    0x0004bc7c bl 0x11934                                        |         fcn_00011934 ();
    0x0004bc80 ldr fp, [r0, r2]                                  |         fp = *((r0 + r2));
    0x0004bc84 str r0, [sp, 0x14]                                |         var_14h = r0;
    0x0004bc88 ldr r2, [pc, 0xa4]                                |         r2 = *(0x4bd30);
    0x0004bc8c mov r0, r5                                        |         r0 = r5;
    0x0004bc90 bl 0x14404                                        |         readlink ();
    0x0004bc94 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0004bc98 subs r2, r0, 0                                    |         r2 = r0 - 0;
                                                                 |         if (r2 >= r0) {
    0x0004bc9c bge 0x4bcd8                                       |             goto label_19;
                                                                 |         }
    0x0004bca0 ldr r2, [pc, 0x9c]                                |         r2 = *(0x4bd40);
    0x0004bca4 ldr r2, [pc, r2]                                  |         r2 = *(0x0004bcac);
    0x0004bca8 ldr r3, [r3, r2]                                  |         r3 = *((r3 + r2));
    0x0004bcac cmp r3, 0x16                                      |         
    0x0004bcb0 bne 0x4bc4c                                       |         
                                                                 |     } while (r3 != 0x16);
                                                                 | label_8:
    0x0004bcb4 ldr r3, [pc, 0x8c]                                |     r3 = *(0x4bd44);
    0x0004bcb8 bl 0x11934                                        |     fcn_00011934 ();
    0x0004bcbc ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x0004bcc0 ldr r3, [pc, r3]                                  |     r3 = *(0x0004bcc8);
    0x0004bcc4 add r4, r4, 1                                     |     r4++;
    0x0004bcc8 str fp, [r0, r3]                                  |     *((r0 + r3)) = fp;
    0x0004bccc mov r3, 0x2f                                      |     r3 = 0x2f;
    0x0004bcd0 strb r3, [r4, -1]                                 |     *((r4 - 1)) = r3;
    0x0004bcd4 b 0x4bb4c                                         |     goto label_4;
                                                                 | label_19:
    0x0004bcd8 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x0004bcdc add r3, r2, r8                                    |     r3 = r2 + r8;
    0x0004bce0 cmp r3, r1                                        |     
                                                                 |     if (r3 > r1) {
    0x0004bce4 bhi 0x4bc38                                       |         goto label_7;
                                                                 |     }
    0x0004bce8 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0004bcec cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x0004bcf0 moveq r4, r5                                      |         r4 = r5;
                                                                 |     }
                                                                 |     if (r3 == 0x2f) {
    0x0004bcf4 beq 0x4bd04                                       |         goto label_20;
                                                                 |     }
                                                                 |     do {
    0x0004bcf8 ldrb r3, [r4, -1]!                                |         r3 = *((r4 -= 1));
    0x0004bcfc cmp r3, 0x2f                                      |         
    0x0004bd00 bne 0x4bcf8                                       |         
                                                                 |     } while (r3 != 0x2f);
                                                                 | label_20:
    0x0004bd04 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0004bd08 mov r1, r7                                        |     r1 = r7;
    0x0004bd0c sub r6, r3, r8                                    |     r6 = r3 - r8;
    0x0004bd10 sub r6, r6, r2                                    |     r6 -= r2;
    0x0004bd14 add r6, r7, r6                                    |     r6 = r7 + r6;
    0x0004bd18 mov r0, r6                                        |     r0 = r6;
    0x0004bd1c bl 0x3e3b0                                        |     memmove ();
    0x0004bd20 b 0x4bcb4                                         |     goto label_8;
                                                                 | }
    ; 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 @ 0x319d8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sgetspent_r ()                   | void sgetspent_r (int32_t arg_18h, uint32_t arg1, int32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000319d8 push {r4, r5, r6, r7, r8, lr}     |     
    0x000319dc ldr r7, [sp, 0x18]                |     r7 = *(arg_18h);
    0x000319e0 mov ip, 0                         |     
    0x000319e4 cmp r3, 0xff                      |     
    0x000319e8 str ip, [r7]                      |     *(r7) = ip;
    0x000319ec bhi 0x31a0c                       |     
                                                 |     while (r0 >= r8) {
    0x000319f0 ldr r2, [pc, 0x5c]                |         r2 = *(0x31a50);
    0x000319f4 bl 0x11934                        |         fcn_00011934 ();
    0x000319f8 mov r3, 0x22                      |         r3 = 0x22;
    0x000319fc ldr r2, [pc, r2]                  |         r2 = *(0x00031a04);
    0x00031a00 str r3, [r0, r2]                  |         *((r0 + r2)) = r3;
    0x00031a04 mov r0, r3                        |         r0 = r3;
    0x00031a08 pop {r4, r5, r6, r7, r8, pc}      |         
    0x00031a0c cmp r0, r2                        |         
    0x00031a10 mov r6, r0                        |         r6 = r0;
    0x00031a14 mov r8, r3                        |         r8 = r3;
    0x00031a18 mov r4, r2                        |         r4 = r2;
    0x00031a1c mov r5, r1                        |         r5 = r1;
                                                 |         if (r0 == r2) {
    0x00031a20 beq 0x31a3c                       |             goto label_0;
                                                 |         }
    0x00031a24 bl 0x3e3c0                        |         r0 = strlen ();
    0x00031a28 cmp r0, r8                        |         
    0x00031a2c bhs 0x319f0                       |         
                                                 |     }
    0x00031a30 mov r1, r6                        |     r1 = r6;
    0x00031a34 mov r0, r4                        |     r0 = r4;
    0x00031a38 bl 0x3e970                        |     strcpy (r0, r1)
                                                 | label_0:
    0x00031a3c mov r1, r4                        |     r1 = r4;
    0x00031a40 mov r0, r5                        |     r0 = r5;
    0x00031a44 bl 0x33408                        |     r0 = fcn_00033408 (r0, r1);
    0x00031a48 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00031a4c streq r5, [r7]                    |         *(r7) = r5;
                                                 |     }
    0x00031a50 pop {r4, r5, r6, r7, r8, pc}      |     
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libuClibc-1.0.31.so @ 0x2c944 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.timegm ()                | void timegm (int32_t arg1) {
                                         |     void * s;
                                         |     char * dest;
                                         |     int32_t var_34h;
                                         |     r0 = arg1;
    0x0002c944 push {r4, r5, lr}         |     
    0x0002c948 sub sp, sp, 0x34          |     
    0x0002c94c mov r4, sp                |     r4 = sp;
    0x0002c950 mov r5, r0                |     r5 = r0;
    0x0002c954 mov r2, 0x30              |     r2 = 0x30;
    0x0002c958 mov r1, 0                 |     r1 = 0;
    0x0002c95c mov r0, r4                |     r0 = r4;
    0x0002c960 bl 0x3e310                |     memset (r0, r1, r2);
    0x0002c964 ldr r1, [pc, 0x20]        |     r1 = *(0x2c988);
    0x0002c968 add r0, sp, 0x10          |     r0 += dest;
    0x0002c96c add r1, pc, r1            |     r1 = pc + r1;
    0x0002c970 bl 0x3e970                |     strcpy (r0, r1)
    0x0002c974 mov r2, r4                |     r2 = r4;
    0x0002c978 mov r1, 1                 |     r1 = 1;
    0x0002c97c mov r0, r5                |     r0 = r5;
    0x0002c980 bl 0x2c990                |     fcn_0002c990 (r0, r1);
    0x0002c984 add sp, sp, 0x34          |     
    0x0002c988 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 @ 0x405b4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.ttyname_r ()                                 | void ttyname_r (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     void * var_4h;
                                                             |     char * path;
                                                             |     char * var_0h_2;
                                                             |     void * buf;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_48h_2;
                                                             |     int32_t var_80h;
                                                             |     int32_t var_90h;
                                                             |     int32_t var_a0h;
                                                             |     int32_t var_a0h_2;
                                                             |     int32_t var_dch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000405b4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000405b8 sub sp, sp, 0xdc                              |     
    0x000405bc mov r8, r1                                    |     r8 = r1;
    0x000405c0 add r1, sp, 0x28                              |     r1 += buf;
    0x000405c4 mov r4, r0                                    |     r4 = r0;
    0x000405c8 str r2, [sp]                                  |     *(sp) = r2;
    0x000405cc bl 0x1452c                                    |     r0 = fstat ();
    0x000405d0 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x000405d4 bge 0x405f4                                   |         goto label_5;
                                                             |     }
    0x000405d8 ldr r3, [pc, 0x13c]                           |     r3 = *(0x40718);
    0x000405dc bl 0x11934                                    |     fcn_00011934 ();
    0x000405e0 ldr r3, [pc, r3]                              |     r3 = *(0x000405e8);
    0x000405e4 ldr sb, [r0, r3]                              |     sb = *((r0 + r3));
                                                             |     do {
    0x000405e8 mov r0, sb                                    |         r0 = sb;
    0x000405ec add sp, sp, 0xdc                              |         
    0x000405f0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_5:
    0x000405f4 mov r0, r4                                    |         r0 = r4;
    0x000405f8 bl 0x4016c                                    |         r0 = isatty ();
    0x000405fc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00040600 bne 0x40704                                   |             goto label_6;
                                                             |         }
                                                             | label_0:
    0x00040604 mov sb, 0x19                                  |         sb = 0x19;
                                                             | label_1:
    0x00040608 ldr r3, [pc, 0x110]                           |         r3 = *(0x4071c);
    0x0004060c bl 0x11934                                    |         fcn_00011934 ();
    0x00040610 ldr r3, [pc, r3]                              |         r3 = *(0x00040618);
    0x00040614 str sb, [r0, r3]                              |         *((r0 + r3)) = sb;
    0x00040618 b 0x405e8                                     |         
                                                             |     } while (1);
                                                             |     do {
    0x0004061c add r6, r4, 1                                 |         r6 = r4 + 1;
    0x00040620 mov r1, r6                                    |         r1 = r6;
    0x00040624 mov r0, r5                                    |         r0 = r5;
    0x00040628 bl 0x3e970                                    |         strcpy (r0, r1)
    0x0004062c mov r0, r6                                    |         r0 = r6;
    0x00040630 bl 0x185ec                                    |         r0 = opendir ();
    0x00040634 subs r7, r0, 0                                |         r7 = r0 - 0;
    0x00040638 rsbne fp, sl, 0x1e                            |         __asm ("rsbne fp, sl, 0x1e");
                                                             |         if (r7 == r0) {
    0x0004063c addne sl, r5, sl                              |             sl = r5 + sl;
                                                             |         }
                                                             |         if (r7 != r0) {
    0x00040640 bne 0x406e8                                   |             goto label_7;
                                                             |         }
                                                             | label_3:
    0x00040644 ldrb r4, [r4]                                 |         r4 = *(r4);
    0x00040648 add r4, r4, 1                                 |         r4++;
    0x0004064c add r4, r6, r4                                |         r4 = r6 + r4;
                                                             | label_4:
    0x00040650 ldrb sl, [r4]                                 |         sl = *(r4);
    0x00040654 cmp sl, 0                                     |         
    0x00040658 bne 0x4061c                                   |         
                                                             |     } while (sl != 0);
    0x0004065c b 0x40604                                     |     goto label_0;
                                                             | label_2:
    0x00040660 add sb, r0, 0xb                               |     sb = r0 + 0xb;
    0x00040664 mov r0, sb                                    |     r0 = sb;
    0x00040668 bl 0x3e3c0                                    |     r0 = strlen ();
    0x0004066c cmp r0, fp                                    |     
                                                             |     if (r0 > fp) {
    0x00040670 bhi 0x406e8                                   |         goto label_7;
                                                             |     }
    0x00040674 mov r1, sb                                    |     r1 = sb;
    0x00040678 mov r0, sl                                    |     r0 = sl;
    0x0004067c bl 0x3e970                                    |     strcpy (r0, r1)
    0x00040680 ldr r1, [sp, 4]                               |     r1 = var_4h;
    0x00040684 mov r0, r5                                    |     r0 = r5;
    0x00040688 bl 0x17250                                    |     lstat ();
    0x0004068c subs sb, r0, 0                                |     sb -= path;
                                                             |     if (sb != path) {
    0x00040690 bne 0x406e8                                   |         goto label_7;
                                                             |     }
    0x00040694 ldr r3, [sp, 0x90]                            |     r3 = var_90h;
    0x00040698 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x0004069c cmp r3, 0x2000                                |     
                                                             |     if (r3 != 0x2000) {
    0x000406a0 bne 0x406e8                                   |         goto label_7;
                                                             |     }
    0x000406a4 ldrd r0, r1, [sp, 0x48]                       |     __asm ("ldrd r0, r1, [var_48h]");
    0x000406a8 ldrd r2, r3, [sp, 0xa0]                       |     __asm ("ldrd r2, r3, [var_a0h]");
    0x000406ac cmp r1, r3                                    |     
    0x000406b0 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 != r3) {
    0x000406b4 bne 0x406e8                                   |         goto label_7;
                                                             |     }
    0x000406b8 mov r0, r7                                    |     r0 = r7;
    0x000406bc bl 0x183d4                                    |     closedir ();
    0x000406c0 mov r0, r5                                    |     r0 = r5;
    0x000406c4 bl 0x3e3c0                                    |     strlen ();
    0x000406c8 ldr r3, [sp]                                  |     r3 = *(sp);
    0x000406cc cmp r0, r3                                    |     
                                                             |     if (r0 > r3) {
    0x000406d0 movhi sb, 0x22                                |         sb = 0x22;
                                                             |         goto label_8;
                                                             |     }
                                                             |     if (r0 > r3) {
                                                             | label_8:
    0x000406d4 bhi 0x40608                                   |         goto label_1;
                                                             |     }
    0x000406d8 mov r1, r5                                    |     r1 = r5;
    0x000406dc mov r0, r8                                    |     r0 = r8;
    0x000406e0 bl 0x3e970                                    |     strcpy (r0, r1)
    0x000406e4 b 0x40608                                     |     goto label_1;
                                                             | label_7:
    0x000406e8 mov r0, r7                                    |     r0 = r7;
    0x000406ec bl 0x18778                                    |     r0 = readdir ();
    0x000406f0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000406f4 bne 0x40660                                   |         goto label_2;
                                                             |     }
    0x000406f8 mov r0, r7                                    |     r0 = r7;
    0x000406fc bl 0x183d4                                    |     closedir ();
    0x00040700 b 0x40644                                     |     goto label_3;
                                                             | label_6:
    0x00040704 ldr r4, [pc, 0x18]                            |     r4 = *(0x40720);
    0x00040708 add r3, sp, 0x80                              |     r3 += var_80h;
    0x0004070c add r4, pc, r4                                |     r4 = pc + r4;
    0x00040710 add r5, sp, 8                                 |     r5 += path;
    0x00040714 str r3, [sp, 4]                               |     var_4h = r3;
    0x00040718 b 0x40650                                     |     goto label_4;
                                                             | }
    ; 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 @ 0x30fb4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.wordexp ()                                   | void wordexp (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_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_40h;
                                                             |     int32_t var_44h;
                                                             |     char * dest;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_5ch;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_64h;
                                                             |     char * src;
                                                             |     int32_t var_88h;
                                                             |     int32_t var_8ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00030fb4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00030fb8 mov fp, r2                                    |     
    0x00030fbc mov r7, r0                                    |     r7 = r0;
    0x00030fc0 mov r5, r1                                    |     r5 = r1;
    0x00030fc4 ldm r1, {r0, r1, r2}                          |     r0 = *(r1);
                                                             |     r1 = *((r1 + 4));
                                                             |     r2 = *((r1 + 8));
    0x00030fc8 sub sp, sp, 0x8c                              |     
    0x00030fcc mov r4, 0                                     |     r4 = 0;
    0x00030fd0 add r3, sp, 0x4c                              |     r3 += var_4ch;
    0x00030fd4 tst fp, 8                                     |     
    0x00030fd8 str r4, [sp, 0x40]                            |     var_40h = r4;
    0x00030fdc str r4, [sp, 0x3c]                            |     var_3ch = r4;
    0x00030fe0 str r4, [sp, 0x44]                            |     var_44h = r4;
    0x00030fe4 stm r3, {r0, r1, r2}                          |     *(r3) = r0;
                                                             |     *((r3 + 4)) = r1;
                                                             |     *((r3 + 8)) = r2;
                                                             |     if ((fp & 8) != 0) {
    0x00030fe8 streq r1, [sp, 0x24]                          |         var_24h = r1;
                                                             |     }
                                                             |     if ((fp & 8) != 0) {
    0x00030fec beq 0x30ffc                                   |         
    0x00030ff0 mov r0, r5                                    |         r0 = r5;
    0x00030ff4 bl 0x30f68                                    |         wordfree ();
    0x00030ff8 str r4, [sp, 0x24]                            |         var_24h = r4;
                                                             |     }
    0x00030ffc ands r3, fp, 2                                |     r3 = fp & 2;
    0x00031000 str r3, [sp, 0x2c]                            |     var_2ch = r3;
                                                             |     if (r3 != fp) {
    0x00031004 bne 0x31058                                   |         goto label_22;
                                                             |     }
    0x00031008 tst fp, 1                                     |     
    0x0003100c str r3, [r5]                                  |     *(r5) = r3;
                                                             |     if ((fp & 1) == 0) {
    0x00031010 beq 0x31038                                   |         goto label_23;
                                                             |     }
    0x00031014 ldr r0, [r5, 8]                               |     r0 = *((r5 + 8));
    0x00031018 mov r1, 4                                     |     r1 = 4;
    0x0003101c add r0, r0, 1                                 |     r0++;
    0x00031020 bl 0x11be0                                    |     r0 = fcn_00011be0 ();
    0x00031024 cmp r0, 0                                     |     
    0x00031028 str r0, [r5, 4]                               |     *((r5 + 4)) = r0;
                                                             |     if (r0 != 0) {
    0x0003102c bne 0x31058                                   |         goto label_22;
                                                             |     }
                                                             |     do {
                                                             | label_1:
    0x00031030 mov r4, 1                                     |         r4 = 1;
    0x00031034 b 0x3138c                                     |         goto label_7;
                                                             | label_23:
    0x00031038 mov r1, 4                                     |         r1 = 4;
    0x0003103c mov r0, 1                                     |         r0 = 1;
    0x00031040 bl 0x11be0                                    |         r0 = fcn_00011be0 ();
    0x00031044 cmp r0, 0                                     |         
    0x00031048 str r0, [r5, 4]                               |         *((r5 + 4)) = r0;
    0x0003104c beq 0x31030                                   |         
                                                             |     } while (r0 == 0);
    0x00031050 ands r3, fp, 2                                |     r3 = fp & 2;
    0x00031054 str r3, [r5, 8]                               |     *((r5 + 8)) = r3;
                                                             | label_22:
    0x00031058 ldr r0, [pc, 0x770]                           |     r0 = *(0x317cc);
    0x0003105c add r0, pc, r0                                |     r0 = pc + r0;
    0x00031060 bl 0x4b980                                    |     getenv (r0);
    0x00031064 add r3, sp, 0x48                              |     r3 += dest;
    0x00031068 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0003106c subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x00031070 bne 0x310d8                                   |         goto label_24;
                                                             |     }
    0x00031074 ldr r1, [pc, 0x758]                           |     r1 = *(0x317d0);
    0x00031078 mov r0, r3                                    |     r0 = r3;
    0x0003107c add r1, pc, r1                                |     r1 = pc + r1;
    0x00031080 bl 0x3e970                                    |     r0 = strcpy (r0, r1)
    0x00031084 mov r8, r0                                    |     r8 = r0;
                                                             |     do {
    0x00031088 mov r3, 0                                     |         r3 = 0;
    0x0003108c str r3, [sp, 0x38]                            |         var_38h = r3;
    0x00031090 ldr r3, [pc, 0x740]                           |         r3 = *(0x317d4);
    0x00031094 add r3, pc, r3                                |         r3 = pc + r3;
    0x00031098 str r3, [sp, 0x30]                            |         var_30h = r3;
    0x0003109c ldr r3, [pc, 0x738]                           |         r3 = *(0x317d8);
    0x000310a0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000310a4 str r3, [sp, 0x34]                            |         var_34h = r3;
                                                             | label_4:
    0x000310a8 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x000310ac ldrb r6, [r7, r3]                             |         r6 = *((r7 + r3));
    0x000310b0 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x000310b4 bne 0x31134                                   |             goto label_25;
                                                             |         }
    0x000310b8 ldr r1, [sp, 0x44]                            |         r1 = var_44h;
    0x000310bc cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x000310c0 moveq r4, r1                                  |             r4 = r1;
                                                             |         }
                                                             |         if (r1 == 0) {
    0x000310c4 beq 0x317c4                                   |             goto label_26;
                                                             |         }
    0x000310c8 mov r0, r5                                    |         r0 = r5;
    0x000310cc bl 0x2ec60                                    |         r0 = fcn_0002ec60 (r0, r1);
    0x000310d0 mov r4, r0                                    |         r4 = r0;
    0x000310d4 b 0x317c4                                     |         goto label_26;
                                                             | label_24:
    0x000310d8 ldr r2, [sp, 0x1c]                            |         r2 = var_1ch;
    0x000310dc mov r3, 0                                     |         r3 = 0;
    0x000310e0 sub r0, r8, 1                                 |         r0 = r8 - 1;
    0x000310e4 strb r3, [sp, 0x48]                           |         dest = r3;
                                                             | label_0:
    0x000310e8 ldrb r3, [r0, 1]!                             |         r3 = *((r0 += 1));
    0x000310ec cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000310f0 strbeq r3, [r2]                               |             *(r2) = r3;
                                                             |         }
    0x000310f4 beq 0x31088                                   |         
                                                             |     } while (r3 == 0);
    0x000310f8 sub r1, r3, 9                                 |     r1 = r3 - 9;
    0x000310fc cmp r3, 0x20                                  |     
    0x00031100 cmpne r1, 1                                   |     __asm ("cmpne r1, 1");
                                                             |     if (r3 > 0x20) {
    0x00031104 bhi 0x310e8                                   |         goto label_0;
                                                             |     }
    0x00031108 ldr r1, [sp, 0x1c]                            |     r1 = var_1ch;
                                                             |     do {
    0x0003110c cmp r2, r1                                    |         
                                                             |         if (r2 < r1) {
    0x00031110 bls 0x31128                                   |             goto label_27;
                                                             |         }
    0x00031114 ldrb ip, [r1], 1                              |         ip = *(r1);
                                                             |         r1++;
    0x00031118 cmp ip, 0                                     |         
    0x0003111c cmpne ip, r3                                  |         __asm ("cmpne ip, r3");
    0x00031120 bne 0x3110c                                   |         
                                                             |     } while (ip != 0);
    0x00031124 b 0x310e8                                     |     goto label_0;
                                                             |     if (ip != 0) {
                                                             | label_27:
    0x00031128 strbeq r3, [r2]                               |         *(r2) = r3;
                                                             |     }
                                                             |     if (ip != 0) {
    0x0003112c addeq r2, r2, 1                               |         r2++;
                                                             |     }
    0x00031130 b 0x310e8                                     |     goto label_0;
                                                             | label_25:
    0x00031134 cmp r6, 0x3f                                  |     
                                                             |     if (r6 == 0x3f) {
    0x00031138 beq 0x311b8                                   |         goto label_28;
                                                             |     }
                                                             |     if (r6 > 0x3f) {
    0x0003113c bhi 0x312c4                                   |         goto label_29;
                                                             |     }
    0x00031140 cmp r6, 0x24                                  |     
                                                             |     if (r6 == 0x24) {
    0x00031144 beq 0x31344                                   |         goto label_30;
                                                             |     }
                                                             |     if (r6 > 0x24) {
    0x00031148 bhi 0x311a8                                   |         goto label_31;
                                                             |     }
    0x0003114c cmp r6, 0x22                                  |     
                                                             |     if (r6 == 0x22) {
    0x00031150 beq 0x31404                                   |         goto label_32;
                                                             |     }
                                                             |     do {
                                                             | label_3:
    0x00031154 mov r1, r6                                    |         r1 = r6;
    0x00031158 ldr r0, [sp, 0x34]                            |         r0 = var_34h;
    0x0003115c bl 0x3ef3c                                    |         index ();
    0x00031160 ldr r4, [sp, 0x44]                            |         r4 = var_44h;
    0x00031164 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00031168 bne 0x3176c                                   |             goto label_33;
                                                             |         }
    0x0003116c ldr r0, [pc, 0x66c]                           |         r0 = *(0x317dc);
    0x00031170 mov r1, r6                                    |         r1 = r6;
    0x00031174 add r0, pc, r0                                |         r0 = pc + r0;
    0x00031178 bl 0x3ef3c                                    |         r0 = index ();
    0x0003117c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00031180 bne 0x317a0                                   |             goto label_34;
                                                             |         }
    0x00031184 mov r3, r6                                    |         r3 = r6;
    0x00031188 add r2, sp, 0x40                              |         r2 += var_40h;
    0x0003118c add r1, sp, 0x3c                              |         r1 += var_3ch;
    0x00031190 mov r0, r4                                    |         r0 = r4;
    0x00031194 bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x00031198 cmp r0, 0                                     |         
    0x0003119c str r0, [sp, 0x44]                            |         var_44h = r0;
                                                             |         if (r0 != 0) {
    0x000311a0 bne 0x31334                                   |             goto label_21;
                                                             |         }
    0x000311a4 b 0x31030                                     |         goto label_1;
                                                             | label_31:
    0x000311a8 cmp r6, 0x27                                  |         
                                                             |         if (r6 == 0x27) {
    0x000311ac beq 0x31520                                   |             goto label_35;
                                                             |         }
    0x000311b0 cmp r6, 0x2a                                  |         
                                                             | label_2:
    0x000311b4 bne 0x31154                                   |         
                                                             |     } while (r6 != 0x2a);
                                                             | label_28:
    0x000311b8 mov r6, 0                                     |     r6 = 0;
    0x000311bc add r3, sp, 0x3c                              |     r3 += var_3ch;
    0x000311c0 mov r4, 1                                     |     r4 = 1;
    0x000311c4 add sl, sp, 0x40                              |     sl += var_40h;
    0x000311c8 str r6, [sp, 0x58]                            |     var_58h = r6;
    0x000311cc str r6, [sp, 0x5c]                            |     var_5ch = r6;
    0x000311d0 str r6, [sp, 0x60]                            |     var_60h = r6;
    0x000311d4 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             | label_13:
    0x000311d8 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000311dc ldrb sb, [r7, r3]                             |     sb = *((r7 + r3));
    0x000311e0 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x000311e4 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x000311e8 bne 0x31574                                   |         goto label_36;
                                                             |     }
                                                             | label_12:
    0x000311ec ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x000311f0 ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x000311f4 sub sb, r3, 1                                 |     sb = r3 - 1;
    0x000311f8 add r0, sp, 0x58                              |     r0 += var_58h;
    0x000311fc str sb, [sp, 0x38]                            |     var_38h = sb;
    0x00031200 bl 0x2ec60                                    |     fcn_0002ec60 (r0, r1);
    0x00031204 mov r6, 0                                     |     r6 = 0;
    0x00031208 add r3, sp, 0x64                              |     r3 += var_64h;
    0x0003120c str r6, [sp, 0x40]                            |     var_40h = r6;
    0x00031210 str r6, [sp, 0x3c]                            |     var_3ch = r6;
    0x00031214 str r6, [sp, 0x44]                            |     var_44h = r6;
    0x00031218 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x0003121c mov r4, r0                                    |     r4 = r0;
                                                             |     do {
    0x00031220 cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x00031224 bne 0x31694                                   |             goto label_37;
                                                             |         }
    0x00031228 ldr r3, [sp, 0x58]                            |         r3 = var_58h;
    0x0003122c cmp r6, r3                                    |         
                                                             |         if (r6 >= r3) {
    0x00031230 bhs 0x31694                                   |             goto label_37;
                                                             |         }
    0x00031234 ldr r0, [sp, 0x5c]                            |         r0 = var_5ch;
    0x00031238 mov r2, r4                                    |         r2 = r4;
    0x0003123c ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00031240 mov r1, 0x10                                  |         r1 = 0x10;
    0x00031244 ldr r0, [r0, r6, lsl 2]                       |         offset_0 = r6 << 2;
                                                             |         r0 = *((r0 + offset_0));
    0x00031248 bl 0x1c668                                    |         r0 = glob ();
    0x0003124c subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 != r0) {
    0x00031250 bne 0x3174c                                   |             goto label_38;
                                                             |         }
    0x00031254 cmp r8, 0                                     |         
    0x00031258 ldr r0, [sp, 0x44]                            |         r0 = var_44h;
                                                             |         if (r8 == 0) {
    0x0003125c beq 0x316f8                                   |             goto label_39;
                                                             |         }
    0x00031260 ldrb r3, [r8]                                 |         r3 = *(r8);
    0x00031264 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00031268 bne 0x316f8                                   |             goto label_39;
                                                             |         }
    0x0003126c ldr r3, [sp, 0x68]                            |         r3 = src;
    0x00031270 add r4, sp, 0x40                              |         r4 += var_40h;
    0x00031274 add sb, sp, 0x3c                              |         sb += var_3ch;
    0x00031278 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0003127c mov r2, r4                                    |         r2 = r4;
    0x00031280 mov r1, sb                                    |         r1 = sb;
    0x00031284 bl 0x2ec24                                    |         fcn_0002ec24 (r0, r1);
    0x00031288 mov sl, 1                                     |         sl = 1;
    0x0003128c str r0, [sp, 0x44]                            |         var_44h = r0;
                                                             | label_18:
    0x00031290 ldr r3, [sp, 0x64]                            |         r3 = var_64h;
    0x00031294 cmp sl, r3                                    |         
                                                             |         if (sl < r3) {
    0x00031298 bhs 0x312a8                                   |             
    0x0003129c ldr r0, [sp, 0x44]                            |             r0 = var_44h;
    0x000312a0 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000312a4 bne 0x316bc                                   |                 goto label_40;
                                                             |             }
                                                             |         }
    0x000312a8 ldr r0, [sp, 0x20]                            |         r0 = var_20h;
    0x000312ac bl 0x1c610                                    |         globfree ();
    0x000312b0 ldr r4, [sp, 0x44]                            |         r4 = var_44h;
    0x000312b4 clz r4, r4                                    |         r4 &= r4;
    0x000312b8 lsr r4, r4, 5                                 |         r4 >>= 5;
                                                             | label_19:
    0x000312bc add r6, r6, 1                                 |         r6++;
    0x000312c0 b 0x31220                                     |         
                                                             |     } while (1);
                                                             | label_29:
    0x000312c4 cmp r6, 0x5c                                  |     
                                                             |     if (r6 == 0x5c) {
    0x000312c8 beq 0x31310                                   |         goto label_41;
                                                             |     }
                                                             |     if (r6 <= 0x5c) {
    0x000312cc bhi 0x312d8                                   |         
    0x000312d0 cmp r6, 0x5b                                  |         
    0x000312d4 b 0x311b4                                     |         goto label_2;
                                                             |     }
    0x000312d8 cmp r6, 0x60                                  |     
                                                             |     if (r6 == 0x60) {
    0x000312dc beq 0x31380                                   |         goto label_42;
                                                             |     }
    0x000312e0 cmp r6, 0x7e                                  |     
                                                             |     if (r6 != 0x7e) {
    0x000312e4 bne 0x31154                                   |         goto label_3;
                                                             |     }
    0x000312e8 ldr r3, [r5]                                  |     r3 = *(r5);
    0x000312ec add r2, sp, 0x40                              |     r2 += var_40h;
    0x000312f0 str r3, [sp, 4]                               |     var_4h = r3;
    0x000312f4 add r3, sp, 0x38                              |     r3 += var_38h;
    0x000312f8 str r3, [sp]                                  |     *(sp) = r3;
    0x000312fc add r1, sp, 0x3c                              |     r1 += var_3ch;
    0x00031300 mov r3, r7                                    |     r3 = r7;
    0x00031304 add r0, sp, 0x44                              |     r0 += var_44h;
    0x00031308 bl 0x2f1b8                                    |     fcn_0002f1b8 (r0, r1, r2, r3);
    0x0003130c b 0x3132c                                     |     goto label_5;
                                                             | label_41:
    0x00031310 add r3, sp, 0x38                              |     r3 += var_38h;
    0x00031314 str r3, [sp]                                  |     *(sp) = r3;
    0x00031318 add r2, sp, 0x40                              |     r2 += var_40h;
    0x0003131c mov r3, r7                                    |     r3 = r7;
    0x00031320 add r1, sp, 0x3c                              |     r1 += var_3ch;
    0x00031324 add r0, sp, 0x44                              |     r0 += var_44h;
    0x00031328 bl 0x2ea44                                    |     fcn_0002ea44 (r0, r1, r2);
                                                             |     do {
                                                             | label_5:
    0x0003132c subs r4, r0, 0                                |         r4 -= var_44h;
                                                             |         if (r4 != var_44h) {
                                                             | label_17:
    0x00031330 bne 0x3138c                                   |             goto label_7;
                                                             |         }
                                                             | label_21:
    0x00031334 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00031338 add r3, r3, 1                                 |         r3++;
    0x0003133c str r3, [sp, 0x38]                            |         var_38h = r3;
    0x00031340 b 0x310a8                                     |         goto label_4;
                                                             | label_30:
    0x00031344 mov r3, 0                                     |         r3 = 0;
    0x00031348 str r3, [sp, 0x14]                            |         var_14h = r3;
    0x0003134c ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00031350 str r8, [sp, 0xc]                             |         var_ch = r8;
    0x00031354 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x00031358 add r3, sp, 0x38                              |         r3 += var_38h;
    0x0003135c str r3, [sp]                                  |         *(sp) = r3;
    0x00031360 str r5, [sp, 8]                               |         var_8h = r5;
    0x00031364 str fp, [sp, 4]                               |         var_4h = fp;
    0x00031368 mov r3, r7                                    |         r3 = r7;
    0x0003136c add r2, sp, 0x40                              |         r2 += var_40h;
    0x00031370 add r1, sp, 0x3c                              |         r1 += var_3ch;
    0x00031374 add r0, sp, 0x44                              |         r0 += var_44h;
    0x00031378 bl 0x2fad0                                    |         fcn_0002fad0 (r0, r1, r2, r3, r4, r5, r6);
    0x0003137c b 0x3132c                                     |         
                                                             |     } while (1);
                                                             | label_42:
    0x00031380 tst fp, 4                                     |     
                                                             |     if ((fp & 4) == 0) {
    0x00031384 beq 0x313c8                                   |         goto label_43;
                                                             |     }
                                                             | label_6:
    0x00031388 mov r4, 4                                     |     r4 = 4;
                                                             |     do {
                                                             | label_7:
    0x0003138c ldr r0, [sp, 0x44]                            |         r0 = var_44h;
    0x00031390 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00031394 cmp r4, 1                                     |         
                                                             |         if (r4 == 1) {
    0x00031398 beq 0x317c4                                   |             goto label_26;
                                                             |         }
    0x0003139c ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x000313a0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000313a4 bne 0x313b0                                   |             
    0x000313a8 mov r0, r5                                    |             r0 = r5;
    0x000313ac bl 0x30f68                                    |             wordfree ();
                                                             |         }
    0x000313b0 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x000313b4 str r3, [sp, 0x50]                            |         var_50h = r3;
    0x000313b8 add r3, sp, 0x4c                              |         r3 += var_4ch;
    0x000313bc ldm r3, {r0, r1, r2}                          |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
    0x000313c0 stm r5, {r0, r1, r2}                          |         *(r5) = r0;
                                                             |         *((r5 + 4)) = r1;
                                                             |         *((r5 + 8)) = r2;
    0x000313c4 b 0x317c4                                     |         goto label_26;
                                                             | label_43:
    0x000313c8 add r3, r3, 1                                 |         r3++;
    0x000313cc str r3, [sp, 0x38]                            |         var_38h = r3;
    0x000313d0 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000313d4 str r8, [sp, 0xc]                             |         var_ch = r8;
    0x000313d8 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x000313dc add r3, sp, 0x38                              |         r3 += var_38h;
    0x000313e0 str r3, [sp]                                  |         *(sp) = r3;
    0x000313e4 str r5, [sp, 8]                               |         var_8h = r5;
    0x000313e8 str fp, [sp, 4]                               |         var_4h = fp;
    0x000313ec mov r3, r7                                    |         r3 = r7;
    0x000313f0 add r2, sp, 0x40                              |         r2 += var_40h;
    0x000313f4 add r1, sp, 0x3c                              |         r1 += var_3ch;
    0x000313f8 add r0, sp, 0x44                              |         r0 += var_44h;
    0x000313fc bl 0x2f060                                    |         fcn_0002f060 (r0, r1, r2, r3, r4, r5, r6);
    0x00031400 b 0x3132c                                     |         goto label_5;
                                                             | label_32:
    0x00031404 add r3, r3, 1                                 |         r3++;
    0x00031408 add r6, sp, 0x40                              |         r6 += var_40h;
    0x0003140c add sb, sp, 0x3c                              |         sb += var_3ch;
    0x00031410 add sl, sp, 0x44                              |         sl += var_44h;
    0x00031414 str r3, [sp, 0x38]                            |         var_38h = r3;
                                                             | label_8:
    0x00031418 ldr r2, [sp, 0x38]                            |         r2 = var_38h;
    0x0003141c ldrb r3, [r7, r2]                             |         r3 = *((r7 + r2));
    0x00031420 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00031424 bne 0x31430                                   |             goto label_44;
                                                             |         }
                                                             | label_10:
    0x00031428 mov r4, 5                                     |         r4 = 5;
    0x0003142c b 0x3138c                                     |         
                                                             |     } while (1);
                                                             | label_44:
    0x00031430 cmp r3, 0x24                                  |     
                                                             |     if (r3 == 0x24) {
    0x00031434 beq 0x314b0                                   |         goto label_45;
                                                             |     }
                                                             |     if (r3 > 0x24) {
    0x00031438 bhi 0x31464                                   |         goto label_46;
                                                             |     }
    0x0003143c cmp r3, 0x22                                  |     
                                                             |     if (r3 == 0x22) {
    0x00031440 beq 0x317a8                                   |         goto label_47;
                                                             |     }
                                                             |     do {
    0x00031444 mov r2, r6                                    |         r2 = r6;
    0x00031448 mov r1, sb                                    |         r1 = sb;
    0x0003144c ldr r0, [sp, 0x44]                            |         r0 = var_44h;
    0x00031450 bl 0x2e9cc                                    |         r0 = fcn_0002e9cc (r0, r1);
    0x00031454 cmp r0, 0                                     |         
    0x00031458 str r0, [sp, 0x44]                            |         var_44h = r0;
                                                             |         if (r0 != 0) {
    0x0003145c bne 0x314f0                                   |             goto label_48;
                                                             |         }
    0x00031460 b 0x31030                                     |         goto label_1;
                                                             | label_46:
    0x00031464 cmp r3, 0x5c                                  |         
                                                             |         if (r3 == 0x5c) {
    0x00031468 beq 0x31500                                   |             goto label_49;
                                                             |         }
    0x0003146c cmp r3, 0x60                                  |         
    0x00031470 bne 0x31444                                   |         
                                                             |     } while (r3 != 0x60);
    0x00031474 ands r1, fp, 4                                |     r1 = fp & 4;
                                                             |     if (r1 != fp) {
    0x00031478 bne 0x31388                                   |         goto label_6;
                                                             |     }
    0x0003147c add r3, sp, 0x88                              |     r3 += var_88h;
    0x00031480 add r2, r2, 1                                 |     r2++;
    0x00031484 str r2, [r3, -0x50]!                          |     *((r3 -= 0x50)) = r2;
    0x00031488 mov r0, sl                                    |     r0 = sl;
    0x0003148c str r1, [sp, 0x10]                            |     var_10h = r1;
    0x00031490 str r1, [sp, 0xc]                             |     var_ch = r1;
    0x00031494 str r1, [sp, 8]                               |     var_8h = r1;
    0x00031498 stm sp, {r3, fp}                              |     *(sp) = r3;
                                                             |     *((sp + 4)) = fp;
    0x0003149c mov r2, r6                                    |     r2 = r6;
    0x000314a0 mov r3, r7                                    |     r3 = r7;
    0x000314a4 mov r1, sb                                    |     r1 = sb;
    0x000314a8 bl 0x2f060                                    |     fcn_0002f060 (r0, r1, r2, r3, r4, r5, r6);
    0x000314ac b 0x314e8                                     |     goto label_9;
                                                             | label_45:
    0x000314b0 mov r3, 1                                     |     r3 = 1;
    0x000314b4 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x000314b8 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x000314bc str r8, [sp, 0xc]                             |     var_ch = r8;
    0x000314c0 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x000314c4 add r3, sp, 0x38                              |     r3 += var_38h;
    0x000314c8 str r3, [sp]                                  |     *(sp) = r3;
    0x000314cc str r5, [sp, 8]                               |     var_8h = r5;
    0x000314d0 str fp, [sp, 4]                               |     var_4h = fp;
    0x000314d4 mov r3, r7                                    |     r3 = r7;
    0x000314d8 mov r2, r6                                    |     r2 = r6;
    0x000314dc mov r1, sb                                    |     r1 = sb;
    0x000314e0 mov r0, sl                                    |     r0 = sl;
    0x000314e4 bl 0x2fad0                                    |     fcn_0002fad0 (r0, r1, r2, r3, r4, r5, r6);
                                                             | label_9:
    0x000314e8 subs r4, r0, 0                                |     r4 -= var_44h;
                                                             |     if (r4 != var_44h) {
    0x000314ec bne 0x3138c                                   |         goto label_7;
                                                             |     }
                                                             | label_48:
    0x000314f0 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000314f4 add r3, r3, 1                                 |     r3++;
    0x000314f8 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x000314fc b 0x31418                                     |     goto label_8;
                                                             | label_49:
    0x00031500 add r3, sp, 0x38                              |     r3 += var_38h;
    0x00031504 str r3, [sp]                                  |     *(sp) = r3;
    0x00031508 mov r2, r6                                    |     r2 = r6;
    0x0003150c mov r3, r7                                    |     r3 = r7;
    0x00031510 mov r1, sb                                    |     r1 = sb;
    0x00031514 mov r0, sl                                    |     r0 = sl;
    0x00031518 bl 0x2eaa8                                    |     fcn_0002eaa8 (r0, r1, r2);
    0x0003151c b 0x314e8                                     |     goto label_9;
                                                             | label_35:
    0x00031520 add r3, r3, 1                                 |     r3++;
    0x00031524 add r4, sp, 0x40                              |     r4 += var_40h;
    0x00031528 add r6, sp, 0x3c                              |     r6 += var_3ch;
    0x0003152c str r3, [sp, 0x38]                            |     var_38h = r3;
                                                             | label_11:
    0x00031530 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00031534 ldrb r3, [r7, r3]                             |     r3 = *((r7 + r3));
    0x00031538 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0003153c beq 0x31428                                   |         goto label_10;
                                                             |     }
    0x00031540 cmp r3, 0x27                                  |     
                                                             |     if (r3 == 0x27) {
    0x00031544 beq 0x317a8                                   |         goto label_47;
                                                             |     }
    0x00031548 mov r2, r4                                    |     r2 = r4;
    0x0003154c mov r1, r6                                    |     r1 = r6;
    0x00031550 ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x00031554 bl 0x2e9cc                                    |     r0 = fcn_0002e9cc (r0, r1);
    0x00031558 cmp r0, 0                                     |     
    0x0003155c str r0, [sp, 0x44]                            |     var_44h = r0;
                                                             |     if (r0 == 0) {
    0x00031560 beq 0x31030                                   |         goto label_1;
                                                             |     }
    0x00031564 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00031568 add r3, r3, 1                                 |     r3++;
    0x0003156c str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00031570 b 0x31530                                     |     goto label_11;
                                                             | label_36:
    0x00031574 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00031578 movne r0, r8                                  |         r0 = r8;
                                                             |     }
                                                             |     if (r8 != 0) {
    0x0003157c ldreq r0, [sp, 0x30]                          |         r0 = var_30h;
                                                             |     }
    0x00031580 mov r1, sb                                    |     r1 = sb;
    0x00031584 bl 0x3ef3c                                    |     r0 = index ();
    0x00031588 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0003158c bne 0x311ec                                   |         goto label_12;
                                                             |     }
    0x00031590 cmp sb, 0x27                                  |     
                                                             |     if (sb != 0x27) {
    0x00031594 bne 0x3161c                                   |         goto label_50;
                                                             |     }
    0x00031598 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0003159c beq 0x316a4                                   |         goto label_51;
                                                             |     }
    0x000315a0 cmp r6, 1                                     |     
                                                             |     if (r6 == 1) {
                                                             | label_14:
    0x000315a4 beq 0x316b4                                   |         goto label_52;
                                                             |     }
                                                             |     do {
    0x000315a8 subs r2, r6, 1                                |         r2 = r6 - 1;
                                                             |         if (r2 == r6) {
    0x000315ac movne r2, 1                                   |             r2 = 1;
                                                             |         }
    0x000315b0 cmp sb, 0x24                                  |         
                                                             |         if (sb == 0x24) {
    0x000315b4 movne r2, 0                                   |             r2 = 0;
                                                             |         }
    0x000315b8 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x000315bc beq 0x31634                                   |             goto label_53;
                                                             |         }
    0x000315c0 sub r3, r6, 2                                 |         r3 = r6 - 2;
    0x000315c4 clz r3, r3                                    |         r3 &= r3;
    0x000315c8 lsr r3, r3, 5                                 |         r3 >>= 5;
    0x000315cc str r3, [sp, 0x14]                            |         var_14h = r3;
    0x000315d0 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000315d4 str r8, [sp, 0xc]                             |         var_ch = r8;
    0x000315d8 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x000315dc add r3, sp, 0x58                              |         r3 += var_58h;
    0x000315e0 str r3, [sp, 8]                               |         var_8h = r3;
    0x000315e4 add r3, sp, 0x38                              |         r3 += var_38h;
    0x000315e8 str r3, [sp]                                  |         *(sp) = r3;
    0x000315ec str fp, [sp, 4]                               |         var_4h = fp;
    0x000315f0 mov r3, r7                                    |         r3 = r7;
    0x000315f4 mov r2, sl                                    |         r2 = sl;
    0x000315f8 ldr r1, [sp, 0x20]                            |         r1 = var_20h;
    0x000315fc add r0, sp, 0x44                              |         r0 += var_44h;
    0x00031600 bl 0x2fad0                                    |         fcn_0002fad0 (r0, r1, r2, r3, r4, r5, r6);
    0x00031604 subs r4, r0, 0                                |         r4 -= var_44h;
                                                             |         if (r4 != var_44h) {
                                                             | label_15:
    0x00031608 bne 0x31694                                   |             goto label_37;
                                                             |         }
                                                             | label_16:
    0x0003160c ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00031610 add r3, r3, 1                                 |         r3++;
    0x00031614 str r3, [sp, 0x38]                            |         var_38h = r3;
    0x00031618 b 0x311d8                                     |         goto label_13;
                                                             | label_50:
    0x0003161c cmp sb, 0x22                                  |         
    0x00031620 bne 0x315a8                                   |         
                                                             |     } while (sb != 0x22);
    0x00031624 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00031628 beq 0x316ac                                   |         goto label_54;
                                                             |     }
    0x0003162c cmp r6, 2                                     |     
    0x00031630 b 0x315a4                                     |     goto label_14;
                                                             | label_53:
    0x00031634 cmp sb, 0x5c                                  |     
                                                             |     if (sb != 0x5c) {
    0x00031638 bne 0x31674                                   |         goto label_55;
                                                             |     }
    0x0003163c add r3, sp, 0x38                              |     r3 += var_38h;
    0x00031640 cmp r6, 0                                     |     
    0x00031644 str r3, [sp]                                  |     *(sp) = r3;
    0x00031648 add r0, sp, 0x44                              |     r0 += var_44h;
    0x0003164c mov r3, r7                                    |     r3 = r7;
    0x00031650 mov r2, sl                                    |     r2 = sl;
    0x00031654 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
                                                             |     if (r6 == 0) {
    0x00031658 beq 0x3166c                                   |         goto label_56;
                                                             |     }
    0x0003165c bl 0x2eaa8                                    |     r0 = fcn_0002eaa8 (r0, r1, r2);
                                                             |     do {
    0x00031660 mov r4, r0                                    |         r4 = r0;
    0x00031664 cmp r0, 0                                     |         
    0x00031668 b 0x31608                                     |         goto label_15;
                                                             | label_56:
    0x0003166c bl 0x2ea44                                    |         fcn_0002ea44 (r0, r1, r2);
    0x00031670 b 0x31660                                     |         
                                                             |     } while (1);
                                                             | label_55:
    0x00031674 mov r3, sb                                    |     r3 = sb;
    0x00031678 mov r2, sl                                    |     r2 = sl;
    0x0003167c ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00031680 ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x00031684 bl 0x2e9cc                                    |     r0 = fcn_0002e9cc (r0, r1);
    0x00031688 cmp r0, 0                                     |     
    0x0003168c str r0, [sp, 0x44]                            |     var_44h = r0;
                                                             |     if (r0 != 0) {
    0x00031690 bne 0x3160c                                   |         goto label_16;
                                                             |     }
                                                             | label_37:
    0x00031694 add r0, sp, 0x58                              |     r0 += var_58h;
    0x00031698 bl 0x30f68                                    |     wordfree ();
    0x0003169c cmp r4, 0                                     |     
    0x000316a0 b 0x31330                                     |     goto label_17;
                                                             | label_51:
    0x000316a4 mov r6, 1                                     |     r6 = 1;
    0x000316a8 b 0x3160c                                     |     goto label_16;
                                                             | label_54:
    0x000316ac mov r6, 2                                     |     r6 = 2;
    0x000316b0 b 0x3160c                                     |     goto label_16;
                                                             | label_52:
    0x000316b4 mov r6, 0                                     |     r6 = 0;
    0x000316b8 b 0x3160c                                     |     goto label_16;
                                                             | label_40:
    0x000316bc mov r3, 0x20                                  |     r3 = 0x20;
    0x000316c0 mov r2, r4                                    |     r2 = r4;
    0x000316c4 mov r1, sb                                    |     r1 = sb;
    0x000316c8 bl 0x2e9cc                                    |     r0 = fcn_0002e9cc (r0, r1);
    0x000316cc cmp r0, 0                                     |     
    0x000316d0 str r0, [sp, 0x44]                            |     var_44h = r0;
                                                             |     if (r0 != 0) {
    0x000316d4 beq 0x316f0                                   |         
    0x000316d8 ldr r3, [sp, 0x68]                            |         r3 = src;
    0x000316dc mov r2, r4                                    |         r2 = r4;
    0x000316e0 ldr r3, [r3, sl, lsl 2]                       |         offset_1 = sl << 2;
                                                             |         r3 = *((r3 + offset_1));
    0x000316e4 mov r1, sb                                    |         r1 = sb;
    0x000316e8 bl 0x2ec24                                    |         fcn_0002ec24 (r0, r1);
    0x000316ec str r0, [sp, 0x44]                            |         var_44h = r0;
                                                             |     }
    0x000316f0 add sl, sl, 1                                 |     sl++;
    0x000316f4 b 0x31290                                     |     goto label_18;
                                                             | label_39:
    0x000316f8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000316fc beq 0x31714                                   |         
    0x00031700 bl 0x120a8                                    |         fcn_000120a8 ();
    0x00031704 mov r3, 0                                     |         r3 = 0;
    0x00031708 str r3, [sp, 0x40]                            |         var_40h = r3;
    0x0003170c str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00031710 str r3, [sp, 0x44]                            |         var_44h = r3;
                                                             |     }
    0x00031714 mov sb, 0                                     |     sb = 0;
                                                             | label_20:
    0x00031718 ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x0003171c cmp sb, r3                                    |     
                                                             |     if (sb > r3) {
    0x00031720 blo 0x31730                                   |         
    0x00031724 ldr r0, [sp, 0x20]                            |         r0 = var_20h;
    0x00031728 bl 0x1c610                                    |         globfree ();
    0x0003172c b 0x312bc                                     |         goto label_19;
                                                             |     }
    0x00031730 ldr r3, [sp, 0x68]                            |     r3 = src;
    0x00031734 ldr r0, [r3, sb, lsl 2]                       |     offset_2 = sb << 2;
                                                             |     r0 = *((r3 + offset_2));
    0x00031738 bl 0x3f894                                    |     r0 = strdup ();
    0x0003173c subs r1, r0, 0                                |     r1 = r0 - 0;
    0x00031740 bne 0x31754                                   |     
                                                             |     while (r0 != 0) {
    0x00031744 ldr r0, [sp, 0x20]                            |         r0 = var_20h;
    0x00031748 bl 0x1c610                                    |         globfree ();
                                                             | label_38:
    0x0003174c mov r4, 1                                     |         r4 = 1;
    0x00031750 b 0x312bc                                     |         goto label_19;
    0x00031754 mov r0, r5                                    |         r0 = r5;
    0x00031758 bl 0x2ec60                                    |         r0 = fcn_0002ec60 (r0, r1);
    0x0003175c cmp r0, 0                                     |         
    0x00031760 bne 0x31744                                   |         
                                                             |     }
    0x00031764 add sb, sb, 1                                 |     sb++;
    0x00031768 b 0x31718                                     |     goto label_20;
                                                             | label_33:
    0x0003176c cmp r4, 0                                     |     
    0x00031770 bne 0x31788                                   |     
                                                             |     while (r4 == r0) {
    0x00031774 mov r3, 0                                     |         r3 = 0;
    0x00031778 str r3, [sp, 0x40]                            |         var_40h = r3;
    0x0003177c str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00031780 str r3, [sp, 0x44]                            |         var_44h = r3;
    0x00031784 b 0x31334                                     |         goto label_21;
    0x00031788 mov r1, r4                                    |         r1 = r4;
    0x0003178c mov r0, r5                                    |         r0 = r5;
    0x00031790 bl 0x2ec60                                    |         r0 = fcn_0002ec60 (r0, r1);
    0x00031794 subs r4, r0, 0                                |         r4 = r0 - 0;
    0x00031798 beq 0x31774                                   |         
                                                             |     }
    0x0003179c b 0x3138c                                     |     goto label_7;
                                                             | label_34:
    0x000317a0 mov r4, 2                                     |     r4 = 2;
    0x000317a4 b 0x3138c                                     |     goto label_7;
                                                             | label_47:
    0x000317a8 ldr r1, [sp, 0x3c]                            |     r1 = var_3ch;
    0x000317ac cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x000317b0 bne 0x31334                                   |         goto label_21;
                                                             |     }
    0x000317b4 mov r0, r5                                    |     r0 = r5;
    0x000317b8 bl 0x2ec60                                    |     r0 = fcn_0002ec60 (r0, r1);
    0x000317bc subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x000317c0 beq 0x31334                                   |         goto label_21;
                                                             |     }
                                                             | label_26:
    0x000317c4 mov r0, r4                                    |     r0 = r4;
    0x000317c8 add sp, sp, 0x8c                              |     
    0x000317cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | }

[*] Function strcpy used 23 times libuClibc-1.0.31.so