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

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


[*] Function strcat tear down of libuClibc-0.9.33.2.so

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/libuClibc-0.9.33.2.so @ 0x455c8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000455c8 ()              | void fcn_000455c8 () {
    0x000455c8 lui gp, 8                 |     
    0x000455cc addiu gp, gp, -0x3ee8     |     
    0x000455d0 addu gp, gp, t9           |     gp += t9;
    0x000455d4 addiu sp, sp, -0x68       |     
    0x000455d8 sw fp, 0x60(sp)           |     *(var_60h) = fp;
    0x000455dc move fp, sp               |     fp = sp;
    0x000455e0 sw s5, 0x58(sp)           |     *(var_58h) = s5;
    0x000455e4 sw s4, 0x54(sp)           |     *(var_54h) = s4;
    0x000455e8 sw s3, 0x50(sp)           |     *(var_50h) = s3;
    0x000455ec sw s2, 0x4c(sp)           |     *(var_4ch) = s2;
    0x000455f0 sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x000455f4 sw s6, 0x5c(sp)           |     *(var_5ch) = s6;
    0x000455f8 sw s1, 0x48(sp)           |     *(var_48h) = s1;
    0x000455fc sw s0, 0x44(sp)           |     *(var_44h) = s0;
    0x00045600 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00045604 move s5, a0               |     s5 = a0;
    0x00045608 move s3, a1               |     s3 = a1;
    0x0004560c move s4, a2               |     s4 = a2;
    0x00045610 move s2, a3               |     s2 = a3;
    0x00045614 beqz a1, 0x45620          |     
                                         |     while (v0 == 0) {
    0x00045618 addiu s0, zero, -1        |         s0 = -1;
    0x0004561c b 0x45678                 |         goto label_0;
    0x00045620 lw a0, -0x7fd0(gp)        |         a0 = *((gp - 8180));
    0x00045624 lw t9, -0x7b10(gp)        |         t9 = *((gp - 7876));
    0x00045628 addiu t9, t9, 0x5030      |         t9 += 0x5030;
    0x0004562c addiu a0, a0, 0x7188      |         a0 += 0x7188;
    0x00045630 bal 0x45030               |         fcn_00045030 ();
    0x00045634 move s1, v0               |         s1 = v0;
    0x00045638 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x0004563c beqz v0, 0x45618          |         
                                         |     }
    0x00045640 lw t9, -0x7b10(gp)        |     t9 = *((gp - 7876));
    0x00045644 move a0, v0               |     a0 = v0;
    0x00045648 move a1, s5               |     a1 = s5;
    0x0004564c move a2, s2               |     a2 = s2;
    0x00045650 addiu t9, t9, 0x512c      |     t9 += 0x512c;
    0x00045654 move a3, s4               |     a3 = s4;
    0x00045658 bal 0x4512c               |     fcn_0004512c ();
    0x0004565c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00045660 move s0, v0               |     s0 = v0;
    0x00045664 lw t9, -0x7dd0(gp)        |     t9 = *((gp - 8052));
    0x00045668 move a0, s1               |     a0 = s1;
    0x0004566c bal 0x2de70               |     sym_fclose ();
    0x00045670 lw gp, 0x18(fp)           |     gp = *(var_18h);
                                         |     if (s0 != 0) {
    0x00045674 beqz s0, 0x457d4          |         
                                         | label_0:
    0x00045678 lw v0, -0x7608(gp)        |         v0 = *((gp - 7554));
    0x0004567c lw v0, (v0)               |         v0 = *(v0);
    0x00045680 or s3, s3, v0             |         s3 |= v0;
    0x00045684 lw t9, -0x7ef0(gp)        |         t9 = *((gp - 8124));
                                         |         if (s3 != 0) {
    0x00045688 beqz s3, 0x457d0          |             
    0x0004568c addiu a0, zero, 0x46      |             a0 = 0x46;
    0x00045690 bal 0x60b5c               |             sym_sysconf ();
    0x00045694 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045698 addiu v1, v0, 0xe         |             v1 = v0 + 0xe;
    0x0004569c srl v1, v1, 3             |             v1 >>= 3;
    0x000456a0 sll v1, v1, 3             |             v1 <<= 3;
    0x000456a4 lw t9, -0x7f7c(gp)        |             t9 = *((gp - 8159));
    0x000456a8 subu sp, sp, v1           |             
    0x000456ac addiu v1, fp, 0x3c        |             v1 = fp + 0x3c;
    0x000456b0 sw v1, 0x10(sp)           |             *(var_10h) = v1;
    0x000456b4 move a0, s2               |             a0 = s2;
    0x000456b8 addiu a1, fp, 0x20        |             a1 = fp + 0x20;
    0x000456bc addiu a2, sp, 0x18        |             a2 = sp + 0x18;
    0x000456c0 move a3, v0               |             a3 = v0;
    0x000456c4 bal 0x2cec0               |             sym_getpwnam_r ();
    0x000456c8 lw gp, 0x18(fp)           |             gp = *(var_18h);
                                         |             if (v0 != 0) {
    0x000456cc bnez v0, 0x457d0          |                 goto label_1;
                                         |             }
    0x000456d0 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x000456d4 lw t9, -0x7fdc(gp)        |             t9 = *(var_7fdch);
                                         |             if (v0 == 0) {
    0x000456d8 beqz v0, 0x457d0          |                 goto label_1;
                                         |             }
    0x000456dc lw a0, 0x14(v0)           |             a0 = *((v0 + 5));
    0x000456e0 bal 0x3b6e0               |             sym_strlen ();
    0x000456e4 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x000456e8 lw t9, -0x759c(gp)        |             t9 = *(var_759ch);
    0x000456ec addiu a0, v0, 9           |             a0 = v0 + 9;
    0x000456f0 jalr t9                   |             t9 ();
    0x000456f4 move s1, v0               |             s1 = v0;
    0x000456f8 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x000456fc move a0, v0               |             a0 = v0;
    0x00045700 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x00045704 lw t9, -0x7f48(gp)        |             t9 = *(var_7f48h);
    0x00045708 lw a1, 0x14(v0)           |             a1 = *((v0 + 5));
    0x0004570c bal 0x3b630               |             sym_strcpy ();
    0x00045710 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045714 move a0, s1               |             a0 = s1;
    0x00045718 lw a1, -0x7fd0(gp)        |             a1 = *(s2);
    0x0004571c lw t9, -0x7e00(gp)        |             t9 = *(var_7e00h);
    0x00045720 addiu a1, a1, 0x719c      |             a1 += 0x719c;
    0x00045724 bal 0x3b3d0               |             sym_strcat ()
    0x00045728 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x0004572c lw t9, -0x7aa8(gp)        |             t9 = *(var_7aa8h);
    0x00045730 jalr t9                   |             t9 ();
    0x00045734 nop                       |             
    0x00045738 move s6, v0               |             s6 = v0;
    0x0004573c lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045740 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x00045744 lw t9, -0x79b8(gp)        |             t9 = *(var_79b8h);
    0x00045748 lw a0, 8(v0)              |             a0 = *((v0 + 2));
    0x0004574c jalr t9                   |             t9 ();
    0x00045750 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045754 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x00045758 move a0, s1               |             a0 = s1;
    0x0004575c lw t9, -0x7b10(gp)        |             t9 = *(var_7b10h);
    0x00045760 addiu t9, t9, 0x5030      |             t9 += 0x5030;
    0x00045764 lw a1, 8(v0)              |             a1 = *((v0 + 2));
    0x00045768 bal 0x45030               |             fcn_00045030 ();
    0x0004576c lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045770 move s3, v0               |             s3 = v0;
    0x00045774 lw t9, -0x7664(gp)        |             t9 = *(var_7664h);
    0x00045778 move a0, s1               |             a0 = s1;
    0x0004577c jalr t9                   |             t9 ();
    0x00045780 lw gp, 0x18(fp)           |             gp = *(var_18h);
                                         |             if (s3 != 0) {
    0x00045784 beqz s3, 0x457bc          |                 
    0x00045788 lw t9, -0x7b10(gp)        |                 t9 = *(var_7b10h);
    0x0004578c move a0, s3               |                 a0 = s3;
    0x00045790 move a1, s5               |                 a1 = s5;
    0x00045794 move a2, s2               |                 a2 = s2;
    0x00045798 addiu t9, t9, 0x512c      |                 t9 += 0x512c;
    0x0004579c move a3, s4               |                 a3 = s4;
    0x000457a0 bal 0x4512c               |                 fcn_0004512c ();
    0x000457a4 lw gp, 0x18(fp)           |                 gp = *(var_18h);
    0x000457a8 move a0, s3               |                 a0 = s3;
    0x000457ac lw t9, -0x7dd0(gp)        |                 t9 = *(var_7dd0h);
    0x000457b0 move s0, v0               |                 s0 = v0;
    0x000457b4 bal 0x2de70               |                 sym_fclose ();
    0x000457b8 lw gp, 0x18(fp)           |                 gp = *(var_18h);
                                         |             }
    0x000457bc lw t9, -0x79b8(gp)        |             t9 = *(var_79b8h);
    0x000457c0 move a0, s6               |             a0 = s6;
    0x000457c4 jalr t9                   |             t9 ();
    0x000457c8 move sp, fp               |             
    0x000457cc b 0x457d8                 |             goto label_2;
                                         |         }
                                         | label_1:
    0x000457d0 addiu s0, zero, -1        |         s0 = -1;
                                         |     }
    0x000457d4 move sp, fp               |     
                                         | label_2:
    0x000457d8 lw ra, 0x64(sp)           |     ra = *(var_64h);
    0x000457dc move v0, s0               |     v0 = s0;
    0x000457e0 lw fp, 0x60(sp)           |     fp = *(var_60h);
    0x000457e4 lw s6, 0x5c(sp)           |     s6 = *(var_5ch);
    0x000457e8 lw s5, 0x58(sp)           |     s5 = *(var_58h);
    0x000457ec lw s4, 0x54(sp)           |     s4 = *(var_54h);
    0x000457f0 lw s3, 0x50(sp)           |     s3 = *(var_50h);
    0x000457f4 lw s2, 0x4c(sp)           |     s2 = *(var_4ch);
    0x000457f8 lw s1, 0x48(sp)           |     s1 = *(var_48h);
    0x000457fc lw s0, 0x44(sp)           |     s0 = *(var_44h);
    0x00045800 addiu sp, sp, 0x68        |     
    0x00045804 jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/libuClibc-0.9.33.2.so @ 0x47a3c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.ruserpass ()                 | void ruserpass () {
    0x00047a3c lui gp, 8                     |     
    0x00047a40 addiu gp, gp, -0x635c         |     
    0x00047a44 addu gp, gp, t9               |     gp += t9;
    0x00047a48 lw t9, -0x7f84(gp)            |     t9 = *((gp - 8161));
    0x00047a4c addiu sp, sp, -0x4e0          |     
    0x00047a50 sw ra, 0x4dc(sp)              |     *(var_4dch) = ra;
    0x00047a54 sw fp, 0x4d8(sp)              |     *(var_4d8h) = fp;
    0x00047a58 sw s7, 0x4d4(sp)              |     *(var_4d4h) = s7;
    0x00047a5c move fp, sp                   |     fp = sp;
    0x00047a60 sw s5, 0x4cc(sp)              |     *(var_4cch) = s5;
    0x00047a64 sw s2, 0x4c0(sp)              |     *(var_4c0h) = s2;
    0x00047a68 sw s0, 0x4b8(sp)              |     *(var_4b8h) = s0;
    0x00047a6c sw gp, 0x10(sp)               |     *(dest) = gp;
    0x00047a70 sw s6, 0x4d0(sp)              |     *(var_4d0h) = s6;
    0x00047a74 sw s4, 0x4c8(sp)              |     *(var_4c8h) = s4;
    0x00047a78 sw s3, 0x4c4(sp)              |     *(var_4c4h) = s3;
    0x00047a7c sw s1, 0x4bc(sp)              |     *(var_4bch) = s1;
    0x00047a80 move s2, a0                   |     s2 = a0;
    0x00047a84 move s5, a1                   |     s5 = a1;
    0x00047a88 move s7, a2                   |     s7 = a2;
    0x00047a8c jalr t9                       |     t9 ();
    0x00047a90 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047a94 lw t9, -0x7aa8(gp)            |     t9 = *((gp - 7850));
    0x00047a98 move s0, v0                   |     s0 = v0;
    0x00047a9c jalr t9                       |     t9 ();
    0x00047aa0 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (s0 != v0) {
    0x00047aa4 beq s0, v0, 0x47ab0           |         
    0x00047aa8 addiu s1, zero, -1            |         s1 = -1;
    0x00047aac b 0x47f0c                     |         goto label_3;
                                             |     }
    0x00047ab0 lw t9, -0x7960(gp)            |     t9 = *((gp - 7768));
    0x00047ab4 jalr t9                       |     t9 ();
    0x00047ab8 nop                           |     
    0x00047abc lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047ac0 lw t9, -0x7aa4(gp)            |     t9 = *((gp - 7849));
    0x00047ac4 move s0, v0                   |     s0 = v0;
    0x00047ac8 jalr t9                       |     t9 ();
    0x00047acc lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (s0 != v0) {
    0x00047ad0 bne s0, v0, 0x47f08           |         goto label_4;
                                             |     }
    0x00047ad4 lw a0, -0x7fd0(gp)            |     a0 = *((gp - 8180));
    0x00047ad8 lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x00047adc addiu a0, a0, 0x54f0          |     a0 += 0x54f0;
    0x00047ae0 bal 0x5b510                   |     sym_getenv ();
    0x00047ae4 move s1, v0                   |     s1 = v0;
    0x00047ae8 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047aec beqz v0, 0x47f08              |         goto label_4;
                                             |     }
    0x00047af0 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00047af4 move a0, v0                   |     a0 = v0;
    0x00047af8 bal 0x3b6e0                   |     sym_strlen ();
    0x00047afc addiu v0, v0, 0x16            |     v0 += 0x16;
    0x00047b00 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b04 srl v0, v0, 3                 |     v0 >>= 3;
    0x00047b08 sll v0, v0, 3                 |     v0 <<= 3;
    0x00047b0c subu sp, sp, v0               |     
    0x00047b10 lw t9, -0x7f48(gp)            |     t9 = *((gp - 8146));
    0x00047b14 addiu s0, sp, 0x10            |     s0 = sp + 0x10;
    0x00047b18 move a0, s0                   |     a0 = s0;
    0x00047b1c move a1, s1                   |     a1 = s1;
    0x00047b20 bal 0x3b630                   |     sym_strcpy ();
    0x00047b24 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b28 move a0, s0                   |     a0 = s0;
    0x00047b2c lw a1, -0x7fd0(gp)            |     a1 = *((gp - 8180));
    0x00047b30 lw t9, -0x7e00(gp)            |     t9 = *((gp - 8064));
    0x00047b34 addiu a1, a1, 0x7320          |     a1 += 0x7320;
    0x00047b38 bal 0x3b3d0                   |     sym_strcat ()
    0x00047b3c lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b40 move a0, s0                   |     a0 = s0;
    0x00047b44 lw a1, -0x7fd0(gp)            |     a1 = *((gp - 8180));
    0x00047b48 lw t9, -0x7dd4(gp)            |     t9 = *((gp - 8053));
    0x00047b4c addiu a1, a1, 0x4bfc          |     a1 += 0x4bfc;
    0x00047b50 bal 0x2e630                   |     sym_fopen ();
    0x00047b54 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b58 lw s3, -0x7ed0(gp)            |     s3 = *((gp - 8116));
    0x00047b5c sw v0, -0x2420(s3)            |     *((s3 - 2312)) = v0;
                                             |     if (v0 == 0) {
    0x00047b60 bnez v0, 0x47ba0              |         
    0x00047b64 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x00047b68 move v0, v1                   |         v0 = v1;
    0x00047b6c lw v1, -0x7560(gp)            |         v1 = *((gp - 7512));
    0x00047b70 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00047b74 lw v1, (v0)                   |         v1 = *(v0);
    0x00047b78 addiu v0, zero, 2             |         v0 = 2;
    0x00047b7c move s1, zero                 |         s1 = 0;
                                             |         if (v1 == v0) {
    0x00047b80 beq v1, v0, 0x47f0c           |             goto label_3;
                                             |         }
    0x00047b84 lw a0, -0x7fd0(gp)            |         a0 = *((gp - 8180));
    0x00047b88 lw t9, -0x795c(gp)            |         t9 = *((gp - 7767));
    0x00047b8c move a1, s0                   |         a1 = s0;
    0x00047b90 addiu a0, a0, 0x4c8c          |         a0 += 0x4c8c;
    0x00047b94 bal 0x2f7b0                   |         sym_printf ();
    0x00047b98 move sp, fp                   |         
    0x00047b9c b 0x47f10                     |         goto label_5;
                                             |     }
    0x00047ba0 lw t9, -0x7cd4(gp)            |     t9 = *((gp - 7989));
    0x00047ba4 move a0, v0                   |     a0 = v0;
    0x00047ba8 addiu a1, zero, 2             |     a1 = 2;
    0x00047bac bal 0x32810                   |     sym_fsetlocking ();
    0x00047bb0 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047bb4 addiu a0, fp, 0x18            |     a0 = fp + 0x18;
    0x00047bb8 lw t9, -0x7aac(gp)            |     t9 = *((gp - 7851));
    0x00047bbc addiu a1, zero, 0x400         |     a1 = aav.0x00000400;
    0x00047bc0 jalr t9                       |     t9 ();
    0x00047bc4 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 < 0) {
    0x00047bc8 bgez v0, 0x47bd0              |         
    0x00047bcc sb zero, 0x18(fp)             |         *(var_18h) = 0;
                                             |     }
    0x00047bd0 lw t9, -0x7f94(gp)            |     t9 = *((gp - 8165));
    0x00047bd4 addiu a0, fp, 0x18            |     a0 = fp + 0x18;
    0x00047bd8 addiu a1, zero, 0x2e          |     a1 = 0x2e;
    0x00047bdc bal 0x3b410                   |     sym_index ();
    0x00047be0 move s4, v0                   |     s4 = v0;
    0x00047be4 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047be8 bnez v0, 0x47c04              |         
    0x00047bec lw t9, -0x7fdc(gp)            |         t9 = *((gp - 8183));
    0x00047bf0 addiu a0, fp, 0x18            |         a0 = fp + 0x18;
    0x00047bf4 bal 0x3b6e0                   |         sym_strlen ();
    0x00047bf8 lw gp, 0x10(fp)               |         gp = *(dest);
    0x00047bfc addiu v1, fp, 0x18            |         v1 = fp + 0x18;
    0x00047c00 addu s4, v1, v0               |         s4 = v1 + v0;
                                             |     }
    0x00047c04 lw s0, -0x7ed0(gp)            |     s0 = *((gp - 8116));
    0x00047c08 move s1, zero                 |     s1 = 0;
    0x00047c0c addiu s0, s0, -0x241c         |     s0 += -0x241c;
    0x00047c10 b 0x47ed4                     |     goto label_6;
                                             | label_2:
    0x00047c14 addiu v1, zero, 1             |     v1 = 1;
    0x00047c18 addiu v1, zero, 0xb           |     v1 = 0xb;
                                             |     if (v0 != v1) {
    0x00047c1c beq v0, v1, 0x47c64           |         
    0x00047c20 lw v1, -0x7b10(gp)            |         v1 = *((gp - 7876));
                                             |         if (v0 != v1) {
    0x00047c24 bne v0, v1, 0x47ed8           |             goto label_7;
                                             |         }
    0x00047c28 addiu t9, s6, 0x7770          |         t9 = s6 + 0x7770;
                                             |         if (s1 == 0) {
    0x00047c2c bnel s1, zero, 0x47e8c        |             goto label_8;
                                             |         }
    0x00047c30 jalr t9                       |         t9 ();
    0x00047c34 nop                           |         
    0x00047c38 addiu v1, zero, 0xa           |         v1 = 0xa;
    0x00047c3c lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 != v1) {
    0x00047c40 bne v0, v1, 0x47ed4           |             goto label_6;
                                             |         }
    0x00047c44 lw t9, -0x7da0(gp)            |         t9 = *((gp - 8040));
    0x00047c48 move a0, s2                   |         a0 = s2;
    0x00047c4c move a1, s0                   |         a1 = s0;
    0x00047c50 bal 0x3c390                   |         sym_strcasecmp ();
    0x00047c54 lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 != 0) {
    0x00047c58 bnez v0, 0x47c6c              |             goto label_9;
                                             |         }
    0x00047c5c addiu t9, s6, 0x7770          |         t9 = s6 + 0x7770;
    0x00047c60 b 0x47e8c                     |         goto label_8;
                                             |     }
    0x00047c64 addiu s1, zero, 1             |     s1 = 1;
    0x00047c68 b 0x47e88                     |     goto label_10;
                                             | label_9:
    0x00047c6c lw t9, -0x7f94(gp)            |     t9 = *((gp - 8165));
    0x00047c70 move a0, s2                   |     a0 = s2;
    0x00047c74 addiu a1, zero, 0x2e          |     a1 = 0x2e;
    0x00047c78 bal 0x3b410                   |     sym_index ();
    0x00047c7c lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047c80 beqz v0, 0x47ed4              |         goto label_6;
                                             |     }
    0x00047c84 lw t9, -0x7da0(gp)            |     t9 = *((gp - 8040));
    0x00047c88 move a0, v0                   |     a0 = v0;
    0x00047c8c move a1, s4                   |     a1 = s4;
    0x00047c90 sw v0, 0x4b0(fp)              |     *(var_4b0h) = v0;
    0x00047c94 bal 0x3c390                   |     sym_strcasecmp ();
    0x00047c98 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047c9c lw a2, 0x4b0(fp)              |     a2 = *(var_4b0h);
                                             |     if (v0 != 0) {
    0x00047ca0 bnez v0, 0x47ed4              |         goto label_6;
                                             |     }
    0x00047ca4 lw t9, -0x7cf0(gp)            |     t9 = *((gp - 7996));
    0x00047ca8 subu v1, a2, s2               |     __asm ("subu v1, a2, s2");
    0x00047cac move a2, v1                   |     a2 = v1;
    0x00047cb0 sw v1, 0x4b0(fp)              |     *(var_4b0h) = v1;
    0x00047cb4 move a0, s2                   |     a0 = s2;
    0x00047cb8 move a1, s0                   |     a1 = s0;
    0x00047cbc bal 0x3c5f0                   |     sym_strncasecmp ();
    0x00047cc0 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047cc4 lw v1, 0x4b0(fp)              |     v1 = *(var_4b0h);
                                             |     if (v0 != 0) {
    0x00047cc8 bnez v0, 0x47ed4              |         goto label_6;
                                             |     }
    0x00047ccc addu v1, v1, s0               |     v1 += s0;
    0x00047cd0 lbu v0, (v1)                  |     v0 = *(v1);
    0x00047cd4 move s1, zero                 |     s1 = 0;
    0x00047cd8 b 0x47d84                     |     goto label_11;
                                             | label_0:
    0x00047cdc slti v1, v0, 4                |     v1 = (v0 < 4) ? 1 : 0;
                                             |     if (v0 == v1) {
    0x00047ce0 beq v0, v1, 0x47d94           |         goto label_12;
                                             |     }
                                             |     if (v1 != 0) {
    0x00047ce4 beql v1, zero, 0x47d00        |         
    0x00047ce8 slti v0, v0, 6                |         v0 = (v0 < 6) ? 1 : 0;
    0x00047cec addiu v1, zero, 2             |         v1 = 2;
    0x00047cf0 lw v0, -0x7fd0(gp)            |         v0 = *((gp - 8180));
                                             |         if (v0 != v1) {
    0x00047cf4 bne v0, v1, 0x47e78           |             goto label_13;
                                             |         }
    0x00047cf8 b 0x47d10                     |         goto label_14;
    0x00047cfc nop                           |         
                                             |     }
    0x00047d00 lw v0, -0x7fd0(gp)            |     v0 = *((gp - 8180));
                                             |     if (v0 == 0) {
    0x00047d04 beqz v0, 0x47e78              |         goto label_13;
                                             |     }
    0x00047d08 addiu t9, s6, 0x7770          |     t9 = s6 + 0x7770;
    0x00047d0c b 0x47e8c                     |     goto label_8;
                                             | label_14:
    0x00047d10 jalr t9                       |     t9 ();
    0x00047d14 nop                           |     
    0x00047d18 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047d1c beqz v0, 0x47e88              |         goto label_10;
                                             |     }
    0x00047d20 lw a0, (s5)                   |     a0 = *(s5);
    0x00047d24 lw t9, -0x7e98(gp)            |     t9 = *((gp - 8102));
                                             |     if (a0 != 0) {
    0x00047d28 bnez a0, 0x47d78              |         goto label_15;
                                             |     }
    0x00047d2c lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00047d30 move a0, s0                   |     a0 = s0;
    0x00047d34 bal 0x3b6e0                   |     sym_strlen ();
    0x00047d38 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047d3c lw t9, -0x759c(gp)            |     t9 = *((gp - 7527));
    0x00047d40 addiu a0, v0, 1               |     a0 = v0 + 1;
    0x00047d44 jalr t9                       |     t9 ();
    0x00047d48 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047d4c bnez v0, 0x47d60              |     
                                             |     while (v0 == 0) {
    0x00047d50 lw a0, -0x7fd0(gp)            |         a0 = *((gp - 8180));
    0x00047d54 lw t9, -0x795c(gp)            |         t9 = *((gp - 7767));
    0x00047d58 addiu a0, a0, 0x7328          |         a0 += 0x7328;
    0x00047d5c b 0x47e0c                     |         goto label_16;
    0x00047d60 lw t9, -0x7f48(gp)            |         t9 = *((gp - 8146));
    0x00047d64 move a0, v0                   |         a0 = v0;
    0x00047d68 move a1, s0                   |         a1 = s0;
    0x00047d6c bal 0x3b630                   |         sym_strcpy ();
    0x00047d70 sw v0, (s5)                   |         *(s5) = v0;
    0x00047d74 b 0x47e88                     |         goto label_10;
                                             | label_15:
    0x00047d78 move a1, s0                   |         a1 = s0;
    0x00047d7c bal 0x3b600                   |         sym_strcmp ();
    0x00047d80 lw gp, 0x10(fp)               |         gp = *(dest);
                                             | label_11:
    0x00047d84 addiu t9, s6, 0x7770          |         t9 = s6 + 0x7770;
                                             |         if (v0 == 0) {
    0x00047d88 beqz v0, 0x47e8c              |             goto label_8;
                                             |         }
    0x00047d8c lw v1, -0x7b10(gp)            |         v1 = *((gp - 7876));
    0x00047d90 b 0x47ed8                     |         goto label_7;
                                             | label_12:
    0x00047d94 lw a1, -0x7fd0(gp)            |         a1 = *((gp - 8180));
    0x00047d98 lw t9, -0x7e98(gp)            |         t9 = *((gp - 8102));
    0x00047d9c lw a0, (s5)                   |         a0 = *(s5);
    0x00047da0 addiu a1, a1, 0x7338          |         a1 += 0x7338;
    0x00047da4 bal 0x3b600                   |         sym_strcmp ();
    0x00047da8 lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 != 0) {
    0x00047dac beqz v0, 0x47e1c              |             
    0x00047db0 lw t9, -0x79c4(gp)            |             t9 = *((gp - 7793));
    0x00047db4 lw a0, -0x2420(s3)            |             a0 = *((s3 - 2312));
    0x00047db8 bal 0x387f0                   |             sym_fileno ();
    0x00047dbc lw gp, 0x10(fp)               |             gp = *(dest);
    0x00047dc0 move a0, v0                   |             a0 = v0;
    0x00047dc4 lw t9, -0x7e94(gp)            |             t9 = *((gp - 8101));
    0x00047dc8 addiu a1, fp, 0x418           |             a1 = fp + aav.0x00000418;
    0x00047dcc jalr t9                       |             t9 ();
    0x00047dd0 lw gp, 0x10(fp)               |             gp = *(dest);
                                             |             if (v0 < 0) {
    0x00047dd4 bltz v0, 0x47e1c              |                 goto label_17;
                                             |             }
    0x00047dd8 lw v0, 0x42c(fp)              |             v0 = *(var_42ch);
    0x00047ddc andi v0, v0, 0x3f             |             v0 &= 0x3f;
    0x00047de0 addiu t9, s6, 0x7770          |             t9 = s6 + 0x7770;
                                             |             if (v0 == 0) {
    0x00047de4 beqz v0, 0x47e20              |                 goto label_18;
                                             |             }
    0x00047de8 lw s0, -0x795c(gp)            |             s0 = *((gp - 7767));
    0x00047dec lw a0, -0x7fd0(gp)            |             a0 = *((gp - 8180));
    0x00047df0 move t9, s0                   |             t9 = s0;
    0x00047df4 addiu a0, a0, 0x7344          |             a0 += 0x7344;
    0x00047df8 bal 0x2f7b0                   |             sym_printf ();
    0x00047dfc lw gp, 0x10(fp)               |             gp = *(dest);
    0x00047e00 move t9, s0                   |             t9 = s0;
    0x00047e04 lw a0, -0x7fd0(gp)            |             a0 = *((gp - 8180));
    0x00047e08 addiu a0, a0, 0x7370          |             a0 += 0x7370;
                                             | label_16:
    0x00047e0c bal 0x2f7b0                   |             sym_printf ();
    0x00047e10 nop                           |             
    0x00047e14 lw gp, 0x10(fp)               |             gp = *(dest);
    0x00047e18 b 0x47efc                     |             goto label_19;
                                             |         }
                                             | label_17:
    0x00047e1c addiu t9, s6, 0x7770          |         t9 = s6 + 0x7770;
                                             | label_18:
    0x00047e20 bal 0x47770                   |         fcn_00047770 ();
    0x00047e24 nop                           |         
    0x00047e28 lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 == 0) {
    0x00047e2c beqz v0, 0x47e88              |             goto label_10;
                                             |         }
    0x00047e30 lw v0, (s7)                   |         v0 = *(s7);
    0x00047e34 addiu t9, s6, 0x7770          |         t9 = s6 + 0x7770;
                                             |         if (v0 != 0) {
    0x00047e38 bnez v0, 0x47e8c              |             goto label_8;
                                             |         }
    0x00047e3c lw t9, -0x7fdc(gp)            |         t9 = *((gp - 8183));
    0x00047e40 move a0, s0                   |         a0 = s0;
    0x00047e44 bal 0x3b6e0                   |         sym_strlen ();
    0x00047e48 lw gp, 0x10(fp)               |         gp = *(dest);
    0x00047e4c lw t9, -0x759c(gp)            |         t9 = *((gp - 7527));
    0x00047e50 addiu a0, v0, 1               |         a0 = v0 + 1;
    0x00047e54 jalr t9                       |         t9 ();
    0x00047e58 lw gp, 0x10(fp)               |         gp = *(dest);
    0x00047e5c beqz v0, 0x47d50              |         
                                             |     }
    0x00047e60 lw t9, -0x7f48(gp)            |     t9 = *((gp - 8146));
    0x00047e64 move a0, v0                   |     a0 = v0;
    0x00047e68 move a1, s0                   |     a1 = s0;
    0x00047e6c bal 0x3b630                   |     sym_strcpy ();
    0x00047e70 sw v0, (s7)                   |     *(s7) = v0;
    0x00047e74 b 0x47e88                     |     goto label_10;
                                             | label_13:
    0x00047e78 lw t9, -0x795c(gp)            |     t9 = *((gp - 7767));
    0x00047e7c move a1, s0                   |     a1 = s0;
    0x00047e80 addiu a0, v0, 0x73a4          |     a0 = v0 + 0x73a4;
    0x00047e84 bal 0x2f7b0                   |     sym_printf ();
                                             | label_10:
    0x00047e88 addiu t9, s6, 0x7770          |     t9 = s6 + 0x7770;
                                             | label_8:
    0x00047e8c sw t9, 0x4b0(fp)              |     *(var_4b0h) = t9;
    0x00047e90 bal 0x47770                   |     fcn_00047770 ();
    0x00047e94 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047e98 lw t9, 0x4b0(fp)              |     t9 = *(var_4b0h);
    0x00047e9c bnez v0, 0x47eb8              |     
                                             |     while (v0 == v1) {
    0x00047ea0 lw a0, -0x2420(s3)            |         a0 = *((s3 - 2312));
                                             | label_1:
    0x00047ea4 lw t9, -0x7dd0(gp)            |         t9 = *((gp - 8052));
    0x00047ea8 move s1, zero                 |         s1 = 0;
    0x00047eac bal 0x2de70                   |         sym_fclose ();
    0x00047eb0 move sp, fp                   |         
    0x00047eb4 b 0x47f10                     |         goto label_5;
    0x00047eb8 addiu v1, zero, 0xb           |         v1 = 0xb;
    0x00047ebc addiu v1, zero, 1             |         v1 = 1;
    0x00047ec0 beq v0, v1, 0x47ea0           |         
                                             |     }
    0x00047ec4 addiu v1, zero, 3             |     v1 = 3;
                                             |     if (v0 != v1) {
    0x00047ec8 bne v0, v1, 0x47cdc           |         goto label_0;
                                             |     }
    0x00047ecc lw a0, -0x2420(s3)            |     a0 = *((s3 - 2312));
    0x00047ed0 b 0x47ea4                     |     goto label_1;
                                             | label_6:
    0x00047ed4 lw v1, -0x7b10(gp)            |     v1 = *((gp - 7876));
                                             | label_7:
    0x00047ed8 addiu t9, v1, 0x7770          |     t9 = v1 + 0x7770;
    0x00047edc sw t9, 0x4b0(fp)              |     *(var_4b0h) = t9;
    0x00047ee0 bal 0x47770                   |     fcn_00047770 ();
    0x00047ee4 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047ee8 lw t9, 0x4b0(fp)              |     t9 = *(var_4b0h);
    0x00047eec lw s6, -0x7b10(gp)            |     s6 = *((gp - 7876));
                                             |     if (v0 != 0) {
    0x00047ef0 bnez v0, 0x47c14              |         goto label_2;
                                             |     }
    0x00047ef4 lw a0, -0x2420(s3)            |     a0 = *((s3 - 2312));
    0x00047ef8 b 0x47ea4                     |     goto label_1;
                                             | label_19:
    0x00047efc lw t9, -0x7dd0(gp)            |     t9 = *((gp - 8052));
    0x00047f00 lw a0, -0x2420(s3)            |     a0 = *((s3 - 2312));
    0x00047f04 bal 0x2de70                   |     sym_fclose ();
                                             | label_4:
    0x00047f08 addiu s1, zero, -1            |     s1 = -1;
                                             | label_3:
    0x00047f0c move sp, fp                   |     
                                             | label_5:
    0x00047f10 lw ra, 0x4dc(sp)              |     ra = *(var_4dch);
    0x00047f14 move v0, s1                   |     v0 = s1;
    0x00047f18 lw fp, 0x4d8(sp)              |     fp = *(var_4d8h);
    0x00047f1c lw s7, 0x4d4(sp)              |     s7 = *(var_4d4h);
    0x00047f20 lw s6, 0x4d0(sp)              |     s6 = *(var_4d0h);
    0x00047f24 lw s5, 0x4cc(sp)              |     s5 = *(var_4cch);
    0x00047f28 lw s4, 0x4c8(sp)              |     s4 = *(var_4c8h);
    0x00047f2c lw s3, 0x4c4(sp)              |     s3 = *(var_4c4h);
    0x00047f30 lw s2, 0x4c0(sp)              |     s2 = *(var_4c0h);
    0x00047f34 lw s1, 0x4bc(sp)              |     s1 = *(var_4bch);
    0x00047f38 lw s0, 0x4b8(sp)              |     s0 = *(var_4b8h);
    0x00047f3c addiu sp, sp, 0x4e0           |     
    0x00047f40 jr ra                         |     return v0;
                                             | }

[*] Function strcat used 3 times libuClibc-0.9.33.2.so