[*] Binary protection state of ipv6_checkroute

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


[*] Function printf tear down of ipv6_checkroute

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/ipv6_checkroute @ 0x403358 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.check_route_char_ ()         | void check_route_char_ () {
                                             |     /* check_route(char*) */
    0x00403358 lui gp, 2                     |     
    0x0040335c addiu gp, gp, -0x1338         |     
    0x00403360 addu gp, gp, t9               |     gp += t9;
    0x00403364 addiu sp, sp, -0x590          |     
    0x00403368 sw ra, 0x58c(sp)              |     *(var_58ch) = ra;
    0x0040336c sw fp, 0x588(sp)              |     *(var_588h) = fp;
    0x00403370 sw s0, 0x584(sp)              |     *(var_584h) = s0;
    0x00403374 move fp, sp                   |     fp = sp;
    0x00403378 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0040337c sw a0, 0x1c(fp)               |     *(arg_1ch) = a0;
    0x00403380 lw t8, -0x7da4(gp)            |     t8 = *((gp - 8041));
    0x00403384 lw t8, (t8)                   |     t8 = *(t8);
    0x00403388 sw t8, 0x57c(fp)              |     *(arg_57ch) = t8;
    0x0040338c addiu v0, fp, 0x2fc           |     v0 = fp + 0x2fc;
    0x00403390 addiu t8, zero, 0x80          |     t8 = 0x80;
    0x00403394 move a0, v0                   |     a0 = v0;
    0x00403398 move a1, zero                 |     a1 = 0;
    0x0040339c move a2, t8                   |     a2 = t8;
    0x004033a0 lw t8, -0x7e38(gp)            |     t8 = sym.imp.memset;
    0x004033a4 move t9, t8                   |     t9 = t8;
    0x004033a8 jalr t9                       |     t9 ();
    0x004033ac nop                           |     
    0x004033b0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004033b4 sw zero, 0x68(fp)             |     *(arg_68h) = 0;
    0x004033b8 addiu t8, fp, 0x20            |     t8 = fp + 0x20;
    0x004033bc move a0, t8                   |     a0 = t8;
    0x004033c0 lw t8, -0x7da0(gp)            |     t8 = *(gp);
    0x004033c4 move t9, t8                   |     t9 = t8;
    0x004033c8 jalr t9                       |     t9 ();
    0x004033cc nop                           |     
    0x004033d0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004033d4 addiu t8, fp, 0x94            |     t8 = fp + 0x94;
    0x004033d8 move a0, t8                   |     a0 = t8;
    0x004033dc lw t8, -0x7fc0(gp)            |     t8 = *(gp);
    0x004033e0 move t9, t8                   |     t9 = t8;
    0x004033e4 jalr t9                       |     t9 ();
    0x004033e8 nop                           |     
    0x004033ec lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004033f0 addiu t8, fp, 0xac            |     t8 = fp + 0xac;
    0x004033f4 move a0, t8                   |     a0 = t8;
    0x004033f8 lw t8, -0x7fc0(gp)            |     t8 = *(gp);
    0x004033fc move t9, t8                   |     t9 = t8;
    0x00403400 jalr t9                       |     t9 ();
    0x00403404 nop                           |     
    0x00403408 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x0040340c addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00403410 move a0, t8                   |     a0 = t8;
    0x00403414 lw t8, -0x7fbc(gp)            |     t8 = *(gp);
    0x00403418 move t9, t8                   |     t9 = t8;
    0x0040341c jalr t9                       |     t9 ();
    0x00403420 nop                           |     
    0x00403424 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403428 addiu t8, fp, 0x28            |     t8 = fp + 0x28;
    0x0040342c move a0, t8                   |     a0 = t8;
    0x00403430 lw t8, -0x7fbc(gp)            |     t8 = *(gp);
    0x00403434 move t9, t8                   |     t9 = t8;
    0x00403438 jalr t9                       |     t9 ();
    0x0040343c nop                           |     
    0x00403440 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403444 sw zero, 0x54(fp)             |     *(arg_54h) = 0;
    0x00403448 sw zero, 0x58(fp)             |     *(arg_58h) = 0;
    0x0040344c sw zero, 0x5c(fp)             |     *(arg_5ch) = 0;
    0x00403450 sw zero, 0x60(fp)             |     *(arg_60h) = 0;
    0x00403454 addiu t8, fp, 0x2fc           |     t8 = fp + 0x2fc;
    0x00403458 move a0, t8                   |     a0 = t8;
    0x0040345c addiu a1, zero, 0x80          |     a1 = 0x80;
    0x00403460 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str.ifconfig__s__grep_inet6____tmp_addr6 */
    0x00403464 addiu a2, t8, -0x79c0         |     a2 = t8 + -0x79c0;
    0x00403468 lw a3, 0x1c(fp)               |     a3 = *(arg_1ch);
    0x0040346c lw t8, -0x7df0(gp)            |     t8 = sym.imp.snprintf
    0x00403470 move t9, t8                   |     t9 = t8;
    0x00403474 jalr t9                       |     t9 ();
    0x00403478 nop                           |     
    0x0040347c lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403480 addiu t8, fp, 0x2fc           |     t8 = fp + 0x2fc;
    0x00403484 move a0, t8                   |     a0 = t8;
    0x00403488 lw t8, -0x7dac(gp)            |     t8 = sym.imp.system;
    0x0040348c move t9, t8                   |     t9 = t8;
    0x00403490 jalr t9                       |     t9 ();
    0x00403494 nop                           |     
    0x00403498 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x0040349c addiu t8, fp, 0xc4            |     t8 = fp + 0xc4;
    0x004034a0 move a0, t8                   |     a0 = t8;
    0x004034a4 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str._tmp_addr6 */
    0x004034a8 addiu a1, t8, -0x7998         |     a1 = t8 + -0x7998;
    0x004034ac addiu a2, zero, 8             |     a2 = 8;
    0x004034b0 lw t8, -0x7de4(gp)            |     t8 = *(gp);
    0x004034b4 move t9, t8                   |     t9 = t8;
    0x004034b8 jalr t9                       |     t9 ();
    0x004034bc nop                           |     
    0x004034c0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004034c4 addiu t8, fp, 0xc4            |     t8 = fp + 0xc4;
    0x004034c8 addiu t8, t8, 0x94            |     t8 += 0x94;
    0x004034cc move a0, t8                   |     a0 = t8;
    0x004034d0 lw t8, -0x7e04(gp)            |     t8 = *(gp);
    0x004034d4 move t9, t8                   |     t9 = t8;
    0x004034d8 jalr t9                       |     t9 ();
    0x004034dc nop                           |     
    0x004034e0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004034e4 move t8, v0                   |     t8 = v0;
                                             |     if (t8 != 0) {
    0x004034e8 beqz t8, 0x4034fc             |         
    0x004034ec nop                           |         
    0x004034f0 move s0, zero                 |         s0 = 0;
    0x004034f4 b 0x404170                    |         goto label_1;
    0x004034f8 nop                           |         
                                             |     }
    0x004034fc sw zero, 0x68(fp)             |     *(arg_68h) = 0;
    0x00403500 b 0x4037fc                    |     goto label_2;
    0x00403504 nop                           |     
                                             |     do {
    0x00403508 addiu v0, fp, 0x2c            |         v0 = fp + 0x2c;
    0x0040350c addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x00403510 move a0, v0                   |         a0 = v0;
    0x00403514 move a1, t8                   |         a1 = t8;
    0x00403518 lw t8, -0x7fb4(gp)            |         t8 = sym.trim_std::string_const_;
    0x0040351c move t9, t8                   |         t9 = t8;
    0x00403520 jalr t9                       |         t9 ();
    0x00403524 nop                           |         
    0x00403528 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x0040352c addiu v0, fp, 0x20            |         v0 = fp + 0x20;
    0x00403530 addiu t8, fp, 0x2c            |         t8 = fp + 0x2c;
    0x00403534 move a0, v0                   |         a0 = v0;
    0x00403538 move a1, t8                   |         a1 = t8;
    0x0040353c lw t8, -0x7e70(gp)            |         t8 = *(gp);
    0x00403540 move t9, t8                   |         t9 = t8;
    0x00403544 jalr t9                       |         t9 ();
    0x00403548 nop                           |         
    0x0040354c lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403550 addiu t8, fp, 0x2c            |         t8 = fp + 0x2c;
    0x00403554 move a0, t8                   |         a0 = t8;
    0x00403558 lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x0040355c move t9, t8                   |         t9 = t8;
    0x00403560 jalr t9                       |         t9 ();
    0x00403564 nop                           |         
    0x00403568 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x0040356c addiu t8, fp, 0x50            |         t8 = fp + 0x50;
    0x00403570 move a0, t8                   |         a0 = t8;
    0x00403574 lw t8, -0x7da0(gp)            |         t8 = *(gp);
    0x00403578 move t9, t8                   |         t9 = t8;
    0x0040357c jalr t9                       |         t9 ();
    0x00403580 nop                           |         
    0x00403584 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403588 addiu t8, fp, 0x8c            |         t8 = fp + 0x8c;
    0x0040358c move a0, t8                   |         a0 = t8;
    0x00403590 lw t8, -0x7da0(gp)            |         t8 = *(gp);
    0x00403594 move t9, t8                   |         t9 = t8;
    0x00403598 jalr t9                       |         t9 ();
    0x0040359c nop                           |         
    0x004035a0 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x004035a4 addiu t8, zero, 5             |         t8 = 5;
    0x004035a8 sw t8, 0x6c(fp)               |         *(arg_6ch) = t8;
    0x004035ac addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x004035b0 move a0, t8                   |         a0 = t8;
    0x004035b4 lw t8, -0x7fb8(gp)            |         t8 = *((gp - 8174));
                                             |         /* str.addr: */
    0x004035b8 addiu a1, t8, -0x798c         |         a1 = t8 + -0x798c;
    0x004035bc move a2, zero                 |         a2 = 0;
    0x004035c0 lw t8, -0x7dec(gp)            |         t8 = *(gp);
    0x004035c4 move t9, t8                   |         t9 = t8;
    0x004035c8 jalr t9                       |         t9 ();
    0x004035cc nop                           |         
    0x004035d0 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x004035d4 move t8, v0                   |         t8 = v0;
    0x004035d8 sw t8, 0x70(fp)               |         *(arg_70h) = t8;
    0x004035dc addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x004035e0 move a0, t8                   |         a0 = t8;
    0x004035e4 lw t8, -0x7fb8(gp)            |         t8 = *((gp - 8174));
                                             |         /* str.Scope: */
    0x004035e8 addiu a1, t8, -0x7984         |         a1 = t8 + -0x7984;
    0x004035ec move a2, zero                 |         a2 = 0;
    0x004035f0 lw t8, -0x7dec(gp)            |         t8 = *(gp);
    0x004035f4 move t9, t8                   |         t9 = t8;
    0x004035f8 jalr t9                       |         t9 ();
    0x004035fc nop                           |         
    0x00403600 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403604 move t8, v0                   |         t8 = v0;
    0x00403608 sw t8, 0x74(fp)               |         *(arg_74h) = t8;
    0x0040360c lw v0, 0x70(fp)               |         v0 = *(arg_70h);
    0x00403610 addiu t8, zero, -1            |         t8 = -1;
                                             |         if (v0 != t8) {
    0x00403614 beq v0, t8, 0x4037c4          |             
    0x00403618 nop                           |             
    0x0040361c lw v0, 0x74(fp)               |             v0 = *(arg_74h);
    0x00403620 addiu t8, zero, -1            |             t8 = -1;
                                             |             if (v0 == t8) {
    0x00403624 beq v0, t8, 0x4037c4          |                 goto label_3;
                                             |             }
    0x00403628 nop                           |             
    0x0040362c lw v0, 0x6c(fp)               |             v0 = *(arg_6ch);
    0x00403630 lw t8, 0x70(fp)               |             t8 = *(arg_70h);
    0x00403634 addu v0, v0, t8               |             v0 += t8;
    0x00403638 lw v1, 0x74(fp)               |             v1 = *(arg_74h);
    0x0040363c lw t8, 0x70(fp)               |             t8 = *(arg_70h);
    0x00403640 subu v1, v1, t8               |             __asm ("subu v1, v1, t8");
    0x00403644 lw t8, 0x6c(fp)               |             t8 = *(arg_6ch);
    0x00403648 subu t8, v1, t8               |             __asm ("subu t8, v1, t8");
    0x0040364c addiu a0, fp, 0x30            |             a0 = fp + 0x30;
    0x00403650 addiu v1, fp, 0x20            |             v1 = fp + 0x20;
    0x00403654 move a1, v1                   |             a1 = v1;
    0x00403658 move a2, v0                   |             a2 = v0;
    0x0040365c move a3, t8                   |             a3 = t8;
    0x00403660 lw t8, -0x7e24(gp)            |             t8 = *(gp);
    0x00403664 move t9, t8                   |             t9 = t8;
    0x00403668 jalr t9                       |             t9 ();
    0x0040366c nop                           |             
    0x00403670 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x00403674 addiu v0, fp, 0x50            |             v0 = fp + 0x50;
    0x00403678 addiu t8, fp, 0x30            |             t8 = fp + 0x30;
    0x0040367c move a0, v0                   |             a0 = v0;
    0x00403680 move a1, t8                   |             a1 = t8;
    0x00403684 lw t8, -0x7e70(gp)            |             t8 = *(gp);
    0x00403688 move t9, t8                   |             t9 = t8;
    0x0040368c jalr t9                       |             t9 ();
    0x00403690 nop                           |             
    0x00403694 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x00403698 addiu t8, fp, 0x30            |             t8 = fp + 0x30;
    0x0040369c move a0, t8                   |             a0 = t8;
    0x004036a0 lw t8, -0x7df8(gp)            |             t8 = *(gp);
    0x004036a4 move t9, t8                   |             t9 = t8;
    0x004036a8 jalr t9                       |             t9 ();
    0x004036ac nop                           |             
    0x004036b0 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x004036b4 addiu t8, fp, 0x50            |             t8 = fp + 0x50;
    0x004036b8 move a0, t8                   |             a0 = t8;
    0x004036bc lw t8, -0x7fb8(gp)            |             t8 = *((gp - 8174));
    0x004036c0 addiu a1, t8, -0x797c         |             a1 = t8 + -0x797c;
    0x004036c4 move a2, zero                 |             a2 = 0;
    0x004036c8 lw t8, -0x7dec(gp)            |             t8 = *(gp);
    0x004036cc move t9, t8                   |             t9 = t8;
    0x004036d0 jalr t9                       |             t9 ();
    0x004036d4 nop                           |             
    0x004036d8 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x004036dc move t8, v0                   |             t8 = v0;
    0x004036e0 addiu v1, fp, 0x34            |             v1 = fp + 0x34;
    0x004036e4 addiu v0, fp, 0x50            |             v0 = fp + 0x50;
    0x004036e8 move a0, v1                   |             a0 = v1;
    0x004036ec move a1, v0                   |             a1 = v0;
    0x004036f0 move a2, zero                 |             a2 = 0;
    0x004036f4 move a3, t8                   |             a3 = t8;
    0x004036f8 lw t8, -0x7e24(gp)            |             t8 = *(gp);
    0x004036fc move t9, t8                   |             t9 = t8;
    0x00403700 jalr t9                       |             t9 ();
    0x00403704 nop                           |             
    0x00403708 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x0040370c addiu v0, fp, 0x38            |             v0 = fp + 0x38;
    0x00403710 addiu t8, fp, 0x34            |             t8 = fp + 0x34;
    0x00403714 move a0, v0                   |             a0 = v0;
    0x00403718 move a1, t8                   |             a1 = t8;
    0x0040371c lw t8, -0x7fb4(gp)            |             t8 = sym.trim_std::string_const_;
    0x00403720 move t9, t8                   |             t9 = t8;
    0x00403724 jalr t9                       |             t9 ();
    0x00403728 nop                           |             
    0x0040372c lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x00403730 addiu v0, fp, 0x8c            |             v0 = fp + 0x8c;
    0x00403734 addiu t8, fp, 0x38            |             t8 = fp + 0x38;
    0x00403738 move a0, v0                   |             a0 = v0;
    0x0040373c move a1, t8                   |             a1 = t8;
    0x00403740 lw t8, -0x7e70(gp)            |             t8 = *(gp);
    0x00403744 move t9, t8                   |             t9 = t8;
    0x00403748 jalr t9                       |             t9 ();
    0x0040374c nop                           |             
    0x00403750 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x00403754 addiu t8, fp, 0x38            |             t8 = fp + 0x38;
    0x00403758 move a0, t8                   |             a0 = t8;
    0x0040375c lw t8, -0x7df8(gp)            |             t8 = *(gp);
    0x00403760 move t9, t8                   |             t9 = t8;
    0x00403764 jalr t9                       |             t9 ();
    0x00403768 nop                           |             
    0x0040376c lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x00403770 addiu t8, fp, 0x34            |             t8 = fp + 0x34;
    0x00403774 move a0, t8                   |             a0 = t8;
    0x00403778 lw t8, -0x7df8(gp)            |             t8 = *(gp);
    0x0040377c move t9, t8                   |             t9 = t8;
    0x00403780 jalr t9                       |             t9 ();
    0x00403784 nop                           |             
    0x00403788 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x0040378c addiu v1, fp, 0x84            |             v1 = fp + 0x84;
    0x00403790 addiu v0, fp, 0x94            |             v0 = fp + 0x94;
    0x00403794 addiu t8, fp, 0x8c            |             t8 = fp + 0x8c;
    0x00403798 move a0, v1                   |             a0 = v1;
    0x0040379c move a1, v0                   |             a1 = v0;
    0x004037a0 move a2, t8                   |             a2 = t8;
    0x004037a4 lw t8, -0x7fb0(gp)            |             t8 = *(gp);
    0x004037a8 move t9, t8                   |             t9 = t8;
    0x004037ac jalr t9                       |             t9 ();
    0x004037b0 nop                           |             
    0x004037b4 lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x004037b8 lw t8, 0x60(fp)               |             t8 = *(arg_60h);
    0x004037bc addiu t8, t8, 1               |             t8++;
    0x004037c0 sw t8, 0x60(fp)               |             *(arg_60h) = t8;
                                             |         }
                                             | label_3:
    0x004037c4 addiu t8, fp, 0x8c            |         t8 = fp + 0x8c;
    0x004037c8 move a0, t8                   |         a0 = t8;
    0x004037cc lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x004037d0 move t9, t8                   |         t9 = t8;
    0x004037d4 jalr t9                       |         t9 ();
    0x004037d8 nop                           |         
    0x004037dc lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x004037e0 addiu t8, fp, 0x50            |         t8 = fp + 0x50;
    0x004037e4 move a0, t8                   |         a0 = t8;
    0x004037e8 lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x004037ec move t9, t8                   |         t9 = t8;
    0x004037f0 jalr t9                       |         t9 ();
    0x004037f4 nop                           |         
    0x004037f8 lw gp, 0x10(fp)               |         gp = *(arg_10h);
                                             | label_2:
    0x004037fc addiu v0, fp, 0xc4            |         v0 = fp + 0xc4;
    0x00403800 addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x00403804 move a0, v0                   |         a0 = v0;
    0x00403808 move a1, t8                   |         a1 = t8;
    0x0040380c lw t8, -0x7db0(gp)            |         t8 = *(gp);
    0x00403810 move t9, t8                   |         t9 = t8;
    0x00403814 jalr t9                       |         t9 ();
    0x00403818 nop                           |         
    0x0040381c lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403820 move t8, v0                   |         t8 = v0;
    0x00403824 lw v0, (t8)                   |         v0 = *(t8);
    0x00403828 addiu v0, v0, -0xc            |         v0 += -0xc;
    0x0040382c lw v0, (v0)                   |         v0 = *(v0);
    0x00403830 addu t8, t8, v0               |         t8 += v0;
    0x00403834 move a0, t8                   |         a0 = t8;
    0x00403838 lw t8, -0x7da8(gp)            |         t8 = *(gp);
    0x0040383c move t9, t8                   |         t9 = t8;
    0x00403840 jalr t9                       |         t9 ();
    0x00403844 nop                           |         
    0x00403848 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x0040384c move t8, v0                   |         t8 = v0;
    0x00403850 sltu t8, zero, t8             |         t8 = (0 < t8) ? 1 : 0;
    0x00403854 andi t8, t8, 0xff             |         t8 &= 0xff;
    0x00403858 bnez t8, 0x403508             |         
                                             |     } while (t8 != 0);
    0x0040385c nop                           |     
    0x00403860 addiu t8, fp, 0xc4            |     t8 = fp + 0xc4;
    0x00403864 move a0, t8                   |     a0 = t8;
    0x00403868 lw t8, -0x7df4(gp)            |     t8 = *(gp);
    0x0040386c move t9, t8                   |     t9 = t8;
    0x00403870 jalr t9                       |     t9 ();
    0x00403874 nop                           |     
    0x00403878 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x0040387c lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str._tmp_addr6 */
    0x00403880 addiu a0, t8, -0x7998         |     a0 = t8 + -0x7998;
    0x00403884 lw t8, -0x7e30(gp)            |     t8 = sym.imp.unlink;
    0x00403888 move t9, t8                   |     t9 = t8;
    0x0040388c jalr t9                       |     t9 ();
    0x00403890 nop                           |     
    0x00403894 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403898 addiu t8, fp, 0x2fc           |     t8 = fp + 0x2fc;
    0x0040389c move a0, t8                   |     a0 = t8;
    0x004038a0 addiu a1, zero, 0x80          |     a1 = 0x80;
    0x004038a4 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str.ip__6_route_show_dev__s____tmp_route6 */
    0x004038a8 addiu a2, t8, -0x7978         |     a2 = t8 + -0x7978;
    0x004038ac lw a3, 0x1c(fp)               |     a3 = *(arg_1ch);
    0x004038b0 lw t8, -0x7df0(gp)            |     t8 = sym.imp.snprintf
    0x004038b4 move t9, t8                   |     t9 = t8;
    0x004038b8 jalr t9                       |     t9 ();
    0x004038bc nop                           |     
    0x004038c0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004038c4 addiu t8, fp, 0x2fc           |     t8 = fp + 0x2fc;
    0x004038c8 move a0, t8                   |     a0 = t8;
    0x004038cc lw t8, -0x7dac(gp)            |     t8 = sym.imp.system;
    0x004038d0 move t9, t8                   |     t9 = t8;
    0x004038d4 jalr t9                       |     t9 ();
    0x004038d8 nop                           |     
    0x004038dc lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004038e0 addiu t8, fp, 0x1e0           |     t8 = fp + 0x1e0;
    0x004038e4 move a0, t8                   |     a0 = t8;
    0x004038e8 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str._tmp_route6 */
    0x004038ec addiu a1, t8, -0x7950         |     a1 = t8 + -0x7950;
    0x004038f0 addiu a2, zero, 8             |     a2 = 8;
    0x004038f4 lw t8, -0x7de4(gp)            |     t8 = *(gp);
    0x004038f8 move t9, t8                   |     t9 = t8;
    0x004038fc jalr t9                       |     t9 ();
    0x00403900 nop                           |     
    0x00403904 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403908 addiu t8, fp, 0x1e0           |     t8 = fp + 0x1e0;
    0x0040390c addiu t8, t8, 0x94            |     t8 += 0x94;
    0x00403910 move a0, t8                   |     a0 = t8;
    0x00403914 lw t8, -0x7e04(gp)            |     t8 = *(gp);
    0x00403918 move t9, t8                   |     t9 = t8;
    0x0040391c jalr t9                       |     t9 ();
    0x00403920 nop                           |     
    0x00403924 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403928 move t8, v0                   |     t8 = v0;
                                             |     if (t8 != 0) {
    0x0040392c beqz t8, 0x403940             |         
    0x00403930 nop                           |         
    0x00403934 move s0, zero                 |         s0 = 0;
    0x00403938 b 0x404154                    |         goto label_4;
    0x0040393c nop                           |         
                                             |     }
    0x00403940 sw zero, 0x68(fp)             |     *(arg_68h) = 0;
    0x00403944 b 0x403a90                    |     goto label_5;
    0x00403948 nop                           |     
                                             |     do {
    0x0040394c addiu v0, fp, 0x3c            |         v0 = fp + 0x3c;
    0x00403950 addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x00403954 move a0, v0                   |         a0 = v0;
    0x00403958 move a1, t8                   |         a1 = t8;
    0x0040395c lw t8, -0x7fb4(gp)            |         t8 = sym.trim_std::string_const_;
    0x00403960 move t9, t8                   |         t9 = t8;
    0x00403964 jalr t9                       |         t9 ();
    0x00403968 nop                           |         
    0x0040396c lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403970 addiu v0, fp, 0x20            |         v0 = fp + 0x20;
    0x00403974 addiu t8, fp, 0x3c            |         t8 = fp + 0x3c;
    0x00403978 move a0, v0                   |         a0 = v0;
    0x0040397c move a1, t8                   |         a1 = t8;
    0x00403980 lw t8, -0x7e70(gp)            |         t8 = *(gp);
    0x00403984 move t9, t8                   |         t9 = t8;
    0x00403988 jalr t9                       |         t9 ();
    0x0040398c nop                           |         
    0x00403990 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403994 addiu t8, fp, 0x3c            |         t8 = fp + 0x3c;
    0x00403998 move a0, t8                   |         a0 = t8;
    0x0040399c lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x004039a0 move t9, t8                   |         t9 = t8;
    0x004039a4 jalr t9                       |         t9 ();
    0x004039a8 nop                           |         
    0x004039ac lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x004039b0 addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x004039b4 move a0, t8                   |         a0 = t8;
    0x004039b8 lw t8, -0x7fb8(gp)            |         t8 = *((gp - 8174));
                                             |         /* esilref: 'dev' */
    0x004039bc addiu a1, t8, -0x7944         |         a1 = t8 + -0x7944;
    0x004039c0 move a2, zero                 |         a2 = 0;
    0x004039c4 lw t8, -0x7dec(gp)            |         t8 = *(gp);
    0x004039c8 move t9, t8                   |         t9 = t8;
    0x004039cc jalr t9                       |         t9 ();
    0x004039d0 nop                           |         
    0x004039d4 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x004039d8 move t8, v0                   |         t8 = v0;
    0x004039dc addiu v1, fp, 0x40            |         v1 = fp + 0x40;
    0x004039e0 addiu v0, fp, 0x20            |         v0 = fp + 0x20;
    0x004039e4 move a0, v1                   |         a0 = v1;
    0x004039e8 move a1, v0                   |         a1 = v0;
    0x004039ec move a2, zero                 |         a2 = 0;
    0x004039f0 move a3, t8                   |         a3 = t8;
    0x004039f4 lw t8, -0x7e24(gp)            |         t8 = *(gp);
    0x004039f8 move t9, t8                   |         t9 = t8;
    0x004039fc jalr t9                       |         t9 ();
    0x00403a00 nop                           |         
    0x00403a04 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403a08 addiu v0, fp, 0x44            |         v0 = fp + 0x44;
    0x00403a0c addiu t8, fp, 0x40            |         t8 = fp + 0x40;
    0x00403a10 move a0, v0                   |         a0 = v0;
    0x00403a14 move a1, t8                   |         a1 = t8;
    0x00403a18 lw t8, -0x7fb4(gp)            |         t8 = sym.trim_std::string_const_;
    0x00403a1c move t9, t8                   |         t9 = t8;
    0x00403a20 jalr t9                       |         t9 ();
    0x00403a24 nop                           |         
    0x00403a28 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403a2c addiu v1, fp, 0x8c            |         v1 = fp + 0x8c;
    0x00403a30 addiu v0, fp, 0xac            |         v0 = fp + 0xac;
    0x00403a34 addiu t8, fp, 0x44            |         t8 = fp + 0x44;
    0x00403a38 move a0, v1                   |         a0 = v1;
    0x00403a3c move a1, v0                   |         a1 = v0;
    0x00403a40 move a2, t8                   |         a2 = t8;
    0x00403a44 lw t8, -0x7fb0(gp)            |         t8 = *(gp);
    0x00403a48 move t9, t8                   |         t9 = t8;
    0x00403a4c jalr t9                       |         t9 ();
    0x00403a50 nop                           |         
    0x00403a54 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403a58 addiu t8, fp, 0x44            |         t8 = fp + 0x44;
    0x00403a5c move a0, t8                   |         a0 = t8;
    0x00403a60 lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x00403a64 move t9, t8                   |         t9 = t8;
    0x00403a68 jalr t9                       |         t9 ();
    0x00403a6c nop                           |         
    0x00403a70 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403a74 addiu t8, fp, 0x40            |         t8 = fp + 0x40;
    0x00403a78 move a0, t8                   |         a0 = t8;
    0x00403a7c lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x00403a80 move t9, t8                   |         t9 = t8;
    0x00403a84 jalr t9                       |         t9 ();
    0x00403a88 nop                           |         
    0x00403a8c lw gp, 0x10(fp)               |         gp = *(arg_10h);
                                             | label_5:
    0x00403a90 addiu v0, fp, 0x1e0           |         v0 = fp + 0x1e0;
    0x00403a94 addiu t8, fp, 0x20            |         t8 = fp + 0x20;
    0x00403a98 move a0, v0                   |         a0 = v0;
    0x00403a9c move a1, t8                   |         a1 = t8;
    0x00403aa0 lw t8, -0x7db0(gp)            |         t8 = *(gp);
    0x00403aa4 move t9, t8                   |         t9 = t8;
    0x00403aa8 jalr t9                       |         t9 ();
    0x00403aac nop                           |         
    0x00403ab0 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403ab4 move t8, v0                   |         t8 = v0;
    0x00403ab8 lw v0, (t8)                   |         v0 = *(t8);
    0x00403abc addiu v0, v0, -0xc            |         v0 += -0xc;
    0x00403ac0 lw v0, (v0)                   |         v0 = *(v0);
    0x00403ac4 addu t8, t8, v0               |         t8 += v0;
    0x00403ac8 move a0, t8                   |         a0 = t8;
    0x00403acc lw t8, -0x7da8(gp)            |         t8 = *(gp);
    0x00403ad0 move t9, t8                   |         t9 = t8;
    0x00403ad4 jalr t9                       |         t9 ();
    0x00403ad8 nop                           |         
    0x00403adc lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403ae0 move t8, v0                   |         t8 = v0;
    0x00403ae4 sltu t8, zero, t8             |         t8 = (0 < t8) ? 1 : 0;
    0x00403ae8 andi t8, t8, 0xff             |         t8 &= 0xff;
    0x00403aec bnez t8, 0x40394c             |         
                                             |     } while (t8 != 0);
    0x00403af0 nop                           |     
    0x00403af4 addiu t8, fp, 0x1e0           |     t8 = fp + 0x1e0;
    0x00403af8 move a0, t8                   |     a0 = t8;
    0x00403afc lw t8, -0x7df4(gp)            |     t8 = *(gp);
    0x00403b00 move t9, t8                   |     t9 = t8;
    0x00403b04 jalr t9                       |     t9 ();
    0x00403b08 nop                           |     
    0x00403b0c lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403b10 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str._tmp_route6 */
    0x00403b14 addiu a0, t8, -0x7950         |     a0 = t8 + -0x7950;
    0x00403b18 lw t8, -0x7e30(gp)            |     t8 = sym.imp.unlink;
    0x00403b1c move t9, t8                   |     t9 = t8;
    0x00403b20 jalr t9                       |     t9 ();
    0x00403b24 nop                           |     
    0x00403b28 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403b2c addiu v0, fp, 0x18            |     v0 = fp + 0x18;
    0x00403b30 addiu t8, fp, 0xac            |     t8 = fp + 0xac;
    0x00403b34 move a0, v0                   |     a0 = v0;
    0x00403b38 move a1, t8                   |     a1 = t8;
    0x00403b3c lw t8, -0x7fac(gp)            |     t8 = *(gp);
    0x00403b40 move t9, t8                   |     t9 = t8;
    0x00403b44 jalr t9                       |     t9 ();
    0x00403b48 nop                           |     
    0x00403b4c lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403b50 lw t8, 0x18(fp)               |     t8 = *(arg_18h);
    0x00403b54 sw t8, 0x24(fp)               |     *(arg_24h) = t8;
    0x00403b58 b 0x4040b8                    |     goto label_6;
    0x00403b5c nop                           |     
                                             | label_0:
    0x00403b60 addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00403b64 move a0, t8                   |     a0 = t8;
    0x00403b68 lw t8, -0x7fa8(gp)            |     t8 = *(gp);
    0x00403b6c move t9, t8                   |     t9 = t8;
    0x00403b70 jalr t9                       |     t9 ();
    0x00403b74 nop                           |     
    0x00403b78 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403b7c move t8, v0                   |     t8 = v0;
    0x00403b80 move a0, t8                   |     a0 = t8;
    0x00403b84 lw t8, -0x7db4(gp)            |     t8 = *(gp);
    0x00403b88 move t9, t8                   |     t9 = t8;
    0x00403b8c jalr t9                       |     t9 ();
    0x00403b90 nop                           |     
    0x00403b94 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403b98 move t8, v0                   |     t8 = v0;
    0x00403b9c move a0, t8                   |     a0 = t8;
    0x00403ba0 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str.ff00::_8 */
    0x00403ba4 addiu a1, t8, -0x7940         |     a1 = t8 + -0x7940;
    0x00403ba8 addiu a2, zero, 8             |     a2 = 8;
    0x00403bac lw t8, -0x7dfc(gp)            |     t8 = sym.imp.strncasecmp;
    0x00403bb0 move t9, t8                   |     t9 = t8;
    0x00403bb4 jalr t9                       |     t9 ();
    0x00403bb8 nop                           |     
    0x00403bbc lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403bc0 move t8, v0                   |     t8 = v0;
    0x00403bc4 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x00403bc8 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00403bcc beqz t8, 0x403be4             |         
    0x00403bd0 nop                           |         
    0x00403bd4 addiu t8, zero, 1             |         t8 = 1;
    0x00403bd8 sw t8, 0x54(fp)               |         *(arg_54h) = t8;
    0x00403bdc b 0x404090                    |         goto label_7;
    0x00403be0 nop                           |         
                                             |     }
    0x00403be4 addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00403be8 move a0, t8                   |     a0 = t8;
    0x00403bec lw t8, -0x7fa8(gp)            |     t8 = *(gp);
    0x00403bf0 move t9, t8                   |     t9 = t8;
    0x00403bf4 jalr t9                       |     t9 ();
    0x00403bf8 nop                           |     
    0x00403bfc lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403c00 move t8, v0                   |     t8 = v0;
    0x00403c04 move a0, t8                   |     a0 = t8;
    0x00403c08 lw t8, -0x7db4(gp)            |     t8 = *(gp);
    0x00403c0c move t9, t8                   |     t9 = t8;
    0x00403c10 jalr t9                       |     t9 ();
    0x00403c14 nop                           |     
    0x00403c18 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403c1c move t8, v0                   |     t8 = v0;
    0x00403c20 move a0, t8                   |     a0 = t8;
    0x00403c24 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
                                             |     /* str.default */
    0x00403c28 addiu a1, t8, -0x7934         |     a1 = t8 + -0x7934;
    0x00403c2c addiu a2, zero, 7             |     a2 = 7;
    0x00403c30 lw t8, -0x7dfc(gp)            |     t8 = sym.imp.strncasecmp;
    0x00403c34 move t9, t8                   |     t9 = t8;
    0x00403c38 jalr t9                       |     t9 ();
    0x00403c3c nop                           |     
    0x00403c40 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403c44 move t8, v0                   |     t8 = v0;
    0x00403c48 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x00403c4c andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00403c50 beqz t8, 0x403c6c             |         
    0x00403c54 nop                           |         
    0x00403c58 lw t8, 0x58(fp)               |         t8 = *(arg_58h);
    0x00403c5c addiu t8, t8, 1               |         t8++;
    0x00403c60 sw t8, 0x58(fp)               |         *(arg_58h) = t8;
    0x00403c64 b 0x404090                    |         goto label_7;
    0x00403c68 nop                           |         
                                             |     }
    0x00403c6c addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00403c70 move a0, t8                   |     a0 = t8;
    0x00403c74 lw t8, -0x7fa8(gp)            |     t8 = *(gp);
    0x00403c78 move t9, t8                   |     t9 = t8;
    0x00403c7c jalr t9                       |     t9 ();
    0x00403c80 nop                           |     
    0x00403c84 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403c88 move t8, v0                   |     t8 = v0;
    0x00403c8c move a0, t8                   |     a0 = t8;
    0x00403c90 lw t8, -0x7fb8(gp)            |     t8 = *((gp - 8174));
    0x00403c94 addiu a1, t8, -0x797c         |     a1 = t8 + -0x797c;
    0x00403c98 move a2, zero                 |     a2 = 0;
    0x00403c9c lw t8, -0x7dec(gp)            |     t8 = *(gp);
    0x00403ca0 move t9, t8                   |     t9 = t8;
    0x00403ca4 jalr t9                       |     t9 ();
    0x00403ca8 nop                           |     
    0x00403cac lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403cb0 move t8, v0                   |     t8 = v0;
    0x00403cb4 sw t8, 0x78(fp)               |     *(arg_78h) = t8;
    0x00403cb8 addiu t8, fp, 0x84            |     t8 = fp + 0x84;
    0x00403cbc move a0, t8                   |     a0 = t8;
    0x00403cc0 lw t8, -0x7da0(gp)            |     t8 = *(gp);
    0x00403cc4 move t9, t8                   |     t9 = t8;
    0x00403cc8 jalr t9                       |     t9 ();
    0x00403ccc nop                           |     
    0x00403cd0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403cd4 sw zero, 0x64(fp)             |     *(arg_64h) = 0;
    0x00403cd8 lw v0, 0x78(fp)               |     v0 = *(arg_78h);
    0x00403cdc addiu t8, zero, -1            |     t8 = -1;
                                             |     if (v0 != t8) {
    0x00403ce0 beq v0, t8, 0x403e1c          |         
    0x00403ce4 nop                           |         
    0x00403ce8 addiu t8, fp, 0x24            |         t8 = fp + 0x24;
    0x00403cec move a0, t8                   |         a0 = t8;
    0x00403cf0 lw t8, -0x7fa8(gp)            |         t8 = *(gp);
    0x00403cf4 move t9, t8                   |         t9 = t8;
    0x00403cf8 jalr t9                       |         t9 ();
    0x00403cfc nop                           |         
    0x00403d00 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403d04 move t8, v0                   |         t8 = v0;
    0x00403d08 addiu v0, fp, 0x4c            |         v0 = fp + 0x4c;
    0x00403d0c move a0, v0                   |         a0 = v0;
    0x00403d10 move a1, t8                   |         a1 = t8;
    0x00403d14 move a2, zero                 |         a2 = 0;
    0x00403d18 lw a3, 0x78(fp)               |         a3 = *(arg_78h);
    0x00403d1c lw t8, -0x7e24(gp)            |         t8 = *(gp);
    0x00403d20 move t9, t8                   |         t9 = t8;
    0x00403d24 jalr t9                       |         t9 ();
    0x00403d28 nop                           |         
    0x00403d2c lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403d30 addiu v0, fp, 0x84            |         v0 = fp + 0x84;
    0x00403d34 addiu t8, fp, 0x4c            |         t8 = fp + 0x4c;
    0x00403d38 move a0, v0                   |         a0 = v0;
    0x00403d3c move a1, t8                   |         a1 = t8;
    0x00403d40 lw t8, -0x7e70(gp)            |         t8 = *(gp);
    0x00403d44 move t9, t8                   |         t9 = t8;
    0x00403d48 jalr t9                       |         t9 ();
    0x00403d4c nop                           |         
    0x00403d50 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403d54 addiu t8, fp, 0x4c            |         t8 = fp + 0x4c;
    0x00403d58 move a0, t8                   |         a0 = t8;
    0x00403d5c lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x00403d60 move t9, t8                   |         t9 = t8;
    0x00403d64 jalr t9                       |         t9 ();
    0x00403d68 nop                           |         
    0x00403d6c lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403d70 addiu t8, fp, 0x24            |         t8 = fp + 0x24;
    0x00403d74 move a0, t8                   |         a0 = t8;
    0x00403d78 lw t8, -0x7fa8(gp)            |         t8 = *(gp);
    0x00403d7c move t9, t8                   |         t9 = t8;
    0x00403d80 jalr t9                       |         t9 ();
    0x00403d84 nop                           |         
    0x00403d88 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403d8c lw t8, 0x78(fp)               |         t8 = *(arg_78h);
    0x00403d90 addiu t8, t8, 1               |         t8++;
    0x00403d94 addiu v1, fp, 0x8c            |         v1 = fp + 0x8c;
    0x00403d98 move a0, v1                   |         a0 = v1;
    0x00403d9c move a1, v0                   |         a1 = v0;
    0x00403da0 move a2, t8                   |         a2 = t8;
    0x00403da4 addiu a3, zero, -1            |         a3 = -1;
    0x00403da8 lw t8, -0x7e24(gp)            |         t8 = *(gp);
    0x00403dac move t9, t8                   |         t9 = t8;
    0x00403db0 jalr t9                       |         t9 ();
    0x00403db4 nop                           |         
    0x00403db8 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403dbc addiu t8, fp, 0x8c            |         t8 = fp + 0x8c;
    0x00403dc0 move a0, t8                   |         a0 = t8;
    0x00403dc4 lw t8, -0x7db4(gp)            |         t8 = *(gp);
    0x00403dc8 move t9, t8                   |         t9 = t8;
    0x00403dcc jalr t9                       |         t9 ();
    0x00403dd0 nop                           |         
    0x00403dd4 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403dd8 move t8, v0                   |         t8 = v0;
    0x00403ddc move a0, t8                   |         a0 = t8;
    0x00403de0 lw t8, -0x7e5c(gp)            |         t8 = sym.imp.atoi;
    0x00403de4 move t9, t8                   |         t9 = t8;
    0x00403de8 jalr t9                       |         t9 ();
    0x00403dec nop                           |         
    0x00403df0 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403df4 sw v0, 0x64(fp)               |         *(arg_64h) = v0;
    0x00403df8 addiu t8, fp, 0x8c            |         t8 = fp + 0x8c;
    0x00403dfc move a0, t8                   |         a0 = t8;
    0x00403e00 lw t8, -0x7df8(gp)            |         t8 = *(gp);
    0x00403e04 move t9, t8                   |         t9 = t8;
    0x00403e08 jalr t9                       |         t9 ();
    0x00403e0c nop                           |         
    0x00403e10 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403e14 b 0x403e64                    |         goto label_8;
    0x00403e18 nop                           |         
                                             |     }
    0x00403e1c addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00403e20 move a0, t8                   |     a0 = t8;
    0x00403e24 lw t8, -0x7fa8(gp)            |     t8 = *(gp);
    0x00403e28 move t9, t8                   |     t9 = t8;
    0x00403e2c jalr t9                       |     t9 ();
    0x00403e30 nop                           |     
    0x00403e34 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403e38 move t8, v0                   |     t8 = v0;
    0x00403e3c addiu v0, fp, 0x84            |     v0 = fp + 0x84;
    0x00403e40 move a0, v0                   |     a0 = v0;
    0x00403e44 move a1, t8                   |     a1 = t8;
    0x00403e48 lw t8, -0x7e70(gp)            |     t8 = *(gp);
    0x00403e4c move t9, t8                   |     t9 = t8;
    0x00403e50 jalr t9                       |     t9 ();
    0x00403e54 nop                           |     
    0x00403e58 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403e5c addiu t8, zero, 0x80          |     t8 = 0x80;
    0x00403e60 sw t8, 0x64(fp)               |     *(arg_64h) = t8;
                                             | label_8:
    0x00403e64 addiu v0, fp, 0x18            |     v0 = fp + 0x18;
    0x00403e68 addiu t8, fp, 0x94            |     t8 = fp + 0x94;
    0x00403e6c move a0, v0                   |     a0 = v0;
    0x00403e70 move a1, t8                   |     a1 = t8;
    0x00403e74 lw t8, -0x7fac(gp)            |     t8 = *(gp);
    0x00403e78 move t9, t8                   |     t9 = t8;
    0x00403e7c jalr t9                       |     t9 ();
    0x00403e80 nop                           |     
    0x00403e84 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00403e88 lw t8, 0x18(fp)               |     t8 = *(arg_18h);
    0x00403e8c sw t8, 0x28(fp)               |     *(arg_28h) = t8;
    0x00403e90 b 0x404020                    |     goto label_9;
    0x00403e94 nop                           |     
                                             |     do {
    0x00403e98 addiu v0, fp, 0x37c           |         v0 = fp + 0x37c;
    0x00403e9c addiu t8, zero, 0x100         |         t8 = 0x100;
    0x00403ea0 move a0, v0                   |         a0 = v0;
    0x00403ea4 move a1, zero                 |         a1 = 0;
    0x00403ea8 move a2, t8                   |         a2 = t8;
    0x00403eac lw t8, -0x7e38(gp)            |         t8 = sym.imp.memset;
    0x00403eb0 move t9, t8                   |         t9 = t8;
    0x00403eb4 jalr t9                       |         t9 ();
    0x00403eb8 nop                           |         
    0x00403ebc lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403ec0 addiu v0, fp, 0x47c           |         v0 = fp + 0x47c;
    0x00403ec4 addiu t8, zero, 0x100         |         t8 = 0x100;
    0x00403ec8 move a0, v0                   |         a0 = v0;
    0x00403ecc move a1, zero                 |         a1 = 0;
    0x00403ed0 move a2, t8                   |         a2 = t8;
    0x00403ed4 lw t8, -0x7e38(gp)            |         t8 = sym.imp.memset;
    0x00403ed8 move t9, t8                   |         t9 = t8;
    0x00403edc jalr t9                       |         t9 ();
    0x00403ee0 nop                           |         
    0x00403ee4 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403ee8 sw zero, 0x7c(fp)             |         *(arg_7ch) = 0;
    0x00403eec sw zero, 0x80(fp)             |         *(arg_80h) = 0;
    0x00403ef0 addiu t8, fp, 0x28            |         t8 = fp + 0x28;
    0x00403ef4 move a0, t8                   |         a0 = t8;
    0x00403ef8 lw t8, -0x7fa8(gp)            |         t8 = *(gp);
    0x00403efc move t9, t8                   |         t9 = t8;
    0x00403f00 jalr t9                       |         t9 ();
    0x00403f04 nop                           |         
    0x00403f08 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403f0c move t8, v0                   |         t8 = v0;
    0x00403f10 move a0, t8                   |         a0 = t8;
    0x00403f14 lw t8, -0x7db4(gp)            |         t8 = *(gp);
    0x00403f18 move t9, t8                   |         t9 = t8;
    0x00403f1c jalr t9                       |         t9 ();
    0x00403f20 nop                           |         
    0x00403f24 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403f28 addiu t8, fp, 0x37c           |         t8 = fp + 0x37c;
    0x00403f2c move a0, v0                   |         a0 = v0;
    0x00403f30 lw a1, 0x64(fp)               |         a1 = *(arg_64h);
    0x00403f34 move a2, t8                   |         a2 = t8;
    0x00403f38 addiu a3, zero, 0x100         |         a3 = 0x100;
    0x00403f3c lw t8, -0x7e28(gp)            |         t8 = sym.imp.get_network_id_char_const__int__char__int_;
    0x00403f40 move t9, t8                   |         t9 = t8;
    0x00403f44 jalr t9                       |         t9 ();
    0x00403f48 nop                           |         
    0x00403f4c lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403f50 move t8, v0                   |         t8 = v0;
    0x00403f54 sw t8, 0x7c(fp)               |         *(arg_7ch) = t8;
    0x00403f58 addiu t8, fp, 0x84            |         t8 = fp + 0x84;
    0x00403f5c move a0, t8                   |         a0 = t8;
    0x00403f60 lw t8, -0x7db4(gp)            |         t8 = *(gp);
    0x00403f64 move t9, t8                   |         t9 = t8;
    0x00403f68 jalr t9                       |         t9 ();
    0x00403f6c nop                           |         
    0x00403f70 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403f74 addiu t8, fp, 0x47c           |         t8 = fp + 0x47c;
    0x00403f78 move a0, v0                   |         a0 = v0;
    0x00403f7c lw a1, 0x64(fp)               |         a1 = *(arg_64h);
    0x00403f80 move a2, t8                   |         a2 = t8;
    0x00403f84 addiu a3, zero, 0x100         |         a3 = 0x100;
    0x00403f88 lw t8, -0x7e28(gp)            |         t8 = sym.imp.get_network_id_char_const__int__char__int_;
    0x00403f8c move t9, t8                   |         t9 = t8;
    0x00403f90 jalr t9                       |         t9 ();
    0x00403f94 nop                           |         
    0x00403f98 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00403f9c move t8, v0                   |         t8 = v0;
    0x00403fa0 sw t8, 0x80(fp)               |         *(arg_80h) = t8;
    0x00403fa4 lw t8, 0x7c(fp)               |         t8 = *(arg_7ch);
                                             |         if (t8 == 0) {
    0x00403fa8 bnez t8, 0x403ff8             |             
    0x00403fac nop                           |             
    0x00403fb0 lw t8, 0x80(fp)               |             t8 = *(arg_80h);
                                             |             if (t8 != 0) {
    0x00403fb4 bnez t8, 0x403ff8             |                 goto label_10;
                                             |             }
    0x00403fb8 nop                           |             
    0x00403fbc addiu v0, fp, 0x37c           |             v0 = fp + 0x37c;
    0x00403fc0 addiu t8, fp, 0x47c           |             t8 = fp + 0x47c;
    0x00403fc4 move a0, v0                   |             a0 = v0;
    0x00403fc8 move a1, t8                   |             a1 = t8;
    0x00403fcc lw t8, -0x7dc8(gp)            |             t8 = sym.imp.strcasecmp;
    0x00403fd0 move t9, t8                   |             t9 = t8;
    0x00403fd4 jalr t9                       |             t9 ();
    0x00403fd8 nop                           |             
    0x00403fdc lw gp, 0x10(fp)               |             gp = *(arg_10h);
    0x00403fe0 move t8, v0                   |             t8 = v0;
                                             |             if (t8 != 0) {
    0x00403fe4 bnez t8, 0x403ff8             |                 goto label_10;
                                             |             }
    0x00403fe8 nop                           |             
    0x00403fec lw t8, 0x5c(fp)               |             t8 = *(arg_5ch);
    0x00403ff0 addiu t8, t8, 1               |             t8++;
    0x00403ff4 sw t8, 0x5c(fp)               |             *(arg_5ch) = t8;
                                             |         }
                                             | label_10:
    0x00403ff8 addiu v0, fp, 0x8c            |         v0 = fp + 0x8c;
    0x00403ffc addiu t8, fp, 0x28            |         t8 = fp + 0x28;
    0x00404000 move a0, v0                   |         a0 = v0;
    0x00404004 move a1, t8                   |         a1 = t8;
    0x00404008 move a2, zero                 |         a2 = 0;
    0x0040400c lw t8, -0x7fa4(gp)            |         t8 = *(gp);
    0x00404010 move t9, t8                   |         t9 = t8;
    0x00404014 jalr t9                       |         t9 ();
    0x00404018 nop                           |         
    0x0040401c lw gp, 0x10(fp)               |         gp = *(arg_10h);
                                             | label_9:
    0x00404020 addiu v0, fp, 0x50            |         v0 = fp + 0x50;
    0x00404024 addiu t8, fp, 0x94            |         t8 = fp + 0x94;
    0x00404028 move a0, v0                   |         a0 = v0;
    0x0040402c move a1, t8                   |         a1 = t8;
    0x00404030 lw t8, -0x7fa0(gp)            |         t8 = *(gp);
    0x00404034 move t9, t8                   |         t9 = t8;
    0x00404038 jalr t9                       |         t9 ();
    0x0040403c nop                           |         
    0x00404040 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00404044 addiu v0, fp, 0x28            |         v0 = fp + 0x28;
    0x00404048 addiu t8, fp, 0x50            |         t8 = fp + 0x50;
    0x0040404c move a0, v0                   |         a0 = v0;
    0x00404050 move a1, t8                   |         a1 = t8;
    0x00404054 lw t8, -0x7f9c(gp)            |         t8 = *(gp);
    0x00404058 move t9, t8                   |         t9 = t8;
    0x0040405c jalr t9                       |         t9 ();
    0x00404060 nop                           |         
    0x00404064 lw gp, 0x10(fp)               |         gp = *(arg_10h);
    0x00404068 move t8, v0                   |         t8 = v0;
    0x0040406c bnez t8, 0x403e98             |         
                                             |     } while (t8 != 0);
    0x00404070 nop                           |     
    0x00404074 addiu t8, fp, 0x84            |     t8 = fp + 0x84;
    0x00404078 move a0, t8                   |     a0 = t8;
    0x0040407c lw t8, -0x7df8(gp)            |     t8 = *(gp);
    0x00404080 move t9, t8                   |     t9 = t8;
    0x00404084 jalr t9                       |     t9 ();
    0x00404088 nop                           |     
    0x0040408c lw gp, 0x10(fp)               |     gp = *(arg_10h);
                                             | label_7:
    0x00404090 addiu v0, fp, 0x8c            |     v0 = fp + 0x8c;
    0x00404094 addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00404098 move a0, v0                   |     a0 = v0;
    0x0040409c move a1, t8                   |     a1 = t8;
    0x004040a0 move a2, zero                 |     a2 = 0;
    0x004040a4 lw t8, -0x7fa4(gp)            |     t8 = *(gp);
    0x004040a8 move t9, t8                   |     t9 = t8;
    0x004040ac jalr t9                       |     t9 ();
    0x004040b0 nop                           |     
    0x004040b4 lw gp, 0x10(fp)               |     gp = *(arg_10h);
                                             | label_6:
    0x004040b8 addiu v0, fp, 0x48            |     v0 = fp + 0x48;
    0x004040bc addiu t8, fp, 0xac            |     t8 = fp + 0xac;
    0x004040c0 move a0, v0                   |     a0 = v0;
    0x004040c4 move a1, t8                   |     a1 = t8;
    0x004040c8 lw t8, -0x7fa0(gp)            |     t8 = *(gp);
    0x004040cc move t9, t8                   |     t9 = t8;
    0x004040d0 jalr t9                       |     t9 ();
    0x004040d4 nop                           |     
    0x004040d8 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004040dc addiu v0, fp, 0x24            |     v0 = fp + 0x24;
    0x004040e0 addiu t8, fp, 0x48            |     t8 = fp + 0x48;
    0x004040e4 move a0, v0                   |     a0 = v0;
    0x004040e8 move a1, t8                   |     a1 = t8;
    0x004040ec lw t8, -0x7f9c(gp)            |     t8 = *(gp);
    0x004040f0 move t9, t8                   |     t9 = t8;
    0x004040f4 jalr t9                       |     t9 ();
    0x004040f8 nop                           |     
    0x004040fc lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x00404100 move t8, v0                   |     t8 = v0;
                                             |     if (t8 != 0) {
    0x00404104 bnez t8, 0x403b60             |         goto label_0;
                                             |     }
    0x00404108 nop                           |     
    0x0040410c lw t8, 0x54(fp)               |     t8 = *(arg_54h);
                                             |     if (t8 == 0) {
    0x00404110 bnez t8, 0x404124             |         
    0x00404114 nop                           |         
    0x00404118 addiu s0, zero, -1            |         s0 = -1;
    0x0040411c b 0x404154                    |         goto label_4;
    0x00404120 nop                           |         
                                             |     }
    0x00404124 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
                                             |     if (t8 != 0) {
    0x00404128 beqz t8, 0x404144             |         
    0x0040412c nop                           |         
    0x00404130 lw v0, 0x5c(fp)               |         v0 = *(arg_5ch);
    0x00404134 lw t8, 0x60(fp)               |         t8 = *(arg_60h);
    0x00404138 slt t8, v0, t8                |         t8 = (v0 < t8) ? 1 : 0;
                                             |         if (t8 == 0) {
    0x0040413c beqz t8, 0x404150             |             goto label_11;
                                             |         }
    0x00404140 nop                           |         
                                             |     }
    0x00404144 addiu s0, zero, -1            |     s0 = -1;
    0x00404148 b 0x404154                    |     goto label_4;
    0x0040414c nop                           |     
                                             | label_11:
    0x00404150 move s0, zero                 |     s0 = 0;
                                             | label_4:
    0x00404154 addiu t8, fp, 0x1e0           |     t8 = fp + 0x1e0;
    0x00404158 move a0, t8                   |     a0 = t8;
    0x0040415c lw t8, -0x7e14(gp)            |     t8 = *(gp);
    0x00404160 move t9, t8                   |     t9 = t8;
    0x00404164 jalr t9                       |     t9 ();
    0x00404168 nop                           |     
    0x0040416c lw gp, 0x10(fp)               |     gp = *(arg_10h);
                                             | label_1:
    0x00404170 addiu t8, fp, 0xc4            |     t8 = fp + 0xc4;
    0x00404174 move a0, t8                   |     a0 = t8;
    0x00404178 lw t8, -0x7e14(gp)            |     t8 = *(gp);
    0x0040417c move t9, t8                   |     t9 = t8;
    0x00404180 jalr t9                       |     t9 ();
    0x00404184 nop                           |     
    0x00404188 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x0040418c addiu t8, fp, 0xac            |     t8 = fp + 0xac;
    0x00404190 move a0, t8                   |     a0 = t8;
    0x00404194 lw t8, -0x7f98(gp)            |     t8 = *(gp);
    0x00404198 move t9, t8                   |     t9 = t8;
    0x0040419c jalr t9                       |     t9 ();
    0x004041a0 nop                           |     
    0x004041a4 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004041a8 addiu t8, fp, 0x94            |     t8 = fp + 0x94;
    0x004041ac move a0, t8                   |     a0 = t8;
    0x004041b0 lw t8, -0x7f98(gp)            |     t8 = *(gp);
    0x004041b4 move t9, t8                   |     t9 = t8;
    0x004041b8 jalr t9                       |     t9 ();
    0x004041bc nop                           |     
    0x004041c0 lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004041c4 addiu t8, fp, 0x20            |     t8 = fp + 0x20;
    0x004041c8 move a0, t8                   |     a0 = t8;
    0x004041cc lw t8, -0x7df8(gp)            |     t8 = *(gp);
    0x004041d0 move t9, t8                   |     t9 = t8;
    0x004041d4 jalr t9                       |     t9 ();
    0x004041d8 nop                           |     
    0x004041dc lw gp, 0x10(fp)               |     gp = *(arg_10h);
    0x004041e0 move t8, s0                   |     t8 = s0;
    0x004041e4 move v0, t8                   |     v0 = t8;
    0x004041e8 lw t8, -0x7da4(gp)            |     t8 = *((gp - 8041));
    0x004041ec lw v1, 0x57c(fp)              |     v1 = *(arg_57ch);
    0x004041f0 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x004041f4 beq v1, t8, 0x404510          |         
    0x004041f8 nop                           |         
    0x004041fc b 0x404500                    |         goto label_12;
    0x00404200 nop                           |         
                                             | label_12:
    0x00404500 lw t8, -0x7e10(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00404504 move t9, t8                   |         t9 = t8;
    0x00404508 jalr t9                       |         t9 ();
    0x0040450c nop                           |         
                                             |     }
    0x00404510 move sp, fp                   |     
    0x00404514 lw ra, 0x58c(sp)              |     ra = *(var_58ch);
    0x00404518 lw fp, 0x588(sp)              |     fp = *(var_588h);
    0x0040451c lw s0, 0x584(sp)              |     s0 = *(var_584h);
    0x00404520 addiu sp, sp, 0x590           |     
    0x00404524 jr ra                         |     return v1;
    0x00404528 nop                           |     
                                             | }

[*] Function printf used 3 times ipv6_checkroute